我有一个 Windows Azure 启动任务,我正在尝试运行它来安装 MSI。我正在尝试通过 powershell 脚本运行任务。当我有以下情况时,我可以确认 powershell 脚本运行:
"Before powershell" >> C:\hello.txt
$msi = "E:\approot\bin\StartupScripts\AppInitalization_x64.msi"
if($true -eq [System.IO.File]::Exists($msi))
{
"file exists" >> C:\hello.txt
}
else
{
"file does not exist" >> C:\hello.txt
}
"After powershell" >> C:\hello.txt
如果我运行部署,我的hello.txt
包含“之前,文件存在”和“之后”。
但是,如果我尝试将文件存在条件更改为:
$arguments= ' /qn /l*v C:\AppInitalization_x64.txt'
Start-Process `
-file $msi `
-arg $arguments `
-passthru
部署挂起(我让它等待了五个小时)。如果我远程进入机器并尝试相同的 powershell 片段,它安装得很好。
当我将它作为启动脚本的一部分时,为什么它会挂起的任何想法?