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

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

私のすべて パソコン 正しいホスト名を持つ静的 DHCP 予約がある (にも登録されている DNS) そのため、この情報を取得して名前を変更する方法が必要だと考えました. いろいろいじった後、これを行うバッチ スクリプトを作成しました。 (管理者として実行する場合).

次のコードを .cmd ファイルに貼り付けて、無人プロセスの一部として実行します。 (以下に私のものを説明します)

@エコーオフ
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> ImageUnattend.xml のセクション.

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

管理者として実行するには、小さなユーティリティを使用します (elevate.exe と呼ばれる) それはこれを行う (セットアップ中に実行されるコマンドは、プロンプトをポップアップせずに昇格できます!). から入手できます オリジナルのソース

私のセットアップのパズルの最後のピースは、exe ファイルと小さな poweershell スクリプトを含むように Windows インストール イメージを変更することです。 – これらにより、ネットワークから他のすべてのインストーラーをコピーできます。. exeファイルは ‘ストリーム‘ これは sysinternals です (現在はマイクロソフトの一部) 削除するユーティリティ “このファイルはインターネットから取得したものです。実行してもよろしいですか” 警告.

また、次のスクリプトを .ps1 ファイルとして持っています。

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

私の最初の 4 LogonCommands は次のようになります。…

<同期コマンド 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</コマンドライン>
</同期コマンド>

あなた自身のいくつかの考えを持って? コメントに下記をお楽しみください! あなたが購読したい場合は、右上のメニューで購読リンクをご利用ください. また、下記の社会的なリンクを使用してお友達とこれを共有することができます. 乾杯.

返信を残す