Ich habe die Lösung gefunden.
Das Problem war, dass NSCLient eine lokale Authentifizierung verwendete. Durch Ändern des Benutzers wurde das Problem gelöst.
Ich bin ein Neuling in Power-Shell, ich habe ein Skript geschrieben, das den Prozess gemäß den Parametern in der Befehlszeile anhält. Das Problem ist, wenn ich das Skript in Power Shell ausführt, funktioniert es, aber wenn ich versuche, es von einem Remote-Server mit npre auszuführen, obwohl es den Prozess findet, erhalte ich diesen Fehler:
The retrived Process ID fro test.bat is 9468 Stop-Process : Object reference not set to an instance of an object. At C:\Program Files\NSClient++\scripts\Kill_Java.ps1:14 char:13 + Stop-Process <<<< $arman + CategoryInfo : NotSpecified: (:) [Stop-Process], NullReferenceE xception + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShe ll.Commands.StopProcessCommand
Mein Skript ist wie folgt:
$servicename=$args[0] $processid = get-wmiobject -query "select * from win32_process where CommandLine like '%$servicename%' and name='notepad.exe'" | Select-Object Handle | Out-File test.txt If ((Get-Content "test.txt") -eq $Null) { "File is blank" } else {$a = Get-Content test.txt $arman=$a[3] write-host The retrived Process ID fro "$servicename" is "$arman" Stop-Process $arman } exit 3
Ich muss hinzufügen, dass ich NSClinet ++ verwende, um eine Verbindung zum Server herzustellen, und da es die Prozess-ID zurückholen kann, gehe ich davon aus, dass die Verbindung korrekt ist. Bitte sag mir was fehlt mir?
Ich habe die Lösung gefunden.
Das Problem war, dass NSCLient eine lokale Authentifizierung verwendete. Durch Ändern des Benutzers wurde das Problem gelöst.