我正在尝试编写使用MSdeploy同步IIS服务器的内容。
我尝试了所有可能的方法来运行.exe但有时我会收到此错误:
The term 'C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe' is
not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
当我第一次运行它后再次执行相同的脚本它工作正常。这就是我最后调用它的方式:
& 'C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe' -verb:sync ...
任何想法如何防止它第一次失败?
答案 0 :(得分:1)
为什么不使用Web Deploy提供的powershell cmdlet而不是使用exe?默认情况下,从V3开始安装这些cmdlet。
答案 1 :(得分:0)
我通常建议人们使用Start-Process
cmdlet调用外部可执行文件。
$MsDeploy = 'C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe';
$ArgumentList = '-verb:sync ... ... ...';
Start-Process -FilePath $MsDeploy -ArgumentList $ArgumentList -Wait -NoNewWindow;
答案 2 :(得分:0)
请记住C:\Program Files
被重定向到32位进程,所以
要在32位机器运行中始终使用32位PowerShell进程:
%SystemRoot%\system32\WindowsPowerShell\v1\powershell.exe
在64位计算机上,运行:
%SystemRoot%\SysWOW64\WindowsPowerShell\v1\powershell.exe