-1

Я новичок в 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++ для подключения к серверу, и, поскольку он может получить идентификатор процесса, я предполагаю, что соединение правильное. Пожалуйста, скажите мне, что мне не хватает?

1 ответ1

0

Я нашел решение.

Проблема заключалась в том, что NSCLient использовал локальную аутентификацию, и изменение пользователя решило проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .