管理者必見!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操作より数倍早く正確に情報を収集できます。
システム管理の自動化・標準化の第一歩として、ぜひこのスクリプトを活用してみてください。

サブクエリを使ったUPDATE文:別テーブルの値で更新する方法

■ 概要

SQLでデータを更新する際、別のテーブルの値を参照してUPDATEしたい場面は多くあります。
たとえば、マスタテーブルの最新情報でトランザクションテーブルを更新するケースなどです。

この記事では、Oracleデータベースを例に、サブクエリを使ったUPDATE文の書き方をわかりやすく解説します。


■ 基本構文

Oracleでサブクエリを用いたUPDATEを行う場合、基本的な構文は次の通りです。

ここで重要なのは、
SET句の中でサブクエリを使って値を取得し、
WHERE EXISTSで更新対象を限定する点です。


■ 実際の例:商品価格マスタをもとに在庫テーブルを更新

【例題】

  • PRODUCT_MASTER(商品マスタ)テーブル:

    • PRODUCT_ID

    • PRICE(最新の価格)

  • STOCK_INFO(在庫情報)テーブル:

    • PRODUCT_ID

    • PRICE(販売価格を更新したい)

【目的】

マスタの最新価格を在庫情報に反映する。

【SQL例】


■ ポイント解説

  1. サブクエリは1行1列を返す必要がある

    • サブクエリが複数行を返すと ORA-01427: single-row subquery returns more than one row エラーになります。

    • PRODUCT_IDなどの条件で一意に絞り込みましょう。

  2. WHERE EXISTSで更新対象を限定

    • EXISTSを使わない場合、サブクエリが該当しないレコードは NULL で更新される可能性があります。

    • 余計な更新を防ぐためにも、WHERE EXISTSを併用するのが安全です。

  3. パフォーマンス最適化のためにインデックスを確認

    • 結合条件に使う列(例:PRODUCT_ID)にはインデックスを付与すると高速化できます。


■ 別の書き方:MERGE文を使う方法

Oracleでは、サブクエリUPDATEの代わりにMERGE文を使っても同じことができます。

MERGE文は「更新または挿入」を同時に扱える構文で、
大量データ更新時にはこちらの方が効率的なこともあります。


■ まとめ

方法特徴
サブクエリを使ったUPDATEシンプルで分かりやすい。少量データ更新に最適。
MERGE文更新+挿入を同時に扱える。大量データ更新に向く。

■ この記事のポイント

  • Oracleでサブクエリを使ったUPDATEは「単一行サブクエリ+EXISTS」で安全に実装する

  • 一意性を保証できない場合は MERGE の利用を検討

  • インデックス設計で性能を最適化

WinMergeのテーマ変更・ダークモード設定方法

WinMergeはファイルやフォルダの差分比較ツールとして非常に優秀ですが、デフォルトテーマのままだと長時間作業で目が疲れることがあります。

2.16.40以降の新バージョンでは、ついに「ライト/ダークテーマ切り替え」が標準機能として搭載されました。
これにより、設定ファイルをいじらなくてもワンクリックでダークモードにできます。


1. テーマ設定画面の開き方

  1. WinMergeを起動

  2. メニューから
     「編集(E)」 → 「設定(O)」 を選択

  3. 左ペインから 「色 > 配色」 をクリック

すると、次のような画面が表示されます👇


2. 色モードの選択

画面上部にある「色モード」で、WinMergeの全体テーマを切り替えられます。

モード内容
ライト明るい背景の標準テーマ(従来のデフォルト)
ダーク暗い背景のダークテーマ(夜間作業におすすめ)
システム設定に合わせるWindowsのテーマ設定に連動(自動切替)

3. テーマ配色の選択

その下の「ライトモード用配色」と「ダークモード用配色」では、テーマごとに色のプリセットを選べます。

💡おすすめ設定:

  • ライトモード配色Default(標準)

  • ダークモード配色VS Dark(Visual Studio風の見やすい暗色テーマ)

必要に応じて、ユーザ独自の配色を保存することも可能です。


4. ユーザ定義配色を保存する

自分で微調整した配色を保存したい場合は、
画面下部の「現在の配色を保存(S)…」ボタンをクリックします。

保存したカスタムテーマは「ユーザ定義配色」に登録され、再利用可能になります。


5. 設定のエクスポート・インポート

画面左下のボタンから、テーマ設定を他のPCへ共有することもできます。

  • インポート:保存済みの設定ファイルを読み込む

  • エクスポート:現在の設定をファイルに書き出す

社内や複数PCで統一テーマを使いたいときに便利です。


6. 変更を適用

設定が完了したら「OK」を押すだけで即反映されます。
テーマ変更後に画面が反映されない場合は、一度WinMergeを再起動してください。


🎨 まとめ

項目操作内容
設定場所編集 → オプション → 色 → 配色
色モードライト/ダーク/システム連動
おすすめ配色VS Dark(暗色)
カスタム保存現在の配色を保存ボタンで可能
共有方法エクスポート/インポート対応