Verwenden Sie diesen Abschnitt, um die Dateien rawProcessInfo.json, rawProcessWMIInfo.json und os.json zu erstellen. Diese Skripts werden während der Selbstüberprüfung in einer auf dem Windows-Betriebssystem basierenden virtuellen Maschine ausgeführt, um Prozess-, Betriebssystem- und Netzwerkdetails zu erfassen.

Beispiel für eine Datei vom Typ „rawProcessInfo.json“

Hinweis:
  • Sie können den Befehl Get-Process -IncludeUserName verwenden und in eine JSON-Datei umwandeln, um die Prozessdetails zu erfassen.
  • Die Schlüssel in der JSON-Beispieldatei sind wichtig.
  • - kann prozessspezifisch sein.
  • Ersetzen Sie die Zeichenfolgen in spitzen Klammern (<>) durch geeignete Werte, wobei Folgendes gilt:
    • <number> ist ein Ganzzahltyp
    • <text> ist ein Zeichenfolgentyp
    • <boolean> ist „true“ oder „false“
    • <?> kann auch null sein
  • Geschweifte Klammern „{ }“ stehen für bestimmte Objekte.

  • Eckige Klammern „[ ]“ stehen für eine Liste und können mehrere ähnliche Objekte enthalten.
[
    {
        "BasePriority":  <number>,
        "ExitCode":  <number>,
        "HasExited":  <boolean>,
        "ExitTime":  <time or null>,
        "Handle":  <number>,
        "SafeHandle":  {
                           "IsInvalid":  <boolean>,
                           "IsClosed":  <boolean>
                       },
        "HandleCount":  <number>,
        "Id": <number>,
        "MachineName":  <string>,
        "MainWindowHandle": <number>,
        "MainWindowTitle":  <string>,
        "MainModule":  {
                           "ModuleName":  <string>,
                           "FileName": <string>,
                           "BaseAddress": <number>,
                           "ModuleMemorySize":  <number>,
                           "EntryPointAddress": <number>,
                           "FileVersionInfo":  <string>,
                           "Site":  null,
                           "Container":  null
                       },
        "MaxWorkingSet":  <number>,
        "MinWorkingSet":  <number>,
        "Modules":  [
			<string>
],
        "NonpagedSystemMemorySize": <number>,
        "NonpagedSystemMemorySize64":  <number>,
        "PagedMemorySize":  <number>,
        "PagedMemorySize64":  <number>,
        "PagedSystemMemorySize":  <number>,
        "PagedSystemMemorySize64":  <number>,
        "PeakPagedMemorySize":  <number>,
        "PeakPagedMemorySize64":  <number>,
        "PeakWorkingSet":  <number>,
        "PeakWorkingSet64":  <number>,
        "PeakVirtualMemorySize":  <number>,
        "PeakVirtualMemorySize64":  <number>,
        "PriorityBoostEnabled":  <boolean>,
        "PriorityClass":  <number>,
        "PrivateMemorySize":  <number>,
        "PrivateMemorySize64":  <number>,
        "PrivilegedProcessorTime":  {
                                        "Ticks":  <number>,
                                        "Days":  <number>,
                                        "Hours":  <number>,
                                        "Milliseconds":  <number>,
                                        "Minutes":  <number>,
                                        "Seconds":  <number>,
                                        "TotalDays": <number>,
                                        "TotalHours": <number>,
                                        "TotalMilliseconds": <number>,
                                        "TotalMinutes":  <number>,
                                        "TotalSeconds":  <number>
                                    },
        "ProcessName":  <string>,
        "ProcessorAffinity":  <number>,
        "Responding":  <boolean>,
        "SessionId":  <number>,
        "StartInfo":  {
                          "Verb":  <number>,
                          "Arguments":  <number>,
                          "CreateNoWindow":  <boolean>,
                          "EnvironmentVariables":  <string>,
                          "Environment": “[<key1>, <value>] [<key2>,<value>]",
                          "RedirectStandardInput": <boolean>,
                          "RedirectStandardOutput": <boolean>,
                          "RedirectStandardError": <boolean>,
                          "StandardErrorEncoding": <string>,
                          "StandardOutputEncoding": <string>,
                          "UseShellExecute":  <boolean>,
                          "Verbs":  <string>,
                          "UserName":  <string>,
                          "Password":  <string>,
                          "PasswordInClearText":  <string>,
                          "Domain":  <string>,
                          "LoadUserProfile":  <boolean>,
                          "FileName": <string>,
                          "WorkingDirectory": <string>,
                          "ErrorDialog": <boolean>,
                          "ErrorDialogParentHandle":  <number>,
                          "WindowStyle": <number>
                      },
        "StartTime":  <string>,
        "SynchronizingObject":  null,
        "Threads":  [
				<string1>,
				<string2>
         		],
        "TotalProcessorTime":  {
                                   "Ticks": <number>,
                                   "Days":  <number>,
                                   "Hours":  <number>,
                                   "Milliseconds":  <number>,
                                   "Minutes":  <number>,
                                   "Seconds":  <number>,
                                   "TotalDays": <number>,
                                   "TotalHours": <number>,
                                   "TotalMilliseconds": <number>,
                                   "TotalMinutes": <number>,
                                   "TotalSeconds": <number>
                               },
        "UserProcessorTime":  {
                                  "Ticks": <number>,
                                  "Days": <number>,
                                  "Hours": <number>,
                                  "Milliseconds": <number>,
                                  "Minutes": <number>,
                                  "Seconds": <number>,
                                  "TotalDays": <number>,
                                  "TotalHours": <number>,
                                  "TotalMilliseconds": <number>,
                                  "TotalMinutes": <number>,
                                  "TotalSeconds": <number>
                              },
        "VirtualMemorySize":  <number>,
        "VirtualMemorySize64":  <number>,
        "EnableRaisingEvents": <boolean>,
        "StandardInput":  null,
        "StandardOutput":  null,
        "StandardError":  null,
        "WorkingSet": <number>,
        "WorkingSet64": <number>,
        "Site":  null,
        "Container":  null,
        "UserName": <string>,
        "Name":  "inetinfo",
        "SI": <number>,
        "Handles": <number>,
        "VM":  <number>,
        "WS":  <number>,
        "PM":  <number>,
        "NPM":  <number>,
        "Path": <string>,
        "Company": <string>,
        "CPU": <number>,
        "FileVersion": <string>,
        "ProductVersion": <string>,
        "Description": <string>,
        "Product": <string>,
        "__NounName": <string>
    },
    {
    ...
    }
]

