PR

WinRMを利用した遠隔からのWindows詳細バージョン情報取得

スポンサーリンク

はじめに

Windowsサーバやクライアントの詳細なバージョン情報を遠隔から取得する方法を解説します。WinRMとPowerShellを活用して、システム情報を安全に収集する手順を説明します。

事前準備

サーバ側の設定

  1. ネットワークプロファイルの確認と変更
# ネットワークプロファイルの確認
Get-NetConnectionProfile
# プロファイルを変更(必要に応じて) 
Set-NetConnectionProfile -Name "ネットワーク名" -NetworkCategory Private
  1. PowerShellリモート処理の有効化
# PowerShellリモート処理を有効化
Enable-PSRemoting -Force
  1. リモート管理ユーザーの追加
# ドメインユーザーの場合
Add-LocalGroupMember -Group "Remote Management Users" -Member "DOMAIN\ユーザー名"

# ローカルユーザーの場合
Add-LocalGroupMember -Group "Remote Management Users" -Member "ローカルユーザー名"

クライアント側の設定

  1. WinRMサービスの起動
# WinRMサービスの起動
Start-Service WinRM

# WinRM構成の確認
winrm quickconfig
  1. 信頼されたホストの設定
# リモートサーバをTrustedHostsに追加
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "サーバのIPアドレス" -Force

詳細バージョン情報の取得スクリプト

クライアントで実行

# クレデンシャルの作成
$credential = Get-Credential

# リモートコマンド実行
Invoke-Command -ComputerName "サーバのIPアドレス" -Credential $credential -ScriptBlock {
    # Windowsバージョン情報の取得
    $osInfo = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"

    # インストール済みの更新プログラム情報
    $updateInfo = Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5

    # 結果をカスタムオブジェクトとして返す
    [PSCustomObject]@{
        # OSバージョン情報
        ProductName = $osInfo.ProductName
        CurrentVersion = $osInfo.CurrentVersion
        ReleaseId = $osInfo.ReleaseId
        CurrentBuild = $osInfo.CurrentBuild
        UBR = $osInfo.UBR

        # 追加のバージョン詳細
        BuildLabEx = $osInfo.BuildLabEx
        InstallationType = $osInfo.InstallationType

        # 最近インストールされた更新プログラム
        RecentUpdates = $updateInfo | ForEach-Object {
            [PSCustomObject]@{
                HotFixID = $_.HotFixID
                Description = $_.Description
                InstalledOn = $_.InstalledOn
            }
        }

        # システム全体の更新状況
        LastInstalledUpdate = (Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 1).InstalledOn
        TotalInstalledUpdates = (Get-HotFix).Count
    }
}

出力される情報の詳細

取得できる主な情報:

  • 製品名 (ProductName)
  • 現在のバージョン (CurrentVersion)
  • リリースID (ReleaseId)
  • 現在のビルド番号 (CurrentBuild)
  • UBR (Update Build Revision)
  • BuildLabEx (拡張ビルド情報)
  • インストールタイプ
  • 最近インストールされた更新プログラム (5件)
  • 最後に更新された日付
  • 総インストール済み更新プログラム数

セキュリティと注意点

  • 最小権限の原則に従う
  • 安全な認証方法を使用
  • ネットワークセキュリティに注意
  • 定期的にシステムを最新の状態に保つ

トラブルシューティング

一般的な接続エラー

  1. 「FullyQualifiedErrorId : CreateRemoteRunspaceFailed」
    • 原因: ユーザーが「Remote Management Users」グループに追加されていない
    • 解決策: サーバ側でユーザーをグループに追加する
  2. 接続エラー
    • ファイアウォールの確認
    • ネットワーク設定の見直し
    • WinRMサービスの状態確認

おわりに

WinRMとPowerShellを使用することで、遠隔から詳細なWindows系システム情報を安全かつ効率的に収集できます。環境に応じて適宜スクリプトをカスタマイズしてください。

注意: 実際の環境に合わせて適切に調整し、セキュリティに十分注意してください。

コメント

タイトルとURLをコピーしました