get-wmiobject sql join в powershell - пытается найти физическую память в сравнении с виртуальной памятью удаленных систем - PullRequest
0 голосов
/ 12 мая 2010

get-wmiobject -query «Выбрать TotalPhysicalMemory из Win32_LogicalMemoryConfiguration» -компьютер COMPUTERNAME >> output.csv

get-wmiobject -query «Выбрать TotalPageFileSpace из Win32_LogicalMemoryConfiguration» -компьютер COMPUTERNAME >> output.csv

Я пытаюсь завершить этот скрипт с выводом в следующем виде:

Computer        Physical Memory      Virtual Memory
server1         4096mb               8000mb
server2         2048mb               4000mb

Ответы [ 2 ]

1 голос
/ 12 мая 2010

Что-то мешает вам сделать что-то подобное?

gwmi -query "Select TotalPhysicalMemory,TotalPageFileSpace from Win32_LogicalMemoryConfiguration" -computer $COMPUTERNAME |
  select @{Name='Computer', Expression=$COMPUTERNAME},
         @{Name='Physical Memory', Expression=$_.TotalPhysicalMemory},
         @{Name='Virtual Memory', Expression=$_.TotalPageFileSize} |
  Export-Csv

(Не проверено, поскольку Get-WmiOject не знает здесь класс Win32_LogicalMemoryConfiguration. Но может работать.)

0 голосов
/ 12 мая 2010

Win32_LogicalMemoryConfiguration представляется устаревшей. Я думаю, что эта функция будет получать информацию, которую вы хотите:

function Get-MemoryInfo
{
    Process
    {
        Get-WmiObject Win32_OperatingSystem -ComputerName $_ |
        % {
            New-Object PSObject |
            Add-Member NoteProperty Computer $_.CSName -PassThru |
            Add-Member NoteProperty VirtualMemoryMB ([int]($_.TotalVirtualMemorySize / 1KB)) -PassThru
        } |
        % {
            $cs = Get-WmiObject Win32_ComputerSystem -ComputerName $_.Computer
            $_ | Add-Member NoteProperty PhysicalMemoryMB ([int]($cs.TotalPhysicalMemory / 1MB)) -PassThru
        }
    }
}

Вы можете передать список компьютеров в Get-MemoryInfo. Затем перенаправьте вывод в Export-Csv, если вы хотите файл CSV.

...