Beispiel für eine Datei vom Typ „rawProcessWMIInfo.json“

Hinweis: Die Datei rawProcessWMIInfo.json muss sich in dem Arbeitsverzeichnis befinden, das weitere Details zu den ausgeführten Prozessen enthält. Sie können den Befehl Get-WmiObject -Class Win32_Process in PowerShell verwenden und vor dem Speichern in die JSON-Datei umwandeln, um die Prozessdetails zu erfassen.
[
    {
        "Scope":  {
                      "IsConnected":  <boolean>,
                      "Options":  "<text>",
                      "Path":  "<text>"
                  },
        "Path":  {
                     "Path":  "<text>",
                     "RelativePath":  "<text>",
                     "Server":  "<text>",
                     "NamespacePath":  "<text>",
                     "ClassName":  "<text>",
                     "IsClass":  <boolean>,
                     "IsInstance":  <boolean>,
                     "IsSingleton":  <boolean>
                 },
        "Options":  {
                        "UseAmendedQualifiers":  <boolean>,
                        "Context":  "",
                        "Timeout":  "<text>"
                    },
        "ClassPath":  {
                          "Path":  "<text>",
                          "RelativePath":  "<text>",
                          "Server":  "<text>",
                          "NamespacePath":  "<text>",
                          "ClassName":  "<text>",
                          "IsClass":  <boolean>,
                          "IsInstance":  <boolean>,
                          "IsSingleton":  <boolean>
                      },
        "Properties":  [
                           "<text>"
                       ],
        "SystemProperties":  [
                                 "<text>"
                             ],
        "Qualifiers":  [
                           "<text>"
                       ],
        "Site":  null,
        "Container":  null,
        "PSComputerName": "<text>",
        "ProcessName":  "<text>",
        "Handles":  <number>,
        "VM":  <number>,
        "WS":  <number>,
        "__GENUS":  <number>,
        "__CLASS":  "<text>",
        "__SUPERCLASS":  "<text>",
        "__DYNASTY":  "<text>",
        "__RELPATH":  "<text>",
        "__PROPERTY_COUNT":  <number>,
        "__DERIVATION":  [
                             "<text>"
                         ],
        "__SERVER":  "<text>",
        "__NAMESPACE":  "<text>",
        "__PATH":  "<text>",
        "Caption":  "<text>",
        "CommandLine":  null,
        "CreationClassName":  "<text>",
        "CreationDate":  "<text>",
        "CSCreationClassName":  "<text>",
        "CSName":  "<text>",
        "Description":  "<text>",
        "ExecutablePath":  null,
        "ExecutionState":  null,
        "Handle":  "<number>",
        "HandleCount":  <number>,
        "InstallDate":  null,
        "KernelModeTime":  <number>,
        "MaximumWorkingSetSize":  null,
        "MinimumWorkingSetSize":  null,
        "Name":  "<text>",
        "OSCreationClassName":  "<text>",
        "OSName":  "<text>",
        "OtherOperationCount":  <number>,
        "OtherTransferCount":  <number>,
        "PageFaults":  <number>,
        "PageFileUsage":  <number>,
        "ParentProcessId":  <number>,
        "PeakPageFileUsage":  <number>,
        "PeakVirtualSize":  <number>,
        "PeakWorkingSetSize":  <number>,
        "Priority":  <number>,
        "PrivatePageCount":  <number>,
        "ProcessId":  <number>,
        "QuotaNonPagedPoolUsage":  <number>,
        "QuotaPagedPoolUsage":  <number>,
        "QuotaPeakNonPagedPoolUsage":  <number>,
        "QuotaPeakPagedPoolUsage":  <number>,
        "ReadOperationCount":  <number>,
        "ReadTransferCount":  <number>,
        "SessionId":  <number>,
        "Status":  null,
        "TerminationDate":  null,
        "ThreadCount":  <number>,
        "UserModeTime":  <number>,
        "VirtualSize":  <number>,
        "WindowsVersion":  "<text>",
        "WorkingSetSize":  <number>,
        "WriteOperationCount":  <number>,
        "WriteTransferCount":  <number>
    }
]

