0
我有一个问题,使用powershell脚本插件,与我的nagios代理(NRPE_NT.exe)。 为了解决这个问题,我创建下面的一层批处理文件:我的批处理文件包装关闭Powershell儿童会话
@ECHO OFF
SET SCRIPTPATH=%~d0%~p0check_process_mem.ps1
SET ARGS=%*
IF [%ARGS%] NEQ [] GOTO ESCAPE_ARGS
:POWERSHELL
PowerShell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Unrestricted -Command "& { $ErrorActionPreference = 'Stop'; & '%SCRIPTPATH%' @args; EXIT $LASTEXITCODE }" %ARGS%
EXIT /B %ERRORLEVEL%
:ESCAPE_ARGS
SET ARGS=%ARGS:"=\"%
SET ARGS=%ARGS:`=``%
SET ARGS=%ARGS:'=`'%
SET ARGS=%ARGS:$=`$%
SET ARGS=%ARGS:{=`{%
SET ARGS=%ARGS:}=`}%
SET ARGS=%ARGS:(=`(%
SET ARGS=%ARGS:)=`)%
SET ARGS=%ARGS:,=`,%
SET ARGS=%ARGS:^%=%
GOTO POWERSHELL
现在,如果我运行它作为对话的用户,我没有任何问题,但如果我以SYSTEM用户,PowerShell会话没有按运行关闭,我必须从任务列表中杀死它。 我能做些什么来解决这个问题?
P.S.我不能更新NRPE_NT.exe代理NSClient ++(PowerShell的合规性),为他人的问题...提前
您可以尝试使用'psexec -s -i powershell.exe'以系统用户身份启动PowerShell控制台,然后播放您的脚本并查看会发生什么 – 2014-08-27 13:23:38
我尝试在我的计算机上安装服务,然后模拟(psexec -s -i powershell.exe和脚本运行)它可以正常工作。不幸的是我不能安装它在服务器上(它必须工作) – clarkseth 2014-08-27 14:17:35
当我杀死PowerShell进程,输出发送到Nagios控制台正确(退出代码除外)。 – clarkseth 2014-08-28 09:44:51