web-dev-qa-db-ja.com

マシン名、現在のユーザー名、WMICまたはPowerShellを使用したオペレーティングシステムのスクリプトインベントリ

Windows Active Directoryドメイン内のすべてのマシンのテキストファイルがあり、WMICを使用して各マシンの現在ログインしているユーザー(存在する場合)とオペレーティングシステムを確認したいと思います。

WMIC /NODE:<machine_name> COMPUTERSYSTEM GET USERNAME
WMIC /NODE:<machine_name> OS GET caption

これをスクリプト化して、テキストファイルからコンピューターのリストを読み取り、それぞれに対して2つのWMICコマンドを実行して、結果を次の形式で出力する方法を知っている人はいますか。

ComputerName, OperatingSystem, CurrentUserName
3
tbone

これにはwmicを使用することはお勧めしません(バッチファイルでfor lopを使用することはできますが)。これは、PowerShell(質問のタグ付け方法)の方がはるかに簡単だからです。私の頭のてっぺんからこれをします:

clear-Host
$File = "Machines.txt"
get-Content $File | foreach-object { 
$uname = (get-wmiobject win32_computersystem -computername $_).username ;
$os = (get-wmiobject win32_operatingsystem -computername $_).caption ;
"$_ $os $uname"
}

あまり明白ではない唯一のビットは、6行目で変数の名前を入力するだけでそれらがコンソールに出力され、特別な変数「$ _」が「この現在のオブジェクト」を意味することです。

5
Jim B