Как извлечь информацию NIC с помощью командлета Get-AzureRmVM
Я хочу создать CSV-файл, содержащий имена виртуальных машин и сетевых интерфейсов, которые к ним подключены. Когда я запускаю командлет, я вижу следующий вывод в табличном формате
ResourceGroupName Name Location VmSize OsType NIC
Когда я пытаюсь выбрать только объект NIC, используя команду Get-AzureRmVM | select-object NIC
выход пуст.
Кто-нибудь может подсказать мне, как отфильтровать имена сетевых карт и имена виртуальных машин?
1 ответ
Потому что NIC не проект в Get-AzureRmVm
поэтому мы не можем использовать Get-AzureRmVM | select-object NIC
чтобы получить название NIC:
PS D:\testdata> get-azurermvm | gm
TypeName: Microsoft.Azure.Commands.Compute.Models.PSVirtualMachineList
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToPSVirtualMachine Method Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine ToPSVirtualMachine()
ToString Method string ToString()
AvailabilitySetReference Property Microsoft.Azure.Management.Compute.Models.SubResource AvailabilitySetReference {...
DiagnosticsProfile Property Microsoft.Azure.Management.Compute.Models.DiagnosticsProfile DiagnosticsProfile ...
DisplayHint Property Microsoft.Azure.Commands.Compute.Models.DisplayHintType DisplayHint {get;set;}
Extensions Property System.Collections.Generic.IList[Microsoft.Azure.Management.Compute.Models.Virtu...
HardwareProfile Property Microsoft.Azure.Management.Compute.Models.HardwareProfile HardwareProfile {get;s...
Id Property string Id {get;set;}
Identity Property Microsoft.Azure.Management.Compute.Models.VirtualMachineIdentity Identity {get;s...
InstanceView Property Microsoft.Azure.Management.Compute.Models.VirtualMachineInstanceView InstanceVie...
LicenseType Property string LicenseType {get;set;}
Location Property string Location {get;set;}
Name Property string Name {get;set;}
NetworkProfile Property Microsoft.Azure.Management.Compute.Models.NetworkProfile NetworkProfile {get;set;}
OSProfile Property Microsoft.Azure.Management.Compute.Models.OSProfile OSProfile {get;set;}
Plan Property Microsoft.Azure.Management.Compute.Models.Plan Plan {get;set;}
ProvisioningState Property string ProvisioningState {get;set;}
RequestId Property string RequestId {get;set;}
ResourceGroupName Property string ResourceGroupName {get;}
StatusCode Property System.Net.HttpStatusCode StatusCode {get;set;}
StorageProfile Property Microsoft.Azure.Management.Compute.Models.StorageProfile StorageProfile {get;set;}
Tags Property System.Collections.Generic.IDictionary[string,string] Tags {get;set;}
Type Property string Type {get;set;}
VmId Property string VmId {get;set;}
Кто-нибудь может подсказать мне, как отфильтровать имена сетевых карт и имена виртуальных машин?
В качестве обходного пути мы можем использовать этот скрипт для получения имени NIC:
$a = get-azurermvm -ResourceGroupName jasonvm -Name jasonvm
$b = $a.NetworkProfile.NetworkInterfaces.id -split "/"
$nic = $b[-1]
$nic
Тогда мы можем использовать $nic
чтобы получить информацию о NIC, вот так:
Get-AzureRmNetworkInterface -Name $nic -ResourceGroupName jasonvm