Как преобразовать переменную ResourceId в строку в PowerShell? - PullRequest
0 голосов
/ 05 июля 2018

У меня проблемы с преобразованием ResourceID в строку в PowerShell.

У меня есть список, в котором есть каждая информация о виртуальном интерфейсе из подписки Azure.

$virtualInterfaceArray = @(Get-AzureRmNetworkInterface)

Затем я помещаю значение индекса этого списка в переменную, поэтому не могу получить точную информацию, которую хочу. Например:

$hostVirtualInterfaceIndex = $virtualInterfaceArray[5]
$hostVirtualInterfaceVM = hostVirtualInterfaceIndex.VirtualMachine

Если я печатаю $ hostVirtualInterfaceVM, он возвращает:

PS C:\Users\marcelo.salvatori> $hostVirtualInterfaceVM
Id                                                                                                                                 
--                                                                                                                                 
/subscriptions/301238dsf0sdfj/resourceGroups/rg-test/providers/Microsoft.Compute/virtualMachines/vmtest

Я знаю, что не могу использовать метод .Split (), потому что это не строка. Поэтому я пытаюсь проверить это, используя метод .ToString ():

PS C:\Users\marcelo.salvatori> $hostVirtualInterfaceVMString = hostVirtualInterfaceVM.ToString()

Но тогда, когда я печатаю переменную, она возвращает:

PS C:\Users\marcelo.salvatori> $hostVirtualInterfaceVMString
Microsoft.Azure.Commands.Network.Models.PSResourceId

Мне нужен этот разговор, чтобы я мог использовать метод .Split ().

1 Ответ

0 голосов
/ 06 июля 2018

Если вы хотите получить имя виртуальной машины, связанное с этим NIC. Пожалуйста, попробуйте использовать следующий код.

Get-AzureRmNetworkInterface |  Select-Object -Property Name, @{Name="VMName";Expression = {$_.VirtualMachine.Id.tostring().substring($_.VirtualMachine.Id.tostring().lastindexof('/')+1)}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...