-1
안녕하세요, 원하는 출력을 얻을 수있는 사람이 있습니까?Powershell 스크립트는 CPU 사용량, 디스크 공간, 메모리 사용량 및 사용자를 얻습니다.
GC D:\ServerList.txt | % {
$xl = New-Object -ComObject "Excel.Application"
$xl.Visible = $true
$xl.DisplayAlerts = $false #for debugging, no prompts to save, etc.
$ConvertToGB = (1024 * 1024 * 1024)
$wkbk = $xl.Workbooks.Add()
$sheet = $wkbk.WorkSheets.Item(1)
$sheet.Name = "Transposed"
$Comp = $_
If (Test-Connection $Comp -Quiet) {
$Luser = (Get-WmiObject -class win32_process -Filter "Name='Explorer.exe'" -ComputerName $Comp |
% {$_.GetOwner().User} | Sort-Object -Unique) -join ","
$Mem = GWMI -Class win32_operatingsystem -computername $COMP
New-Object PSObject -Property @{
Server = $Comp
"CPU_Usage" = "$((GWMI -ComputerName $COMP win32_processor | Measure-Object -property LoadPercentage -Average).Average)"
"Memory_Usage" = "$("{0:N2}" -f ((($Mem.TotalVisibleMemorySize - $Mem.FreePhysicalMemory)*100)/ $Mem.TotalVisibleMemorySize)) %"
"DiskSpace" = "$("{0:N2}" -f (Get-WmiObject -Class win32_logicaldisk -ComputerName $COMP -Filter "DriveType = 3"| Select-Object "Size","FreeSpace"))"
#$Comp = ($disk.Size/$ConvertToGB),($disk.FreeSpace/$ConvertToGB)
"logged_Users" = $Luser
}
}
Else {
}
$results = Get-Service -Name *bits*| Select Server #,"CPU usage","Memory usage","DiskFreeSpace","logged Users"
$column = 1
$row = 1
foreach ($psRow in $results) {
foreach ($item in $psRow.PSObject.Properties) {
$sheet.Cells.Item($row, $column) = $item.Name
$column++
#$sheet.Cells.Item($row, $column) = $item."CPU","Memory_Usage","DiskSpace","logged_Users"
$row++
$column--
}
}
}
내가 받고 있어요 출력 : 내가 원하는
Memory_Usage : 68.76 %
CPU_Usage : 12
Server : DIN35002781
logged_Users : aanshuma
DiskSpace : @{Size=250051817472; FreeSpace=164924461056}**
그러나 원하는 출력은 다음과 같습니다
DiskSpace,127696629760,46401740800
Server,LIN35006176
Memory_Usage,51.22
logged_Users,Boss
CPU_Usage,14
감사합니다. 올라프 잘 작동하고 원하는 출력이 나옵니다. 정말 고마워요. –