PowerShell-Probe
Die PowerShell-Probe führt PowerShell V2-Skripts auf dem MID Server-Host aus.
PowerShell-Skripts sind als Probe-Parameter mit dem Dateinamen als Parameternamen definiert. Es ist als Probe-Typ „Probe“ verfügbar, indem „PowerShell“ als ECC-Warteschlangenthema der Probe angegeben wird.
PowerShell-Probe-Parameter
| Parametername | Beschreibung |
|---|---|
| Quelle | [Erforderlich] Der erste Host, zu dem eine Verbindung hergestellt werden soll Standardwert: Keine |
<script name>.ps1 |
[Erforderlich] Der Dateiname des auszuführenden PowerShell-Skripts. Ersetzen Sie <script name> durch ein gültiges Dateinamenpräfix. Standardwert: Keine |
powershell_command_parameter_passing |
Gibt an, ob Skriptparameter in der Befehlszeile übergeben werden sollen. Unabhängig vom Wert dieses Parameters macht ServiceNow alle Skriptparameter in der Befehlszeile automatisch für PowerShell-Skripts als Umgebungsvariablen verfügbar. Standardwert: false |
| powershell_param_<script parameter name> | Übergibt zusätzliche Parameter an das auszuführende PowerShell-Skript. Jeder Parameter wird dem Skript als Umgebungsvariable im Format $env:SNC_<script parameter name> angezeigt. Parameter mit diesem Präfix gelten nicht als verschlüsselt und werden unverändert an das Skript übergeben. Stellen Sie sicher, dass Sie den entsprechenden Parameter zwischen powershell_param_<script parameter name> und powershell_<script parameter name> auswählen. Die Verwendung des falschen Präfix führt zu Fehlern in der PowerShell-Ausführung, die an die Instanz in der ECC-Warteschlangeneingabe zurückgegeben werden. Standardwert: Keine |
powershell_<script parameter name> |
Übergibt zusätzliche Parameter an das auszuführende PowerShell-Skript. Jeder Parameter wird dem Skript als Umgebungsvariable im Format $env:SNC_<script parameter name> angezeigt. Der MID Server geht davon aus, dass alle Parameter mit diesem Präfix verschlüsselt sind, und versucht, sie zu entschlüsseln. Stellen Sie sicher, dass Sie den entsprechenden Parameter zwischen powershell_param_<script parameter name> und powershell_<script parameter name> auswählen. Die Verwendung des falschen Präfix führt zu Fehlern in der PowerShell-Ausführung, die an die Instanz in der ECC-Warteschlangeneingabe zurückgegeben werden. Standardwert: Keine |
| debug | Aktiviert die Debug-Protokollausgabe während der Ausführung der Probe. Standardwert: false |
| credentials_debug | Zeigt einen <credentials_debug>-Abschnitt in der ECC-Warteschlange an, der Ihnen bei der Behebung von Problemen mit den Anmeldeinformationen helfen kann. Wenn Sie diese Eigenschaft auf „true“ setzen, werden Informationen zur Behandlung von Problemen mit Anmeldeinformationen in der ECC-Warteschlange ausgegeben, auch wenn die Anmeldeinformationen erfolgreich sind. Standardwert: false |
Skripting-Anforderungen
Alle benutzerdefinierten PowerShell-Skripts müssen Umgebungsvariablen verwenden, um nichtboolesche Befehlszeilenparameter zu übergeben. Ersetzen Sie nichtboolesche Parameter im Abschnitt Param() des Skripts durch Skriptvariablen mit demselben Namen. Definieren Sie die Skriptvariable als Teil der Umgebung mit einem SNC_-Präfix. Dadurch wird ein Zeichenfolgenparameter wie der folgende:
Param([string]$paramName)zu einer Skriptvariablen wie der folgenden:
if(test-path env:\SNC_paramName) {
$paramName = $env:SNC_paramName
}Beispielsweise enthält diese Parameterdefinition aus dem Skript PSScript.ps1 mehrere Zeichenfolgenparameter, die als Skriptvariablen neu definiert werden müssen:
Param([string]$computer, [string]$script, [string]$user, [string]$password, [boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)Das Definieren der nichtbooleschen Parameter als Skriptvariablen führt zu folgendem Skripttyp:
Param([boolean]$useCred, [boolean]$isDiscovery, [boolean]$debug)
# Copy the environment variables to the params
if(test-path env:\SNC_computer) {
$computer=$env:SNC_computer
}
if(test-path env:\SNC_script) {
$script=$env:SNC_script
}
if(test-path env:\SNC_user) {
$user=$env:SNC_user
$password=$env:SNC_password
}