从PowerShell窗口启动.exe有时会导致它在单独的窗口中运行,因此我可以';无法查看输出或获取$lastexitcode
我决不是一个PowerShell专家;我花了很长时间在谷歌上搜索这个,但还没有找到答案 我的脚本的基本思想是使用命令行参数运行一个名为appcert.exe的Microsoft工具。appcert.exe返回0、1或-1;我正在用从PowerShell窗口启动.exe有时会导致它在单独的窗口中运行,因此我可以';无法查看输出或获取$lastexitcode,powershell,Powershell,我决不是一个PowerShell专家;我花了很长时间在谷歌上搜索这个,但还没有找到答案 我的脚本的基本思想是使用命令行参数运行一个名为appcert.exe的Microsoft工具。appcert.exe返回0、1或-1;我正在用$lastexitcode检查它 appcert.exe仅在Windows 7和Windows 8上运行,因此我已在这两个系统上运行了脚本 在Windows7x64(PS版本=2.0)上一切正常。我可以手动运行所有相同的步骤。我在同一PS窗口中看到appcert.exe
$lastexitcode
检查它
appcert.exe仅在Windows 7和Windows 8上运行,因此我已在这两个系统上运行了脚本
在Windows7x64(PS版本=2.0)上一切正常。我可以手动运行所有相同的步骤。我在同一PS窗口中看到appcert.exe的输出
Windows 8x64(RTM)上的不同情况,其中PS版本=3.0,CLRVersion=4.0.30319.17929
有时,appcert.exe运行“内联”(就像在Win7中一样);其他时候,启动命令窗口,appcert.exe输出飞过,命令窗口关闭。调用它的PS窗口无法检查$lastexitcode
(顺便说一句,它根本没有设置)
我在机器上尝试了所有PS版本,结果如下:
- 在PowerGUI 3.2.0.2237中(使用PS 2.0)
- 在常规PowerShell中(非管理员)
- 在Windows PowerShell ISE中(非管理员)
- 以管理员身份运行Powershell
- 以管理员身份运行ISE
和$CertToolPath
Cmd/c appcert.exe
Invoke expression–命令appcert.exe
[system.diagnostics.process]::start(“appcert.exe”)
Tania你能用任何其他exe重新编程吗?您是否禁用了UAC提示
appcert.exe是否可能需要以管理员身份运行,如果不需要,它会自动以管理员身份重新启动自身(这会导致UAC提示,但如果您将其关闭,它似乎只会自动生成一个新实例)?此外,我发现关闭PoSH并打开一个新程序会导致生成的程序再次“在线”运行。程序在新窗口中启动;关闭powershell,打开一个新的powershell;程序再次在线运行。莫名其妙。