簡體   English   中英

Azure 虛擬機。 獲取操作系統版本。 電源外殼

[英]Azure VM. Get OS version. Powershell

我正在嘗試編寫一個 powershell 腳本,該腳本可以在 Azure 中列出我的 VM,包括它們是什么操作系統。 我設法使用以下方法獲取了我的 VM 的列表:

Get-AzureVM

但是我找不到操作系統版本。

我也知道詢問 WMI:

(Get-WmiObject -class Win32_OperatingSystem).Caption

但這不適用於我在 DMZ 中的 VM,因為我在運行腳本的地方沒有與它們的網絡連接。

想法?

對於新計算:

$json = Find-AzureRmResource -ResourceGroupName <resource group name>-ResourceType Microsoft.Compute/virtualMachines -ApiVersion 2015-11-01

它返回一個 JSON blob,您可以查詢它,例如:

$json.properties.storageProfile.imageReference

會是這樣的:

      "imageReference": {
        "publisher": "MicrosoftWindowsServer",
        "offer": "WindowsServer",
        "sku": "2012-R2-Datacenter",
        "version": "latest"
      },

對於 ClassicCompute:您無法獲得操作系統版本,但您可以檢查源映像名稱,該名稱應該為您提供一個字符串,您可以從中推斷操作系統版本。

$json = Find-AzureRmResource -ResourceGroupName <resource group name> -ResourceType Microsoft.ClassicCompute/virtualMachines -ApiVersion 2015-11-01

它返回一個 JSON blob,您可以在其中獲取源圖像名稱:

$json.properties.storageProfile.operatingSystemDisk.sourceImageName

例如 b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_2-LTS-amd64-server-20150506-en-us-30GB

Find-AzureRmResource 不再可用。 相反,Get-AzureRmResource 似乎已經取代了它的位置。 但是,像下面這樣的命令沒有提供操作系統版本的詳細信息

$json = Get-AzureRmResource -ResourceType Microsoft.Compute/virtualMachines -ApiVersion 2020-06-01 echo $json

名稱:mymachine ResourceGroupName:myresourcegroup ResourceType:Microsoft.Compute/virtualMachines 位置:eastus ResourceId:/subscriptions/abcdefg-1234-5678-ffff-e8219072/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/標簽:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM