DIY मीडिया होम लोगो

अपनी खुद की होम थिएटर और हाय-Fi सेटअप डिजाइन और बनाने के लिए परम साइट.

0आरक्षित डीएचसीपी नाम के आधार पर पीसी का नाम बदलने के लिए बैच स्क्रिप्ट

मैं नया सेट करने के लिए स्टैंडअलोन सर्वर पर WDS का उपयोग करता हूं पीसी और फिर से छवि बनाने के लिए पीसी जब वे मरम्मत से परे हो गए हैं. अच्छी संख्या के साथ पीसी मेरे अपने घर में हार्डवेयर की अदला-बदली या उन्नयन करते समय कभी-कभी उन्हें फिर से चित्रित करना उपयोगी होता है. इस प्रक्रिया का अधिकांश भाग अब एक unattend.xml फ़ाइल द्वारा स्वचालित हो गया है, लेकिन एक चरण जो अप्राप्य प्रक्रिया का समर्थन नहीं करता है वह नाम बदल रहा है पीसी उनके मूल नाम पर वापस.

मेरे सभी पीसी उनके सही होस्टनाम के साथ स्थिर डीएचसीपी आरक्षण है (जो registered में भी पंजीकृत है डीएनएस) इसलिए मुझे लगा कि इस जानकारी को खींचने और उनका नाम बदलने के लिए इसका इस्तेमाल करने का एक तरीका होना चाहिए. बहुत कुछ करने के बाद मैंने एक बैच स्क्रिप्ट तैयार की है जो ऐसा करेगी (जब व्यवस्थापक के रूप में चलाया जाता है).

निम्नलिखित कोड को एक .cmd फ़ाइल में सरल पेस्ट करें और इसे अपनी अप्राप्य प्रक्रिया के भाग के रूप में चलाएं (मैं नीचे मेरा वर्णन करता हूं)

@echo off
set ip_address_string="आईपीवी4 पता"
के लिए / एफ "यूज़बैकक्यू" %%मैं में (`होस्टनाम`) DO SET MYVAR=%%i
for /f "usebackq टोकन = २ परिसीमन =:" %%एफ इन (`आईपीकॉन्फिग ^| खोज/सी:%ip_address_string%`) कर (
    के लिए / एफ "usebackq टोकन = २ परिसीमन =:" %%जिन (`एनएसलुकअप %%f ^| खोज/सी:नाम `) कर (
        के लिए / एफ "टोकन = 1 परिसीमन =।" %%एक in ("%%जी") कर (
            के लिए / एफ "टोकन = 1 परिसीमन = " %%बी इन ("%%a") कर (
                WMIC कंप्यूटर सिस्टम जहां नाम ="%मायवर%" कॉल का नाम बदलें नाम ="%%बी"
                के लिए जाओ :ईओएफ
            )
        )
    )
)

मैं अपनी स्क्रिप्ट को से बुलाता हूं <FirstLogonCommands> ImageUnattend.xml का अनुभाग.

<सिंक्रोनस कमांड wcm:क्रिया ="जोड़ना">
  <गण>5</गण>
  <विवरण>सिस्टम का नाम बदलें</विवरण>
  <कमांड लाइन>सी:\अतिरिक्तऊंचाई -सी सी:\अतिरिक्तनाम बदलें-पीसी-से-dns.cmd</कमांड लाइन>
</सिंक्रोनस कमांड>

इसे व्यवस्थापक के रूप में चलाने के लिए मैं थोड़ी उपयोगिता का उपयोग करता हूं (कहा जाता है) जो यह करता है (सेटअप के दौरान चलने वाले कमांड प्रॉम्प्ट को पॉप अप किए बिना बढ़ा सकते हैं!). आप इसे इसके से प्राप्त कर सकते हैं मूल स्रोत

मेरे सेटअप के लिए पहेली का अंतिम भाग यह है कि मैं एक exe फ़ाइल और थोड़ी पॉवरशेल स्क्रिप्ट को शामिल करने के लिए विंडोज़ इंस्टाल इमेज को संशोधित करता हूँ – ये नेटवर्क से अन्य सभी इंस्टॉलरों की प्रतिलिपि बनाने की अनुमति देते हैं. exe फ़ाइल है ‘धाराओं‘ जो एक sysinternals है (अब माइक्रोसॉफ्ट का हिस्सा) उपयोगिता को हटाने के लिए “यह फ़ाइल इंटरनेट से आई है क्या आप वाकई इसे चलाना चाहते हैं?” चेतावनी.

मेरे पास .ps1 फ़ाइल के रूप में निम्न स्क्रिप्ट भी है

कॉपी-आइटम -पथ \wds-serverRemInstCustom*.* -गंतव्य सी:\अतिरिक्त

मेरा पहला 4 LogonCommands तब इस प्रकार हैं…

<सिंक्रोनस कमांड wcm:क्रिया ="जोड़ना">
  <गण>1</गण>
  <विवरण>सेटअप के दौरान कोई स्टैंडबाय नहीं</विवरण>
  <कमांड लाइन>powercfg -स्टैंडबाय-टाइमआउट-एसी 0 . बदलें</कमांड लाइन>
</सिंक्रोनस कमांड>
<सिंक्रोनस कमांड wcm:क्रिया ="जोड़ना">
  <गण>2</गण>
  <विवरण>नेटवर्क के माध्यम से सर्वर तक पहुंच के लिए क्रेडेंशियल जोड़ें</विवरण>
  <कमांड लाइन>cmdkey /add:डब्ल्यूडीएस-सर्वर / उपयोगकर्ता:wds-सर्वरव्यवस्थापक / पास:पासवर्ड123</कमांड लाइन>
</सिंक्रोनस कमांड>
<सिंक्रोनस कमांड wcm:क्रिया ="जोड़ना">
  <गण>3</गण>
  <विवरण>स्क्रिप्ट और ऐप्स को नेटवर्क से एक्स्ट्रा फोल्डर में कॉपी करें</विवरण>
  <कमांड लाइन>सी:\WindowsSystem32WindowsPowerShellv1.0powershell.exe -विंडोस्टाइल छिपा हुआ - एक्ज़ीक्यूशन पॉलिसी बायपास -फाइल सी:\अतिरिक्त  copyapps.ps1</कमांड लाइन>
</सिंक्रोनस कमांड>
<सिंक्रोनस कमांड wcm:क्रिया ="जोड़ना">
  <गण>4</गण>
  <विवरण>कॉपी किए गए ऐप्स से इंटरनेट चेतावनी हटाएं</विवरण>
  <कमांड लाइन>सी:\अतिरिक्त  Streams64.exe -d -d -nobanner C:\अतिरिक्त*.* /स्वीकृति</कमांड लाइन>
</सिंक्रोनस कमांड>

इस उपयोगी पाया? कृपया हमें सूचित करते नीचे एक टिप्पणी छोड़ने के द्वारा. आप सदस्यता के लिए चाहते हैं, तो ऊपर दाईं ओर मेनू पर लिंक का उपयोग करें सदस्यता लें. आप नीचे दिए गए सामाजिक लिंक का उपयोग करके अपने दोस्तों के साथ इस साझा कर सकते हैं. चियर्स.

उत्तर छोड़ दें