SCCM未从powershell读取返回代码

SCCM未从powershell读取返回代码,powershell,sccm,Powershell,Sccm,我试图强制重新启动一段时间(14天)未重新启动的机器。我有一个powershell脚本,是从另一个资源获得的,我对它进行了一些调整,以符合公司的要求。我遇到的问题是,SCCM没有从Powershell读取返回代码。这是我到目前为止所拥有的 1-用于检测14天内未重新启动的计算机的脚本,如果为真,则将以3010代码退出(3010代码是软重新启动的SCCM行为) 2-使用以下参数部署到所有客户端的SCCM应用程序 -在package properties中,我将其设置为基于 返回代码(应为3010)

我试图强制重新启动一段时间(14天)未重新启动的机器。我有一个powershell脚本,是从另一个资源获得的,我对它进行了一些调整,以符合公司的要求。我遇到的问题是,SCCM没有从Powershell读取返回代码。这是我到目前为止所拥有的

1-用于检测14天内未重新启动的计算机的脚本,如果为真,则将以3010代码退出(3010代码是软重新启动的SCCM行为)
2-使用以下参数部署到所有客户端的SCCM应用程序 -在package properties中,我将其设置为基于
返回代码(应为3010)

脚本工作正常,除了脚本完成后,我需要SCCM 2012获得3010的退出代码,以便安排重新启动电脑。请提供帮助。

在PowerShell 2.0上,或者至少在3.0上,PowerShell的-File参数存在错误,因此它不会将退出代码传递回调用进程。在这种情况下,您必须使用此方法获取退出代码:

powershell.exe -Command "& { & '.\Mandatory Reboot.ps1'; Exit $LastExitCode }"

您可以通过执行历史记录进行验证吗(在regedit中手动或与roger zanders sccm客户端中心一起,sccm是否确实接收到返回代码3010?我怀疑这与powershell未正确传递其退出代码的问题有关,而不是与sccm获得3010但处理错误的问题有关。您如何直接从运行逗号调用powershell脚本我发现我必须运行cmd/c来调用一个.bat文件,该文件反过来调用.ps1文件,因为直接从Powershell返回SCCM时似乎存在错误代码2012@Syberdoor:你能澄清一下如何在注册表中检查吗?@SimonB:我尝试了两种方法,但都没有成功。我使用bat文件调用powershell脚本以及使用以下powershell.exe直接运行它-ExecutionPolicy Bypass“\Mandatory Reboot.ps1”尝试此执行脚本的方法,以查看是否返回退出代码:powershell.exe-Command“&{&”.\Mandatory Reboot.ps1';退出$LastExitCode}”谢谢-我会尝试一下,让你知道它是如何运行的。@user136700很遗憾,它不起作用,但无论如何,谢谢你能分享你的脚本吗?这里是与我使用的脚本类似的源脚本(我更改了一些东西-上次重新启动…)