PowerShellでリモートマシンのサービスをリストする

多くのコンピューターを管理をすることはIT関係の仕事をしているとよくあることです。特に最近は仮想マシンの技術が発達して、より多くのコンピューターを管理する機会が多くなりました。それぞれのコンピューターにリモートログインをしてあるWindowsサービスがインストールされているかどうかをチェックするのは、数台のコンピューターだったら大したことはないのですが、10台、20台になるとそれだけで結構時間のかかるものです。

そこで、PowerShellのスクリプトでリモートマシンのWindowsサービスをリストすることができます。以下の例ではすべてのリモートマシンが同じ資格情報(Administrator)を使用できるものとします。

$credential = Get-Credential -Credential Administrator

$computers = “server1″,”server2″,”server3″,”server4″,”server5″,”server6″

foreach($computer in $computers)
{
    ” $computer ================”
    $allServices = Get-WMIObject Win32_Service -computer $computer -credential $credential
    $allServices | where{$_.DisplayName -match “integration”} | Format-List -Property DisplayName
}

※この記事は「徒然雑記」に掲載したものです。

[WMI] ネットワーク情報を取得する

[ad code=2 align=left]
WMIのWin32_NetworkAdapterConfigurationクラスを使用すると、ネットワーク情報を取得することができます。

Win32_NetworkAdapterConfigurationクラスについては
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394217(v=vs.85).aspx
が参考になるでしょう。

代表的なプロパティは下記の通りです。

Win32_OperatingSystemクラスの代表的なプロパティ
プロパティ 説明
Description 説明(ネットワークアダプタ名)
DefaultIPGateway デフォルトゲートウェイ
DHCPEnabled DHCPが有効かどうか(Trueで有効)
DHCPServer DHCPサーバーのIPアドレス
DNSHostName ホスト名
IPAddress IPアドレス
IPSubnet サブネットマスク
MACAddress MACアドレス
WINSPrimaryServer プライマリWINSサーバーのIPアドレス

下記コマンドを実行すると、ネットワーク情報が表示されます。

Get-WmiObject Win32_NetworkAdapterConfiguration

下記は、DHCPが有効である情報のみを取得する例です。

[WMI] OS情報を取得する

[ad code=2 align=left]
WMIのWin32_OperatingSystemクラスを使用すると、OS情報を取得することができます。

Win32_OperatingSystemクラスについては
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394239(v=vs.85).aspx
が参考になるでしょう。

代表的なプロパティは下記の通りです。

Win32_OperatingSystemクラスの代表的なプロパティ
プロパティ 説明
BootDevice オペレーティングシステムから起動するディスクドライブ名
BuildNumber オペレーティングシステムのビルド番号
Caption OS名称
CSDVersion サービスパックを示す文字列
Descriotion オペレーティングシステムの説明
ProductType 1:ワークステーション、2:ドメインコントローラー, 3:サーバー
SystemDirectory システムディレクトリ
WindowsDirectory Windowsディレクトリ

下記コマンドを実行するとOS情報が表示されます。

Get-WmiObject Win32_OperatingSystem

下記は、OS名、バージョン、Windowsディレクトリを取得して表示する例です。

Get-WmiObject Win32_OperatingSystem | Format-List Caption, Version, WindowsDirectory

[WMI] プリンター情報を取得する

[ad code=2 align=left]
WMIのWin32_Printerクラスを使用すると、プリンター情報を取得することができます。

Win32_Printerクラスについては
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v=vs.85).aspx
が参考になるでしょう。

代表的なプロパティは下記の通りです。

代表的なWin32_Printerクラスのプロパティ
プロパティ 説明
Name デバイス名(プリンター名)
PrinterStatus プリンターの状態。3:アイドル中,4:印刷中を表す。
Capabilities プリンターの機能を表す。2:カラー,4:コピー,6:ステープル, 8:パンチ など
PaperTypesAvailable プリンターで現在利用可能な用紙の種類

下記はプリンター情報を取得する例です。

Get-WmiObject Win32_Printer

また、下記はデバイス名、プリンターの状態、プリンターの機能を取得する例です。

Get-WmiObject Win32_Printer | Format-List Name, PrinterStatus, Capabilities

[WMI] 物理ディスク情報を取得する

[ad code=2 align=left]
WMIのWin32_DiskDriveクラスを使用すると、物理ディスクの情報を取得することができます。

Win32_DiskDriveクラスについては
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394132(v=vs.85).aspx
が参考になるでしょう。

代表的なプロパティは下記の通りです。

 

プロパティ 説明
DeviceID ディスクドライブを一意に識別する文字列
Caption デバイスを短いテキスト (1 行の文字列) で表した説明
DefaultBlockSize デバイスの既定ブロックサイズ
Description デバイスの説明
MaxBlockSize アクセスされるメディアの最大ブロックサイズ
MaxMediaSize このデバイスでサポートされているメディアの最大サイズ (KB)
MediaType このデバイスで使用されるか、またはアクセスされるメディアの種類
MinBlockSize アクセスされるメディアの最小ブロックサイズ
Partitions 物理ディスク ドライブ上のパーティション数
Size ディスクサイズ
TotalCylinders 総シリンダー数
TotalHeads 総ヘッド数
TotalSectors 総セクターする
TotalTracks 総トラック数

下記コマンドを実行すると物理ディスクの情報が表示されます。

Get-WmiObject Win32_DiskDrive

下記は、説明、サイズ、総シリンダー数、総ヘッド数、総セクター数、総トラック数を表示する例です。

Get-WmiObject Win32_DiskDrive | Format-List Caption, Size, TotalCylinders, TotalHeads, TotalSectors, TotalTracks