通过Powershell远程管理Windows Azure上的虚拟机
Param(
$SubscriptionName,
$Servicename,
$Path = (Get-Location)
)
# Elevate to admin
Write-Host "Checking for elevation... " -NoNewline
$CurrentUser = New-Object Security.Principal.WindowsPrincipal $(::GetCurrent())
if (($CurrentUser.IsInRole(::Administrator)) -eq$false) {
$ArgumentList= "-noprofile-noexit -file `"{0}`" -Path `"$Path`""
If($DeploymentOnly) {$ArgumentList = $ArgumentList +" -DeploymentOnly"}
Write-Host"elevating"
Start-Processpowershell.exe -VerbRunAs -ArgumentList($ArgumentList -f($myinvocation.MyCommand.Definition))
Exit
}
Select-AzureSubscription -SubscriptionName $SubscriptionName -Current
$Validate = $true
# Check Current PS Version
If ($PSVersionTable.PSVersion.Major -lt 4) {Write-Error "Only Supports PowerShell Version 4 or Higher!";$Validate =$false}
if ($Validate)
{
function Install-WinRmCertificate($ServiceName, $VMName)
{
$vm= Get-AzureVM-ServiceName $ServiceName-Name $VMName
$winRmCertificateThumbprint= $vm.VM.DefaultWinRMCertificateThumbprint
$winRmCertificate= Get-AzureCertificate-ServiceName $ServiceName`
-Thumbprint$winRmCertificateThumbprint -ThumbprintAlgorithm sha1
$installedCert= Get-Item Cert:\CurrentUser\My\$winRmCertificateThumbprint-ErrorAction SilentlyContinue
if($installedCert -eq$null)
{
$certBytes= ::FromBase64String($winRmCertificate.Data)
$x509Cert= New-ObjectSystem.Security.Cryptography.X509Certificates.X509Certificate
$x509Cert.Import($certBytes)
$store= New-ObjectSystem.Security.Cryptography.X509Certificates.X509Store"Root","LocalMachine"
$store.Open("ReadWrite")
$store.Add($x509Cert)
$store.Close()
}
}
$VMnames = (Get-AzureVM -ServiceName $ServiceName).HostName
foreach ($VMname in $VMnames)
{
Install-WinRmCertificate-ServiceName $ServiceName-VMName $VMname
$VMwinRmUri= Get-AzureWinRMUri-ServiceName $ServiceName-Name $VMname
$credential= Get-Credential
Start-Job-ScriptBlock{
Invoke-Command -URI $VMwinRmUri -Credential $credential -ScriptBlock {
Install-WindowsFeature -nameDesktop-Experience `
-IncludeAllSubFeature -Restart-Force}}
}
}
页:
[1]