Я новичок в Power-Shell, я написал скрипт, который останавливает процесс в соответствии с параметрами в командной строке. проблема в том, что когда я запускаю скрипт в Power Shell, он работает, но когда я пытаюсь запустить его с удаленного сервера, используя npre, даже если он находит процесс, я получаю эту ошибку:
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
Мой сценарий выглядит следующим образом:
$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
Я должен добавить, что я использую NSClinet++ для подключения к серверу, и, поскольку он может получить идентификатор процесса, я предполагаю, что соединение правильное. Пожалуйста, скажите мне, что мне не хватает?