2017-07-18 78 views

回答

2

使用下面的腳本:

$PackagePath = "c:\temp\package.zip" 
$ResourceGroupName = "resource-group-where-my-app-resides" 
$AppName = "my-cool-web-app" 

if (!(Test-Path $PackagePath)) { 
    throw "Package file $PackagePath does not exist" 
} 

echo "Getting publishing profile for $AppName app" 
$xml = Get-AzureRmWebAppPublishingProfile -Name $AppName ` 
      -ResourceGroupName $ResourceGroupName ` 
      -OutputFile temp.xml -Format WebDeploy -ErrorAction Stop 
$username = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@userName").value 
$password = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@userPWD").value 
$url = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@publishUrl").value 
$siteName = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@msdeploySite").value 
del temp.xml 
echo "Got publishing profile XML." 

$msdeployArguments = 
    '-verb:sync ' + 
    "-source:package='$PackagePath' " + 
    "-dest:auto,ComputerName=https://$url/msdeploy.axd?site=$siteName,UserName=$username,Password=$password,AuthType='Basic',includeAcls='False' " + 
    "-setParam:name='IIS Web Application Name',value=$siteName" 
$commandLine = '&"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" --% ' + $msdeployArguments 
Invoke-Expression $commandLine 

msdeploy.exe很脆,在命令行參數空間,請參閱https://stackoverflow.com/a/25198222

相關問題