Home > Windows にまつわる e.t.c.

サーバー情報をオブジェクトにして返す


沢山稼働しているサーバー情報を収集するには、サーバー情報をオブジェクトとして返す PowerShell 関数があると便利です。

戻り値がオブジェクトだと、Invoke-Command で各サーバーの情報集収集して、CSV に出力するのも簡単に出来ますし、単発問い合わせしても fl * とか ft * -AutoSize とかで見やすくすることが出来ます。

function QueryServerInfo(){
    $ReturnData = New-Object PSObject | Select-Object HostName,Manufacturer,Model,SN,CPUName,PhysicalCores

    $Win32_BIOS = Get-WmiObject Win32_BIOS
    $Win32_Processor = Get-WmiObject Win32_Processor

    # ホスト名
    $ReturnData.HostName = hostname

    # メーカー名
    $ReturnData.Manufacturer = $Win32_BIOS.Manufacturer

    # モデル名
    $ReturnData.Model = (Get-WmiObject Win32_ComputerSystem).Model

    # シリアル番号
    $ReturnData.SN = $Win32_BIOS.SerialNumber

    # CPU 名
    $ReturnData.CPUName = @($Win32_Processor.Name)[0]

    # 物理コア数
    $PhysicalCores = 0
    $Win32_Processor.NumberOfCores | %{ $PhysicalCores += $_ }
    $ReturnData.PhysicalCores = $PhysicalCores

    return $ReturnData
}

 

参考

リモート コンピューターのバッチ操作(Invoke-Command)
http://www.vwnet.jp/Windows/PowerShell/InvokeCommand.htm

カスタムオブジェクトの作成とCSV出力
http://www.vwnet.jp/Windows/PowerShell/CreateCustomObject.htm

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.