使用 Azure PowerShell 建立虛擬機器
在本教學課程中,您將了解使用 Azure PowerShell 設定虛擬機器所需的所有步驟。 本教學課程也涵蓋輸出查詢、Azure 資源重複使用和資源清除。
您可以透過 Azure Cloud Shell 提供的互動式體驗完成本教學課程,也可以在本機安裝 Azure PowerShell。
使用 ctrl-shift-v (在 macOS 上使用 cmd shift hyper-v) 將教學課程的文字貼到 Azure Cloud Shell。
登入
如果您使用 Azure PowerShell 的本機安裝,必須先登入,再執行任何其他步驟。
Connect-AzAccount
請遵循您終端機上顯示的步驟,來完成登入程序。
建立資源群組
在 Azure 中,所有資源都會配置在管理群組中。 資源群組會提供資源的邏輯群組,以集合的方式讓資源更容易使用。
在本教學課程中,所有建立的資源都會移入名為 TutorialResources
的單一群組。
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
建立 VM 的管理員認證
建立新的虛擬機器之前,您必須先建立認證物件,且此認證物件需包含 Windows VM 系統管理員帳戶的使用者名稱和密碼。
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
出現提示時,輸入使用者名稱和密碼。 產生的認證物件在下一個步驟中會作為傳遞的參數。
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
建立虛擬機器
Azure 中的虛擬機器有大量的相依性。 Azure PowerShell 會根據您指定的命令列引數,為您建立這些資源。 為了增加可讀性,我們使用 PowerShell 展開將參數傳遞給 Azure Cmdlet。
建立執行 Windows 的新虛擬機器。
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
建立虛擬機器後,您會看到系統使用了參數值,並已建立 Azure 資源。 PowerShell 將顯示進度列,如下所示。
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
VM 準備就緒之後,我們就可以在 Azure 入口網站中檢視結果,或透過檢查 $newVM1
變數查看結果。
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
列在大括號內的屬性值是巢狀的物件。 在下一個步驟中,我們將示範如何檢視這些巢狀物件中的特定值。
使用查詢取得 VM 資訊
從我們剛才建立的 VM 取得更詳細的資訊。 在此範例中,我們會確認 VM 的名稱以及所建立的系統管理員帳戶。
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
我們可以使用其他 Azure PowerShell 命令來取得有關網路設定的特定資訊。
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
在此範例中,我們使用 PowerShell 管線將 $newVM1 物件傳送至 Get-AzNetworkInterface
Cmdlet。 從產生的網路介面物件中,選取巢狀的 IpConfigurations 物件。 從 IpConfigurations 物件,選取 Name 和 PrivateIpAddress 屬性。
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
為了確認 VM 正在執行,需要透過遠端桌面連線。 為此,我們需要公用 IP 位址。
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
在此範例中,我們使用 Get-AzPublicIpAddress
,並將結果儲存在 $publicIp
變數中。 在這個變數中選取屬性,並使用運算式來擷取巢狀的 Fqdn 屬性。
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
您可以在您的本機電腦執行下列命令,以透過遠端桌面連線到 VM。
mstsc.exe /v $publicIp.IpAddress
如需有關查詢物件屬性的詳細資訊,請參閱查詢 Azure 資源。
在現有子網路上建立新的 VM
第二個 VM 會使用現有子網路。
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
由於 $newVM2
物件的 FullyQualifiedDomainName 屬性已傳回新 VM 的公用 IP 位址,您可以省略取得這項資訊的一些步驟。 使用下列命令利用遠端桌面建立連線。
mstsc.exe /v $newVM2.FullyQualifiedDomainName
清理
現在已完成本教學課程,可以開始清除已建立的資源。 您可以使用 Remove-AzResource
命令刪除個別的資源,但使用 Remove-AzResourceGroup
命令刪除群組是移除資源群組中所有資源最安全的方法。
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
此命令會刪除教學課程期間建立的資源,並保證以正確的順序將資源解除配置。 AsJob
參數可防止 PowerShell 在刪除作業執行時遭到阻止。 若要等候刪除完成,使用以下命令:
Wait-Job -Id $job.Id
清理完成後,表示已完成本教學課程。 請繼續閱讀您學到的所有內容摘要,以及取得可協助您使用後續步驟的資源連結。
摘要
恭喜! 您已了解如何使用新資源或現有資源建立 VM、使用運算式和其他 Azure PowerShell 命令來擷取資料並儲存到殼層變數,以及查看為 Azure VM 建立的部分資源。
接下來,您可以根據要如何使用 Azure PowerShell,進行不同的步驟。 有各種不同的資料可讓您進一步深入探討本教學課程中涵蓋的功能。
深入了解 Azure PowerShell 文件
建議您花點時間瀏覽完整的Azure PowerShell 文件。
如需本教學課程中使用之命令的詳細資訊,請參閱以下文章。
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- Wait-Job
另外也有一些文章可幫助您深入了解教學課程中出現的 CLI 功能。
範例指令碼
如果您想要立即開始進行特定工作,可看看一些範例指令碼。
Feedback
如果您想要提供意見反應、建議或詢問問題,可透過許多方式與我們連絡。
Send-Feedback
是內建的 Azure PowerShell 命令,是內建的 Azure PowerShell 命令,可讓您向我們的小組提供意見反應,格式不拘。- 在 Azure PowerShell 存放庫中提交功能要求或錯誤報告。
- 若要詢問問題或釐清問題,請在 Azure PowerShell 文件存放庫中提交問題。
希望您滿意使用 Azure PowerShell!
在這個區段有遇到問題嗎? 如果有,請提供意見反應,好讓我們可以改善這個區段。