powershell 中的 NullReferenceException 错误

powershell 中的 NullReferenceException 错误

我是 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++ 连接到服务器,由于它能够检索进程 ID,因此我认为连接是正确的。请告诉我我遗漏了什么?

答案1

我找到了解决方案。

问题在于 NSCLient 使用本地身份验证,更改用户即可解决问题。

相关内容