web-dev-qa-db-ja.com

WindowsXPおよびWin7のコンピューターの説明を入力するスクリプト

ローカルマシンの説明(すでに存在する場合は上書き)にコンピューターのモデルを入力したいと思います。このタスクを実行できるスクリプトはありますか?いくつかのコードがあるサイトを見つけましたが、解決策がありません。私はvbスクリプトの知識がほとんどありません。しかし、とにかくこれを行う方法があれば、それは素晴らしいことです。

ありがとう

2
JohnyV

Active Directoryではなく、ローカルマシン自体でコンピューターの説明を変更しようとしていると仮定すると、Powershellで次のことができます(注:XPクライアント)にPowershellが必要です)。

$computer=get-wmiobject win32_computersystem
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" -name "srvcomment" -value $computer.model

コンピューターの説明を更新するためのより洗練された方法を探しましたが、実際にはどれも機能しませんでした。レジストリエントリを更新するのが最も簡単な方法のようです。

PowerShellが機能しないと仮定すると、 AutoIT というスクリプト言語を調べることをお勧めします。 AutoItはすべてを自己完結型の実行可能ファイルにコンパイルし、クライアントの依存関係を排除することができます。

1
CurtM

CurtMによる優れた回答の肩に立って、私は非PowerShellアプローチを採用しています。ログオンスクリプトからこのスクリプトを呼び出します。

setmodel.cmd

@for /f " skip=1 tokens=1 delims=^|" %%a in ('wmic.exe path win32_computersystem get model' ) do set model=%%a 

@reg add HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t reg_sz /d "%model%" /f

小さな変更を加えるだけで、ドメイン内のマシンのリストを処理できます。

setmodel_r.cmd

@for /f " skip=1 tokens=1 delims=^|" %%i in ('wmic.exe /node:%1 path win32_computersystem get model' ) do set model=%%i

@reg add \\%1\HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t reg_sz /d "%model%" /f

Dsquery.exeを使用して、ドメイン内のマシンのリストを取得します。出力をsetmodel_r.cmdにパイプすると、モデルが説明として設定されているはずです。コマンドプロンプトから、次のコマンドを発行します。

for /f %b in ('dsquery * domainroot -filter "(objectCategory=computer)" -attr name') do call setmodel_r.cmd %b

ただし、ドメイン全体に対して実行する前に、setmodel_r.cmdをテストすることをお勧めします-

for /f %b in (testcomputers.txt) do call setmodel_r.cmd %b

ここで、testcomputers.txtには複数のマシン名が含まれており、それぞれが新しい行にあります。

あなたは彼らが何をするかに慣れるまでこれらで遊ぶべきです。

ロブ

1
RobW