sccm - 使用 32 位启动器运行 .cmd?
问题描述
我花了很多时间试图弄清楚我想要完成的这个简单的事情。我有一个带有一行的 .cmd 文件:sfc /scannow
我将它包装到一个包中,命令行作为程序位于:cmd /c sfc.cmd
并且它被设置为根据需要安装并隐藏。(如果这确实运行,我可以查看 cbs 日志)。然后它被部署并下载到测试机器上,我在 ccmcache 文件夹中看到它。查看 execmgr.log 它执行了以下操作:
"C:\Windows\system32\cmd.exe" /c sfc.cmd, Working Directory = C:\Windows\ccmcache\g\
Running "C:\Windows\system32\cmd.exe" /c sfc.cmd with 32bitLauncher
下午 4 点 43 分左右注意到了这两个指标。我没有看到退出代码 0 或任何其他代码。然后查看 cbs.log 最后写入时间是下午 4:19。我究竟做错了什么?
解决方案
如果我尝试在 64 位 Windows 中从 32 位 cmd 运行 sfc /scannow,我会收到错误消息,因此您可能必须使用技巧来运行 64 位 sfc。
而不是命令行
cmd /c sfc.cmd
利用
C:\windows\sysnative\cmd /c sfc.cmd
Sysnative是一个别名,很遗憾你看不到它,但如果一个程序作为 32 位进程启动,它可以访问它。它的作用是避免 WoW64 重定向,该重定向会拦截对 system32 的每次调用并将其发送到 syswow64,这在您的情况下会导致问题。
推荐阅读
- python - 如何从纯文本(python)中提取特定的日期格式?
- android - 如何在 kotlin 协程中正确使用暂停而不是延迟?
- javascript - Angular 中的动态子组件
- java - 在指定的时间后运行测试
- c# - 如果您能够修改源代码,为什么还要使用扩展方法?
- powershell - 我的表单上的 OK 按钮在第一次启动时不显示,如果我重新启动它会显示
- docker - 使用 Golang SDK 运行需要用户输入的 Docker 命令
- reactjs - Jest & react-router-dom: React.createElement: type is invalid - 期望一个字符串(用于内置组件)......但得到:未定义
- android - 如何将 APK 的拆分副本从 Flutter 添加到 Google Play 商店?
- entity-framework - Entity Framework Core 3 - 缺少类型映射配置或不支持的映射