「管理者向け」タグアーカイブ

管理者必見!PowerShellでシステム情報・ハードウェア情報を一括取得するスクリプト

システム管理者や情シス担当者にとって、複数台のPCやサーバーのハードウェア情報・OS情報を一括で把握することは欠かせません。
PowerShellを使えば、標準コマンドレットだけでCPU・メモリ・ディスク・ネットワーク・OSバージョンなどをまとめて取得できます。

この記事では、実用的な一括取得スクリプト例と出力方法を詳しく解説します。


🧠 PowerShellで取得できる主なシステム情報

PowerShellでは以下のような情報を簡単に取得できます。

項目コマンドレット内容
OS情報Get-CimInstance Win32_OperatingSystemバージョン、インストール日、ビルド番号
CPU情報Get-CimInstance Win32_ProcessorCPU名、コア数、スレッド数、クロック周波数
メモリ情報Get-CimInstance Win32_PhysicalMemoryメモリ容量、スロット数、メーカー
ディスク情報Get-CimInstance Win32_LogicalDiskドライブレター、空き容量、総容量
ネットワーク情報Get-CimInstance Win32_NetworkAdapterConfigurationIPアドレス、MACアドレス
BIOS情報Get-CimInstance Win32_BIOSBIOSバージョン、リリース日

💻 システム情報を一括取得するスクリプト例

以下のスクリプトをPowerShellに保存して実行すると、主要なハードウェア情報をまとめて取得できます。


🗂 結果をCSVで出力する場合

複数台の端末を管理する場合は、CSVファイルに出力しておくと便利です。


⚙️ リモートPCから取得する方法

Active Directory環境などで、他の端末の情報も取得したい場合は次のようにします。

PowerShellリモーティングを有効化すれば、ドメイン内の端末を横断的に管理できます。
(事前に Enable-PSRemoting -Force を実行しておく必要があります。)


🔒 実行時の注意点

  • 管理者権限でPowerShellを起動する必要があります。

  • 一部の情報(BIOS・ネットワーク)取得にはセキュリティ制限がかかる場合があります。

  • WinRM通信がブロックされている環境では、リモート取得が失敗する場合があります。


✅ まとめ

要点内容
スクリプト1本で主要なシステム情報を取得可能OS・CPU・メモリ・ディスク・ネットワーク・BIOS
CSV出力で資産管理にも活用できる複数端末の一覧作成に最適
リモートPC情報も取得可能Get-CimInstance -ComputerNameを活用

PowerShellを使えば、GUI操作より数倍早く正確に情報を収集できます。
システム管理の自動化・標準化の第一歩として、ぜひこのスクリプトを活用してみてください。

PowerShellでログ収集とバックアップを自動化する実践スクリプト

システム運用や開発現場では、ログ収集やバックアップ作業を「手動で行う」ケースがまだ多く残っています。しかし、PowerShellを使えばこれらを自動化し、毎日の定型作業を一気に効率化できます。

この記事では、**「ログを自動収集してバックアップするPowerShellスクリプト」**を実例付きで紹介します。
スクリプトはWindows環境でそのまま動作し、日次・週次の定期ジョブとしても活用可能です。


⚙️ 実践スクリプト:ログ収集&バックアップ自動化

以下のスクリプトは、

  • ログフォルダをスキャン

  • 日付別フォルダにコピー

  • 古いバックアップを自動削除
    する一連の処理を行います。


📦 処理の流れ

処理内容
① 初期設定ログフォルダ・バックアップフォルダ・保持日数を設定
② 日付フォルダ作成yyyyMMdd形式で新しいバックアップフォルダを作成
③ ログコピー対象フォルダからすべての.logファイルをコピー
④ 古いフォルダ削除30日より古いフォルダを自動削除

🕒 定期実行する方法(Windows タスクスケジューラ)

  1. Windows検索バーで「タスクスケジューラ」と入力して起動

  2. 「基本タスクの作成」→ タスク名を「ログバックアップ」とする

  3. 「毎日」または「毎週」を選択

  4. 「操作」で「プログラムの開始」を選択し、以下を指定

    Program/script: powershell.exe
    Add arguments: -File "D:\Scripts\log_backup.ps1"
  5. 完了後、右クリック → 「プロパティ」 → 「最上位の特権で実行する」を有効にする


💡 応用ポイント

  • ZIP圧縮も追加可能Compress-Archiveを使ってバックアップサイズを削減

  • ログローテーション:ファイルサイズや日付で自動的にローテーションするよう拡張可能

  • メール通知:バックアップ完了後にSend-MailMessageで報告を送信可能

  • CSVやJSON対応:ログ形式が異なる場合もGet-ContentConvertFrom-Jsonなどで加工可能


🚀 まとめ

PowerShellを使えば、GUI操作では面倒なログバックアップを簡潔に自動化できます。
1日1回の定期タスクに登録するだけで、手動の手間を大幅削減。
運用の安定化にもつながります。

ポイント:小さなスクリプトでも「業務時間を削減」できるのがPowerShellの強みです。