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