Azure自定义脚本扩展任务未在后台运行

时间:2014-10-21 14:43:20

标签: powershell azure

我正在使用Azure自定义脚本扩展来自动部署Azure VM。在一种情况下,我正在安装XAMPP并配置各种服务,但是在安装完所有内容后,apache进程不再运行。如果我登录到机器并手动启动它,它运行得很好。

这是我用来启动安装和配置XAMPP

的powershell脚本的脚本
$password =  ConvertTo-SecureString "password" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("$env:COMPUTERNAME\username", $password)
$command = $file = $PSScriptRoot + "\WebServerSetup.ps1"
Enable-PSRemoting –force
Invoke-Command -FilePath $command -Credential $credential -ComputerName $env:COMPUTERNAME
Disable-PSRemoting -Force

设置网络服务器的脚本相当长,但这里是我启动Apache服务的地方

Start-Process c:\xampp\apache_stop.bat  

Start-Sleep -Seconds 15

Start-Job c:\xampp\apache_start.bat 

运行自动化脚本后,所有配置都已完成,但进程未运行...如果我手动运行该命令,它可以正常工作。我认为问题是因为bat文件想要在自己的窗口中运行所以我尝试了“xampp_start.exe”,它没有打开一个新窗口,结果是一样的。

1 个答案:

答案 0 :(得分:0)

问题似乎是Invoke-Command会自动关闭执行命令后从其会话中启动的所有进程。

所以简单的解决方案应该是:

请勿使用Invoke-Command启动您的PowerShell脚本。

如果您必须提供凭据,请尝试以下操作:

Start-Process powershell -ArgumentList "$command" -Credential $credential

否则只需运行脚本:

$command