Я готовлю отчет для дисков в Azure и хочу включить имя виртуальной машины, которой назначен диск. В командлете get-azurermdisk я обнаружил свойство с именем managedby, но оно представляет собой целый каталог, а не только имя виртуальной машины (которое включено в самом конце). Я хочу разделить всю строку на '/' и оставить только самую последнюю часть свойства.
Это сценарий, который я подготовил:
$DISK = Get-AzureRmDisk
$Output = $DISK | ForEach-Object {
[PSCustomObject]@{
"Name" = $_.Name
"Resource Group Name" =$_.ResourceGroupName
"Disk Tier" = $_.Sku.Tier
"Disk Type" = $_.Sku.Name
"Managed By" = $_.ManagedBy
"Time Created" = $_.TimeCreated
"Disk Size (in GB)" = $_.DiskSizeGB
"I/O per second" = $_.DiskIOPSReadWrite
"MBps per second" = $_.DiskMBpsReadWrite
"Location" = $_.Location
}
}
Я уже пытался сделать сплит:
"Managed By" = ($_.ManagedBy).Split('/')[8]
И отдельные циклы для заполнения столбца «Управляемый»:
foreach($dsk in $dsks){
$vm = $DISK | Where-Object -Property id -EQ $dsk.Name
$prv = $dsk.ManagedBy.Split('/')[6]
$managed.Add($vm.Name,$prv)
}
foreach($vm in $Output)
{
if($ips.ContainsKey($vm."Name"))
{
$vm."Managed By"=$ips[$vm."Managed By"]
}
}
Ошибка:
Вы не можете вызвать метод для выражения с нулевым значением.
Как я могу добавить какой-то игнорировать, когда значение равно нулю выражение?