2016-08-13 11 views
0

私は、BIOSから情報を引き出し、Windowsにマシンワイド環境変数として格納できる1行のコマンドを探しています。このような何か:WIndows Env変数を設定するための1行のコマンド

for /f "skip=1" %i IN ('wmic bios get serialnumber') DO @if not defined _A @echo %i&set _A=1) &set BIOSTag=%i 

私はかつて、この作品を作りましたが、それは一時的な変数ではなく、マシン全体と確かに永続的ではないとして、それを格納します。究極の目標は、私のAnswer File(またはUnattend File)がSpecialize Pass中にこのコマンドを使用してBIOSからSerialNumberまたはIdentificationCode(手動で指定できるAssetTagだと思います)を取得し、永続的な環境として保存することですコンピュータ名を "%BIOSTag%-string"として指定する "amd64_Microsoft-Windows-Shell-Setup_neutral"コンポーネントが続きます。

これは、理論上、私が現在使用できるようになります:%Date%は、システムメニューのPCの「説明」フィールドを変更して、マシンをイメージする日付を反映します。

これまでのところ、私のコマンドはかなり汚いですが、一時変数として機能します。私が末尾にSetX *var* %i /Mを置き換えて永久的な環境変数にしようとすると、コマンドは実行されますが、何も変わっていないように見え、変数をエコーすることができません。

答えて

0

私の謝罪!数時間のテストの後、そのコマンドラインから_A一時変数をクリアするのを忘れてしまったようです。以下のワンライナーは、BIOSから私のServiceTagを引っ張ると%BIOSTAG%の永久的なマシン環境変数として保存します:

for /f "skip=1" %i IN ('wmic bios get serialnumber') DO @if not defined _A @echo %i&set _A=1) &SETX BIOSTAG %i /M 

彼女はきれいではありませんが、彼女はやります。 :-) Answer Fileでテストし、%BIOSTAG% - 接尾辞を使って適切な名前のマ​​シンを生成できるかどうかを確認してください。そうであれば、BIOSのカスタマイズ可能なAssetTagフィールドを使用して、自動的に好きなマシンに名前を付けることができます。とにかく新しいマシンでBIOSを手動で設定する必要がありますので、それは難しくありません。唯一の罠は、IdentificationCodeのWMICクエリがDell BIOSからAssetTagフィールドデータを取得するかどうかです。

この投稿が今後誰かを助けることができたら幸いです!

関連する問題