Windows Active Directoryドメイン内のすべてのマシンのテキストファイルがあり、WMICを使用して各マシンの現在ログインしているユーザー(存在する場合)とオペレーティングシステムを確認したいと思います。
WMIC /NODE:<machine_name> COMPUTERSYSTEM GET USERNAME
WMIC /NODE:<machine_name> OS GET caption
これをスクリプト化して、テキストファイルからコンピューターのリストを読み取り、それぞれに対して2つのWMICコマンドを実行して、結果を次の形式で出力する方法を知っている人はいますか。
ComputerName, OperatingSystem, CurrentUserName
これには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行目で変数の名前を入力するだけでそれらがコンソールに出力され、特別な変数「$ _」が「この現在のオブジェクト」を意味することです。