Мои коды ниже собирают время загрузки, спецификации сервера, диски и т. Д. И хранятся в нескольких переменных. Затем я добавляю их в новый объект, чтобы красиво отобразить результаты. Проблема с отображением результатов на дисках, я не против, чтобы она отображала все диски в одном столбце, но не все диски. Использование Format-table -autosize не решает проблему.
Если я не могу уместить все значения в одном столбце, каков правильный подход для динамического отображения буквы дисков в собственном назначенном поле.
IE; Столбец 1 для значения диска 1, Столбец 2 для значения диска 2 ...
Я удалил несколько кодов ниже, чтобы уменьшить количество строк.
$BootTime = GET-WmiObject win32_Operatingsystem -ComputerName $server -EA
STOP | select @{n='ServerName';e={$_.csname}},@{n='LastBootUpTime';e={$_.ConverttoDateTime($_.lastbootuptime)}} ,@{n='LocalTime';e={$_.ConverttoDateTime($_.LocalDateTime)}}
$Disks = Get-WmiObject win32_logicaldisk -ComputerName $server -Filter Drivetype=3 |`
Select-Object @{n = "Drive Letter";e = {$_.DeviceID}},`
@{n = "Total(GB)";e = {"{0:N1}" -f( $_.Size / 1gb)}},`
@{n = "FreeSpace(GB)";e = {"{0:N1}" -f( $_.Freespace / 1gb ) }},`
@{n = "FreeSpace(%)"; e = {"{0:P0}" -f ($_.freespace/$_.size)}}
New-Object -Type PSObject -Property @{
ServerName = $BootTime.Servername
LastBootTime = $BootTime.LastBootUptime
LocalTime = $BootTime.LocalTime
UpTime = $BootTime.UpTime
OS = $BootTime.OS
Domain = $Domain.Domain
Drive = $Disks."Drive Letter"
"Disks(GB)" = $Disks."Total(GB)"
"FreeSpace(GB)" = $Disks."FreeSpace(GB)"
"FreeSpace(%)" = $Disks."FreeSpace(%)"
}
}
CATCH
{
New-Object -Type PSObject -Property @{
ServerName = $Server
LastBootTime = "Try Pinging"
LocalTime = "WMI Not Responding"
UpTime = "Possibly WMI not functioning or server is hung"#$null
OS = $null
Drive = $null
"Disks(GB)" = $null
"FreeSpace(GB)" = $null
"FreeSpace(%)" = $null
"Memory(GB)" =$null
PhysicalCPU = $null
CPUName = $null
Cores = $null
Manufacturer = $null
Model = $null
}
}
}
$Output| Select ServerName,LastBootTime, LocalTime, UpTime,Domain,OS, PhysicalCPU, CPUName, Cores, "Memory(GB)", Drive, "Disks(GB)", "FreeSpace(GB)", "FreeSpace(%)" , Manufacturer, Model
Current Results:
Drive : {C:, E:, F:, G:...}
Disks(GB) : {149.7, 500.0, 1,945.0, 1,024.0...}
FreeSpace(GB) : {90.0, 358.6, 1,411.1, 909.9...}
FreeSpace(%) : {60%, 72%, 73%, 89%...}
Desired Results:
Drive : {C:, E:, F:, G:,H:}
Disks(GB) : {149.7, 500.0, 1,945.0, 1,024.0,100}
OR
Drive1 : C:
Drive2: D:
Disk(GB) 1 :149.7
Disk(GB) 2 : 500.0