我的 script.ps1 中有一个命令,该命令由 tfs 2015 中的下一个构建步骤运行。然后我导航到办公室的位置,运行命令强制 KMS 推送,如下所示:
cmd.exe dir "C:\apps\MSOffice\Office15\"
cmd.exe "cscript ospp.vbs /act"
它被执行,但它只是挂起,没有任何反应。如果我手动执行命令,它可以正常工作。仅当我通过 powershell 执行此操作时才会发生这种情况 - 手动运行命令按预期工作。
我的 script.ps1 中有一个命令,该命令由 tfs 2015 中的下一个构建步骤运行。然后我导航到办公室的位置,运行命令强制 KMS 推送,如下所示:
cmd.exe dir "C:\apps\MSOffice\Office15\"
cmd.exe "cscript ospp.vbs /act"
它被执行,但它只是挂起,没有任何反应。如果我手动执行命令,它可以正常工作。仅当我通过 powershell 执行此操作时才会发生这种情况 - 手动运行命令按预期工作。
不知道为什么要从 PowerShell 调用 CMD 来执行 PowerShell 可以直接执行的命令。
反正
执行命令时使用 /C 返回
cmd.exe /C dir "C:\apps\MSOffice\Office15\"
cmd.exe /C "cscript ospp.vbs /act"
谢谢 Micky!,/C 帮助我调试。
解决方案是这样的:
cmd.exe /c "cd C:\apps\MSOffice\Office15\"
cmd.exe /c "cscript.exe C:\apps\MSOffice\Office15\ospp.vbs /act"
需要将脚本 VB 处理程序与 VB 脚本分开执行。顺便说一句:我这样做的原因是因为我有一个构建任务将同时在 20 台构建机器上执行。