【发布时间】:2018-07-30 21:10:37
【问题描述】:
我试图强制重启一段时间(14 天)未重启的机器。我有一个 powershell 脚本,它是从另一个资源中获得的,我对其进行了一些调整以适应我公司的要求。我遇到的问题是 SCCM 没有从 Powershell 读取返回码。这是我到目前为止所拥有的
1- 用于检测 14 天未重新启动的机器的脚本,如果它是真的,那么它将以 3010 代码退出(3010 代码是软重启的 SCCM 行为)
2- 使用以下参数部署到所有客户端的 SCCM 应用程序
- 在包属性中,我设置它来确定基于
的行为
返回码(应该是 3010)
脚本工作正常,除了脚本完成后,我需要 SCCM 2012 来获取退出代码 3010,以便安排重启 PC。能否请你帮忙 。
【问题讨论】:
-
您能否通过执行历史记录(手动在 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'; Exit $LastExitCode }"跨度>
标签: powershell sccm