Beispiel für eine Datei vom Typ „os.json“

Hinweis:
  • Die Datei os.json muss sich in dem Arbeitsverzeichnis befinden, das spezifische Details zum Betriebssystem der Appliance enthält. Sie können den Befehl (Get-WmiObject -class Win32_OperatingSystem).Caption in PowerShell verwenden.
  • Die Schlüssel in der JSON-Beispieldatei sind wichtig.
  • -- kann betriebssystemspezifisch sein. Beispiel: Für Windows Server 2016 kann <text> für Microsoft Windows Server 2016 Standard stehen.
{
    "network_detailed": [], 
    "interfaces": [
        "------"
    ], 
    "ipv6": [ 
        "-:----::----:----:----:----"
    ], 
    "ipv4": [
        "---.---.---.---"
    ], 
    "mac_address": {
        "---": "--:--:--:--:--:--"
    }, 
    "os_info": "--------------------------------------"

Beispiel für eine Datei vom Typ „socketsOutFile.txt“

Die Datei socketsOutFile.txt muss sich in dem Arbeitsverzeichnis befinden, das alle Informationen zu Sockets enthält. Sie können den Befehl (netstat -bano | Out-String) -replace '(?m)^ (TCP|UDP)', '$1' -replace '\r?\n\s+([^\[])', "`t`$1" -replace '\r?\n\s+\[', "`t[" in PowerShell verwenden.

Active Connections	Proto  Local Address          Foreign Address        State           PID
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4	Can not obtain ownership information
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       736	RpcSs	[svchost.exe]
...
Hinweis:
  • Zur Anzeige zu bearbeitender Protokolle speichern Sie die Protokolle in der Datei iris-agent.log im selben Arbeitsverzeichnis.
  • CPDA muss mit dem PowerShell-Skript init ausgeführt werden, das folgende Argumente akzeptiert:
    • -osOutFile os.json
    • -processOutFile rawProcessInfo.json
    • -socketsOutFile socketsOutFile.txt
      Beispiel:
      C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 
      C:\Windows\Temp\irisAgent\WindowsCollector.ps1 -osOutFile os.json 
      -processOutFile rawProcessInfo.json -socketsOutFile socketsOutFile.txt
  • CPDA muss die Dateien rawProcessInfo.json, os.json und socketsOutFile.txt aktualisieren, damit eine Lesevorgang als Teil der Selbstüberprüfungsaufgabe durchgeführt werden kann.
  • Sie können die CPDA-Dateien in einer ZIP-Datei speichern und eine benutzerdefinierte CPDA-Konfiguration hinzufügen.