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