2017-08-17 80 views
0

有什麼辦法可以讓所有虛擬機的擴展屬性,而不僅僅是Get-azurermvm帶來的,使用PowerShell? 我正在嘗試使用Select,但我不知道從哪裏獲得所有名稱。在門戶的列上的將不會工作(帶回空字段) ,如果我使用get-member,他們不帶任何東西,因爲我認爲他們嵌套在裏面...虛擬機使用天藍色的詳細屬性?

+0

所有屬性?看,這是事情,Azure虛擬機並不是真正的自包含。它們更像是Azure網絡接口等對象的集合,所以我認爲爲了真正幫助您,我們需要知道您希望獲得什麼。 – TheMadTechnician

+0

。我認爲是這樣,但我不知道如何將對象內的參數。這個想法是得到至少你可以在門戶網站的VM集合列: 實例IP地址 私有IP地址 資源型 尺寸 網絡接口 操作系統 公共DNS名稱 公共IP地址 資源組 子網 認購ID 虛擬IP地址 資源組ID 虛擬網絡 可用性設置 磁盤加密 磁盤 類 組負載平衡的 地點 位置ID 資源ID 狀態 認購 類型 使用託管磁盤 和自定義標籤 –

+0

你試圖讓這些細節,或者是你創建一個虛擬機,並試圖說明這些細節? – TheMadTechnician

回答

0

如果我的理解是正確的,get-azurermvm可能會在您的訂閱中獲得所有虛擬文件,但無法獲得詳細的屬性。您可以使用Get-AzurermVM get-azurermvm -ResourceGroupName $rg -Name $vm.Name來獲取詳細的屬性。您可以嘗試使用以下腳本。

##resource group name 
$rg="<>" 
$vms=get-azurermvm -ResourceGroupName $rg 
ForEach ($vm in $vms) { 
get-azurermvm -ResourceGroupName $rg -Name $vm.Name 
} 

注意:您可以使用get-azurermvm -ResourceGroupName $rg -Status獲取VM的狀態信息。

+0

即使通過完整的ResourceId指定虛擬機也不會獲得所有他們想要的細節。這不像運行單個命令那麼簡單。 – TheMadTechnician

1

正如我在我的評論中提到的那樣,這不是微不足道的,因爲Azure虛擬機不是像Hyper-V虛擬機那樣的自包含的東西。沒有單一的事實來源,因爲它由許多組件組成,您需要單獨收集這些組件的信息。例如:獲取所有虛擬機的IP地址。

要開始獲得IP地址爲你的虛擬機信息機器:

$VM = Get-AzureRmVm -ResourceGroup $RG -Name 'MyUberVM' 

現在你可以看看VM的網絡配置文件,其中將列出與VM相關聯的網絡接口的對象,但那些具有所有2個屬性,主要和Id。主屬性就像它聽起來的那樣,它指定了主網絡接口,如果你有多個接口。 Id屬性將會對網絡接口對象的完整RESOURCEID,是這樣的:

/subscriptions/12345abc-0000-1111-2222-ssl430asd432/resourceGroups/MyVMRG/providers/Microsoft.Network/networkInterfaces/myubervm01715 

現在我們可以用它來獲得實際的網絡接口對象幾種方法,但最簡單的就是隻運行Get-AzureRmResource反對,並管到Get-AzureRmNetworkInterface

$NIs = $VM.NetworkProfile.NetworkInterfaces.Id|%{Get-AzureRmResource -ResourceId $_}|Get-AzureRmNetworkInterface 

這會得到一個網絡接口對象的集合。其中每個屬性都有幾個屬性,但我們關心的是IpConfigurations屬性。每個網絡接口的每個IpConfig都有一個PrivateIpAddress屬性和一個PublicIp屬性。 PrivateIp屬性只是一個字符串,所以我們可以使用它,但PublicIp是一個對象,所以我們需要引用它的IpAddress屬性。現在,這可能會返回多個不同的網絡接口,具體取決於您與給定虛擬機關聯的網絡接口的數量,因此我會將它們加入','以保證安全。要打破這種情況,我們可以這樣做:

$PrivateIps = $NIs.IpConfigurations.PrivateIpAddress -join ', ' 
$PublicIps = $NIs.IpConfigurations.PublicIp.IpAddress -join ', ' 

因此,結束了獲取Azure虛擬機的IP的過程。這需要照顧你建議的兩列。無可否認,其中兩個較難,但仍然只有兩個。一旦您完成並獲取每個虛擬機所需的所有數據,我會爲它創建一個自定義對象,然後將這些自定義對象輸出到您的CSV文件中。

相關問題