Допустим, вы делаете что-то вроде этого:
$partitions = get-wmiobject -query "Associators of {Win32_DiskDrive.DeviceID=""$DevID""} WHERE AssocClass = Win32_DiskDriveToDiskPartition" -computer $ComputerName
Если вы хотите получить заголовок диска для каждого диска ('C:'), вам нужно что-то вроде этого:
function GetDiskCaption {
param ($Partition, $ComputerName)
$DeviceID = $Partition.DeviceID
$colLogicalDisk = get-wmiobject -query "Associators of {Win32_DiskPartition.DeviceID=""$DeviceID""} WHERE AssocClass = Win32_LogicalDiskToPartition" -computer $ComputerName
If ($colLogicalDisk.Caption -ne $null) {
return $colLogicalDisk.Caption
}
Else {
return "UNASSIGNED"
}
}
Я не очень продвинутый пользователь PowerShell, поэтому вопрос таков: как лучше всего PowerShell добавить заголовок диска в массив, чтобы можно было передать его, скажем, в ft или какой-либо другой скрипт?
Теперь я понимаю, что могу просто сделать цикл foreach, чтобы распечатать это, но я хочу разобраться, как расширить массив дополнительными столбцами, чтобы я мог затем использовать операторы конвейера, скажем, для форматирования массива.
Примеры на сайте Microsoft по обработке массивов основаны на одномерных массивах, поэтому добавление массивов, кажется, не является ответом.
Я специально пытаюсь написать скриптвыгрузить список дисков с их отображением iSCSI (если есть) и различными разделами на этом диске.