I use WDS on a standalone server to set up new پی سی and to reimage پی سی when they have ended up mangled beyond repair. With a good number of پی سی in my own house it is useful to reimage them ocasionally when swapping or upgrading hardware. Most of this process is now automated by an unattend.xml file but one step the unattended process doesn’t seem to support is renaming پی سی back to their original name.
میرے سب پی سی have static DHCP reservations with their correct hostname (جس میں بھی درج ہے DNS) so I figured there must be a way to pull this information and use it to rename them. After much fiddling about I have produced a batch script that will do this (جب بطور ایڈمن چلائیں).
Simple paste the following code into a .cmd file and run it as part of your unattended process (میں ذیل میں اپنی وضاحت کرتا ہوں)
@echo off set ip_address_string="IPv4 ایڈریس" فار / ایف "استعمال بیک" %%میں میں (`میزبان نام`) DO SET MYVAR=%%i for /f "usebackq ٹوکن = 2 حدود =:" %%f in (ip ipconfig ^| findstr / c:%ip_address_string٪ `) کیا ( کے لئے / ایف "usebackq ٹوکن = 2 حدود =:" %%جی اندر (s n نگاہ ٪٪ f ^| findstr / c:نام`) کیا ( کے لئے / ایف "ٹوکن = 1 حد بندی =۔" %%ایک میں ("%%g") کیا ( کے لئے / ایف "ٹوکن = 1 حد بندی = " %%بی میں ("%%a") کیا ( WMIC کمپیوٹر سسٹم جہاں نام ="%myvar٪" نام بدلیں نام ="%%B" کے پاس جاؤ :eof ) ) ) )
میں اپنی اسکرپٹ کو خدا کی طرف سے کال کرتا ہوں <FirstLogonCommands>
section of ImageUnattend.xml.
<ہم وقت ساز کمانڈ ڈبلیو سی ایم:کارروائی ="شامل"> <ترتیب>5</ترتیب> <تفصیل>نظام کا نام تبدیل کریں</تفصیل> <کمانڈ لائن>ج:\اضافی. بلند - سی سی:\ایکسٹرا کا نام تبدیل کریں-پی سی-سے-dns.cmd</کمانڈ لائن> </ہم وقت ساز کامانڈ>
To run it as admin I use a little utility (جسے ایلویٹ ڈاٹ ایکس کہتے ہیں) یہ کرتا ہے (commands run during setup can elevate without popping up a prompt!). آپ اسے اسی سے حاصل کرسکتے ہیں original source
The final piece of the puzzle for my setup is that I modify the windows install image to include an exe file and a little poweershell script — these allow the copying of all the other installers from the network. The exe file is ‘اسٹریمز’ which is a sysinternals (اب مائیکرو سافٹ کا حصہ ہے) utility to remove the “this file came from the internet are you sure you want to run it” warning.
I also have the following script as a .ps1 file
کاپی آئٹم - پیٹ \ wds-سرور ریمائنسٹ اپنی مرضی کے مطابق. *. *:\ایکسٹرا
میرا پہلا 4 LogonCommands are then as follows…
<ہم وقت ساز کمانڈ ڈبلیو سی ایم:کارروائی ="شامل"> <ترتیب>1</ترتیب> <تفصیل>سیٹ اپ کے دوران کوئی اسٹینڈ بائی نہیں</تفصیل> <کمانڈ لائن>پاورکفگ چینج اسٹینڈ بائی ٹائم آؤٹ-ایک 0</کمانڈ لائن> </ہم وقت ساز کامانڈ> <ہم وقت ساز کمانڈ ڈبلیو سی ایم:کارروائی ="شامل"> <ترتیب>2</ترتیب> <تفصیل>نیٹ ورک کے توسط سے سرور تک رسائی کے ل cred اسناد شامل کریں</تفصیل> <کمانڈ لائن>cmdkey / شامل کریں:wds-سرور / صارف:wds-سرور ایڈمنسٹریٹر / پاس:پاس ورڈ 123</کمانڈ لائن> </ہم وقت ساز کامانڈ> <ہم وقت ساز کمانڈ ڈبلیو سی ایم:کارروائی ="شامل"> <ترتیب>3</ترتیب> <تفصیل>اسکرپٹس اور ایپس کو نیٹ ورک سے ایکسٹرا فولڈر میں کاپی کریں</تفصیل> <کمانڈ لائن>C:\ونڈوز سسٹم 32 ونڈوز پاورشیل v1.0 پاور شیل.ایکس - ونڈوز اسٹائل پوشیدہ:\ایکسٹرا copyapps.ps1</کمانڈ لائن> </ہم وقت ساز کامانڈ> <ہم وقت ساز کمانڈ ڈبلیو سی ایم:کارروائی ="شامل"> <ترتیب>4</ترتیب> <تفصیل>کاپی شدہ ایپس سے انٹرنیٹ وارننگ ہٹا دیں</تفصیل> <کمانڈ لائن>C:\ایکسٹرا اسٹریمز 64.exe -d -d -nobanner C:\ایکسٹرا *. * / قبولیوٹی</کمانڈ لائن> </ہم وقت ساز کامانڈ>
“Hi James I realise it has been a long while, but I just checked this on windows 11 (build 23H2)…”