0予約された DHCP 名に基づいて PC の名前を変更するバッチ スクリプト

スタンドアロン サーバーで WDS を使用して、新しいサーバーをセットアップします。 パソコン そして再イメージ化する パソコン 修理できないほど壊れてしまったとき. かなりの数の パソコン 私の家では、ハードウェアを交換またはアップグレードするときに、それらを時々再イメージ化すると便利です。. 現在、このプロセスのほとんどは unattend.xml ファイルによって自動化されていますが、無人プロセスがサポートしていないように見える 1 つのステップは、名前の変更です。 パソコン 元の名前に戻る.

私のすべて パソコン have stat­ic DHCP reser­va­tions with their cor­rect host­name (にも登録されている DNS) so I figured there must be a way to pull this inform­a­tion and use it to rename them. After much fid­dling about I have pro­duced a batch script that will do this (管理者として実行する場合).

Simple paste the fol­low­ing code into a .cmd file and run it as part of your unat­ten­ded pro­cess (以下に私のものを説明します)

@エコーオフ
set ip_address_string ="IPv4アドレス"
FOR /F "usebackq" %%私は (「ホスト名」) @エコーオフ
set ip_address_string = "usebackq トークン=2 delims=:" %%で (`ipconfig ^| findstr /c:%ip_address_string%`) 行う (
    /f の場合 "usebackq トークン=2 delims=:" %%ジン (`nslookup %%f ^| findstr /c:名前`) 行う (
        /F用 "tokens=1 delims=。" %%で ("%%G") 行う (
            /F用 "トークン=1 delims= " %%置き場 ("%%a") 行う (
                WMIC ComputerSystem where Name="%myvar%" 名前の変更を呼び出します="%%B"
                後藤 :eof
            )
        )
    )
)

からスクリプトを呼び出します <FirstLogonCommands> sec­tion of ImageUnattend.xml.

<同期コマンド wcm:アクション="加える">
  <注文>5</注文>
  <説明>システムの名前変更</説明>
  <コマンドライン>C言語:\エクストラelevate -c c:\extrasrename-pc-from-dns.cmd</コマンドライン>
</同期コマンド>

To run it as admin I use a little util­ity (elevate.exe と呼ばれる) それはこれを行う (com­mands run dur­ing setup can elev­ate without pop­ping up a prompt!). から入手できます オリジナルのソース

The final piece of the puzzle for my setup is that I modi­fy the win­dows install image to include an exe file and a little poweer­shell script — these allow the copy­ing of all the oth­er installers from the net­work. The exe file is ‘ストリーム’ which is a sys­in­tern­als (現在はマイクロソフトの一部) util­ity to remove the “this file came from the inter­net are you sure you want to run it” warning.

I also have the fol­low­ing script as a .ps1 file

copy-item -Path \wds-serverRemInstCustom*.* -Destination C:\エクストラ

私の最初の 4 Logon­Com­mands are then as follows…

<同期コマンド wcm:アクション="加える">
  <注文>1</注文>
  <説明>セットアップ中はスタンバイなし</説明>
  <コマンドライン>powercfg -change スタンバイ-タイムアウト-ac 0</コマンドライン>
</同期コマンド>
<同期コマンド wcm:アクション="加える">
  <注文>2</注文>
  <説明>ネットワーク経由でサーバーにアクセスするための資格情報を追加します</説明>
  <コマンドライン>cmdkey /add:wds サーバー/ユーザー:wds-serveradministrator /pass:パスワード123</コマンドライン>
</同期コマンド>
<同期コマンド wcm:アクション="加える">
  <注文>3</注文>
  <説明>スクリプトとアプリをネットワークからエクストラ フォルダーにコピーする</説明>
  <コマンドライン>C:\WindowsSystem32WindowsPowerShellv1.0powershell.exe -windowstyle 隠し -ExecutionPolicy ByPass -ファイル C:\おまけcopyapps.ps1</コマンドライン>
</同期コマンド>
<同期コマンド wcm:アクション="加える">
  <注文>4</注文>
  <説明>コピーしたアプリからインターネット警告を削除</説明>
  <コマンドライン>C:\エクストラ  Streams64.exe -d -d -nobanner C:\エクストラ*.* /accepteula</コマンドライン>
</同期コマンド>

返信を残す