LinuxとかUNIXのサーバ扱っていて、その後Windowsのサーバを扱った人はみんな思っていると思うけど、Windowsはシステム情報(サービス情報とか、ユーザ情報とか)がコマンドでサクッととれないんだろう。
結果システム構築時のエビデンスとか画像で取得する羽目になり、取る方も、見る方も地獄という。設計書に起こすのも大変だし。
なぜマイクロソフトはGUIと同じ情報を表示するコマンドを提供しないのか・・・
コマンドプロンプトとかPowerShellとかとか、情報を取得するコマンドを紹介します。
コマンドプロンプト
まずはコマンドプロンプトです。
「Windowsキー + R」 で「cmd」と打つと起動する黒い画面です。
どんなコマンドがあるかは下のサイトが参考になりそう。
https://www.pg-fl.jp/program/dos/doscmd/
システム情報を取得するようなコマンドはこんな感じ。
NO | 取得内容 | コマンド |
1 | OS情報 | systeminfo |
2 | サービス情報 | sc query |
3 | ユーザ情報 | net user |
昔からあるWindowsのCUI機能。ただまあ、使いにくい。
Linuxのコマンドって洗練されているんだなと切に思う。
PowerShell
Windows7、Windows Server 2008 R2あたりから追加されたCUI機能。
コマンドプロンプトよりはるかに使いやすいが、それでも独特のクセがあって使いにくい。
Windows キー + R で「powershell」と打つと起動する青い画面です。
使えるコマンドの一覧は下記コマンドで取得できる。
Get-Command
システム情報を取得するようなコマンドはこんな感じ。
NO | 取得内容 | コマンド |
1 | OS情報 | なさそう |
2 | サービス情報 | Get-Service |
3 | ユーザ情報 | なさそう |
WMIオブジェクトを除くと意外とシステム情報取得するようなコマンドはないんだな。
探し方が悪いだけかもしれないが。
WMIオブジェクト
WMIオブジェクトはMSによると下記とのこと。
Windows Management Instrumentation (WMI) は、Windows システム管理のための中核となるテクノロジであり、幅広い種類の情報を一貫した方法で公開します。
コマンド一覧は下記のコマンドで取得できる。
Get-CimClass -Namespace root/CIMV2 | Where-Object CimClassName -like Win32* | Select-Object CimClassName
システム情報を取得するコマンドは下記の通り。
NO | 取得内容 | コマンド |
1 | OS情報 | Get-WmiObject Win32_OperatingSystem |
2 | サービス情報 | Get-WmiObject win32_Service |
3 | ユーザ情報 | Get-WmiObject win32_UserAccount |
なんだかんだこれが一番システム情報の取得にやくに立ちそう。
ただ、これでもダメでレジストリ参照なんかも使う必要が発生する。
レジストリを参照しても項目によってはできなかった記憶が・・・
実際に動かしてみるとわかるけど、似たようなコマンドでも同じ情報はでないし、GUIで出てくる情報と同じ構成となるものもない。
(本当になんでなんだろう・・・。中の人は不便ではないのだろうか)
組み合わせて、それなりに近いものを作るしかないのかなぁ・・・
GUIにはあるのにCUIでとれない情報があると結局、画像で取れっていう人はいるだろうし。
切ないなぁ。
今後、WindowsのGUI画面の内容をコマンドでとれるかの検証をしていきたいと思います。
広告
できるWindows 10 パーフェクトブック 困った!&便利ワザ大全 2021年 改訂6版 価格:1,628円 |
コメント