Проверка выравнивания системных разделов с помощью сценариев

Я пытаюсь убедиться, что разделы файловой системы на каждом из серверов, на которых я работаю, выровнены правильно. У меня есть следующий сценарий, который при попытке запуска будет утверждать, что все виртуальные серверы выровнены или не выровнены в зависимости от того, какой оператор if я использую (один закомментирован):

$myArr = @()
$vms = get-vm | where {$_.PowerState -eq "PoweredOn" -and $_.Guest.OSFullName -match "Microsoft Windows*" } | sort name
foreach($vm in $vms){
    $wmi = get-wmiobject -class "win32_DiskPartition" -namespace "root\CIMV2" -ComputerName $vm
    foreach ($partition in $wmi){
        $Details = "" | Select-Object VMName, Partition, Status
        #if (($partition.startingoffset % 65536) -isnot [decimal]){
        if ($partition.startingoffSet -eq "65536"){
            $Details.VMName = $partition.SystemName
            $Details.Partition = $partition.Name
            $Details.Status = "Partition aligned"
        }
        else{
            $Details.VMName = $partition.SystemName
            $Details.Partition = $partition.Name
            $Details.Status = "Partition not aligned"
        }
    $myArr += $Details
    }
}
$myArr | Export-CSV -NoTypeInformation "C:\users\a411882\Documents\Scripts\PartitionAlignment.csv"

Кто-нибудь знает, что не так с моим кодом? Я все еще изучаю разделы, поэтому я не уверен, как мне нужно проверять начальный смещенный номер, чтобы проверить выравнивание.

1 ответ

Решение

Вы передаете объект виртуальной машины вместо строки get-wmiObject -ComputerName, Когда я это делаю, get-wmiObject выдает ошибку RPC. Вы можете попробовать -computerName $vm.guest.Hostname вместо -computerName $vm,

В закомментированной строке ваше использование % должен вернуть остаток, который всегда будет целым числом или нулем. Может быть, вместо этого вы ожидаете частное и хотите оценить, является ли оно целым числом?

PS C:\temp> (1 / 2) -isnot [int]
True
PS C:\temp> (2 / 1) -isnot [int]
False

Последние ОС Windows автоматически выравнивают свои разделы, так что вот так. Вот хороший пост о выравнивании, как правило, в VMware, включая ссылку на более подробное обсуждение гостевых разделов.

Другие вопросы по тегам