Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PowerShell窗口启动.exe有时会导致它在单独的窗口中运行,因此我可以';无法查看输出或获取$lastexitcode_Powershell - Fatal编程技术网

从PowerShell窗口启动.exe有时会导致它在单独的窗口中运行,因此我可以';无法查看输出或获取$lastexitcode

从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

我决不是一个PowerShell专家;我花了很长时间在谷歌上搜索这个,但还没有找到答案

我的脚本的基本思想是使用命令行参数运行一个名为appcert.exe的Microsoft工具。appcert.exe返回0、1或-1;我正在用
$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版本,结果如下:

  • 在以下情况下,appcert.exe在单独的窗口中启动:

    • 在PowerGUI 3.2.0.2237中(使用PS 2.0)
    • 在常规PowerShell中(非管理员)
    • 在Windows PowerShell ISE中(非管理员)
  • appcert.exe在以下实例中以内联方式启动:

    • 以管理员身份运行Powershell
    • 以管理员身份运行ISE
  • 无论我是否:

  • 启动脚本,该脚本调用appcert命令如下:
    和$CertToolPath
  • cd到工具的主目录并键入。\appcert.exe
  • 运行此命令:
    Cmd/c appcert.exe
  • 运行以下命令:
    Invoke expression–命令appcert.exe
  • 运行以下命令:
    [system.diagnostics.process]::start(“appcert.exe”)
  • 我的同事们同样对此感到困惑

    我的机器在测试域中,不是工作组。我以测试域管理员的身份登录机器,所以理论上,我已经是管理员了

    我也作为管理员安装了MS工具。事实上,我从来没有做过任何事作为机器的本地管理员。有什么想法吗?:)

    多谢各位,
    Tania

    你能用任何其他exe重新编程吗?您是否禁用了UAC提示


    appcert.exe是否可能需要以管理员身份运行,如果不需要,它会自动以管理员身份重新启动自身(这会导致UAC提示,但如果您将其关闭,它似乎只会自动生成一个新实例)?

    此外,我发现关闭PoSH并打开一个新程序会导致生成的程序再次“在线”运行。程序在新窗口中启动;关闭powershell,打开一个新的powershell;程序再次在线运行。莫名其妙。