วันพุธที่ 4 มกราคม พ.ศ. 2560

นิทานก่อนนอน ตอน Answer File (AutoUnattend.xml หรือ Unattend.xml) Windows Setup (SysPrep)


นิทานก่อนนอน ตอน Answer File (AutoUnattend.xml หรือ Unattend.xml)  Windows (SysPrep & Setup)
คัดลอกมากจาก http://www.easyosteam.com/forum.php?mod=viewthread&tid=1456

ขอขอบคุณบทความต้นฉบับจากคุณ TulTang แห่ง Forum EasyOS Team

ตอนที่ 1

ในการติดตั้ง Windows NT6 นั้นจะมีการติดตั้งชนิดหนึ่งที่เรียกว่า Free Hand คือเป็นไอ้ด้วนที่ไม่ต้องใช้มือในการติดตั้ง นั่นก็คือการใช้ AutoUnattend.xml หรือ Unattend.xml ที่เรียกว่า Answer File และ SetupComplete.cmd ในการกำหนดค่าต่างๆในการติดตั้งรวดเดียวจบ เนื่องเพราะไม่มีใครทำตำราให้รายละเอียดใดเอาไว้ ก็เลยจะอธิบายกันเฉพาะของ Windows 8.1 เท่านั้นเพราะน่าจะได้มีประโยชน์ต่อไปในอนาคต โดยจะรวบรวมจาก TechNet มาสาทกให้อ่านเรื่อยๆแก้เซ็งสักปีครึ่งจบก็แล้วกันเนื่องจากเฉพาะ Answer File มันก็มีรวมกัน 1503 หน้าหรือประมาณ 1300 รูปแบบการตั้งค่าเข้าไปแล้ว ซึ่งเชื่อเหลือเกินว่าพอถึงตอนจบก็คงมี windows ใหม่ออกมาใช้กันแล้ว

ดูตัวอย่างกันก่อนดีกว่า เช่น การจะสร้างความน่าเชื่อถือให้กับองค์กรของตนเอง มันก็ต้องมีการสนับสนุนด้านความช่วยเหลือต่างๆ นั่นคือเรื่องของ Help and Support


ซึ่งได้มีการทำให้เกิด Link ไปยัง Web Help ขององค์กรตนเองอย่างในรูปเมื่อกด F1 ที่เอามาจาก TechNet ด้วยการใส่ Code ลงไปใน แบบพื้นฐานของ Answer File ว่า


  1.      C:\Fabrikam\Logos\Logo.png
  2.      http://www.fabrikam.com/support
  3.      Fabrikam
  4.      http://www.fabrikam.com/support/search/?term={Query}
  5.      65280
คัดลอกไปที่คลิปบอร์ด
ก็ต้องบอกเอาไว้ก่อนว่าค่าใน Answer File ของ Windows 8.1 นั้นเปลี่ยนแปลงไปเยอะมากเมื่อเทียบกับ Windows 7 และ 8 ด้วยเหตุนี้แหละจึงต้องนำมาเล่าแจ้งแถลงกันให้ทราบ เพราะหากใส่ Answer File ที่มีค่าผิดๆลงไปก็จะทำให้การติดตั้ง Windows ขึ้น Error และติดตั้งไม่สำเร็จ ดังที่หลายๆท่านเคยประสบกันมา

ก่อนอื่นก็มาดูกันก่อนว่าใน Answer File นั้นมีส่วนประกอบสำคัญคือเรื่องของ Configuration Pass ทั้งเจ็ดใน Component อันประกอบด้วย
     1. auditSystem
     2. auditUser
     3. generalize
     4. offlineServicing
     5. oobeSystem
     6. specialize
     7. windowsPE

แล้วจะให้เอา Answer File ไปไว้ที่ไหนเพื่อให้ Windows อ่านค่าได้บ้าง? เรียงตามลำดับที่ Windows Setup จะดูก่อน
     1. Registry Key ที่ HKLM\System\Setup\UnattendFile โดยไม่จำเป็นว่าต้องชื่อ AutoUnattend.xml หรือ Unattend.xml
     2. %WINDIR%\Panther\Unattend โดยต้องระบุชื่อเป็น AutoUnattend.xml หรือ Unattend.xml เท่านั้น โดยจะหาเฉพาะเมื่อติดตั้งแบบ Downlevel และหากใช้ Windows PE ในการติดตั้งก็จะไม่หาเช่นกัน
     3. %WINDIR%\Panther โดย Windows จะ Cache เอา Answer File มาไว้ที่นี่เพื่อใช้ในการติดตั้งที่ต่อเนื่อง เช่น หากการติดตั้งมีการ Reboot แล้ว Windows ก็จะมาอ่านค่า Answer File ต่อจากตอนก่อนหน้านี้จากที่นี่ นอกจากนี้ยังห้ามเปลี่ยนแปลงแก้ไข Answer File นี้ในระหว่างการติดตั้ง เพราะจะทำให้ Windows เกิดอาการเอ๋อ เนื่องจากการการค่าผิดพลาดไปจากเดิม
     4. Root ของ Removable Read/Write Media โดยจะอ่านค่าไล่ไปตาม Drive Letter โดยต้องระบุชื่อเป็น AutoUnattend.xml หรือ Unattend.xml เท่านั้น เช่น Root ของ USB Flash Drive หรือ External HDD เป็นต้น
     5. Root ของ Removable Read-Only Media โดยจะอ่านค่าไล่ไปตาม Drive Letter โดยต้องระบุชื่อเป็น AutoUnattend.xml หรือ Unattend.xml เท่านั้น เช่น Root ของ CD หรือ DVD เป็นต้น
     6. Sources Folder ของ Setup Media จะต้องมีชื่อว่า AutoUnattend.xml และจะสามารถตั้งค่าได้ในส่วนของ windowsPE และ offlineServicing เท่านั้น
     7. %WINDIR%\System32\Sysprep จะต้องมีชื่อว่า Unattend.xml โดยจะสามารถตั้งค่าได้ในส่วนของ auditSystem, auditUser, generalize, oobeSystem และ specialize เท่านั้น
     8. %SYSTEMDRIVE% ซึ่ง Answer File จะต้องชื่อ AutoUnattend.xml หรือ Unattend.xml เท่านั้น

จากลำดับการอ่านค่าของ Answer File ทำให้เราสามารถประยุกต์สร้าง Answer File โดยไม่ต้องใส่เข้าไปในตัวติดตั้ง Windows ก็ได้ เช่น
     1. ใส่แผ่น DVD ที่ใช้ติดตั้ง Windows เข้าไปในเครื่อง Computer โดยไม่ต้องไปสนใจว่ามี Answer File อยู่หรือไม่ (รับประกันว่าไม่มีใครกระเสือกกระสน Load Hive เอา Answer File ไปใส่เอาไว้ใน Registry แน่...เผื่อเอาไว้หน่อยก็แล้วกันว่า ถึงมีก็น้อยละว่ะ)
     2. เสียบ USB Flash Drive ที่มี Answer File ชื่อ Autounattend.xml หรือ Unattend.xml อยู่ใน Root เข้ากับเครื่อง Computer
     3. เปิด Computer โดยเลือกให้ Boot จาก DVD ก่อน
     4. เมื่อถึงตอนที่ Setup มองหา Answer File ก็จะเป็นไปตามเงื่อนไขลำดับที่ 4
     5. เมื่อเครื่อง Reboot ก็จะไปอ่านค่าของ Answer File ที่ได้ถูก Cache เอาไว้ในลำดับที่ 3

เห็นไหมญาติมิตร พอเราเข้าใจเรื่องราวการทำงานของมันก็จะช่วยให้ทำอะไรได้ง่ายและสะดวกรวดเร็วขึ้น...ใช่ไหมเล่า?

บอกได้ว่าเรื่องนี้ดูๆไปก็น่าเบื่อ ออกจะน่านอนเสียด้วยซ้ำ แต่ช่วยไม่ได้ ใครใช้ให้ไม่มีใครทำตำราออกมาเล่า ก็เลยเอามาทำให้อ่านเป็นนิทานก่อนนอนเสียเลย...หุหุหุ 

ตอนที่ 2

เข้าใจว่าอยากจะรู้เรื่องการตั้งค่าของ Component ทั้งหลายใน Configuration Pass ต่างๆ แต่ก่อนจะไปถึงตรงนั้น ต้องมาทำความเข้าการทำงานของ Configuration Pass ต่างๆเสียก่อน เพื่อจะได้รู้ว่า Configuration Pass ไหนจะทำงานเมื่อไหร่? ซึ่งจะทำให้เราเข้าใจระบบการติดตั้งของ Windows ได้ดียิ่งขึ้น โดยจะเรียงตามลำดับการทำงานให้ดังนี้

1. windowsPE

windowsPE เริ่มทำงานตั้งแต่ต้นมือเมื่อตรวจพบว่ามีการใช้ Setup.exe ในการติดตั้ง โดยจะมีหน้าที่ตั้งค่าต่างๆให้ตัว Setup เช่น Resolution ที่จะใช้ตอน Setup หรือเรื่องภาษาและรูปแบบเวลาในขณะทำการ Setup เป็นต้น โดยมีส่วนที่เพิ่มพิเศษในขณะ Run ตัว Setup.exe ได้แก่
     1.1) การจัดการด้าน Partition และการ Format ตัว Hard Disk
     1.2) เลือก Image และ Edition ที่จะทำการติดตั้ง
     1.3) เลือก Partition ที่ต้องการจะติดตั้ง Windows
     1.4) ติดตั้ง Product Key และตั้งค่า Administrator Password
     1.5) ดำเนินการตามคำสั่งพิเศษอื่นๆในระหว่างการติดตั้ง Windows

2. offlineServicing

offlineServicing เอาไว้...ทำอะไรหว่า อ้อ นึกออกแล้ว เขาเอาไว้จัดการกับ Windows ตอนที่ยัง Offline อยู่ในตอน Setup แบบปกติจาก Media โดยมันจะจัดการในเรื่องเพิ่ม language pack หรือ update รวมทั้ง driver กับ package ต่างๆ...เอ๊ะ มันตอนไหนหรือที่ว่า Windows มันยัง Offline อยู่? อย่างนั้นก็ดูขั้นตอนที่ Windows เขาให้เราเห็นตอน Setup 5 ขั้นตอนกันเถอะ
     ขั้นที่ 1 Copying Windows files
     ขั้นที่ 2 Expanding Windows files
     ขั้นที่ 3 Installing features
     ขั้นที่ 4 Installing updates
     ขั้นที่ 5 Completing installation

offlineServicing ก็อยู่ในขั้นที่ 2 ตอนที่ Setup แตก File ของ Install.wim มาได้ถึงตรง 27% นั่นแหละแปลว่า offlineServicing ทำงานเสร็จแล้ว ซึ่ง Windows จะต้อง Reboot ครั้งแรก แล้วจะกลับเข้าสู่ Windows ในการติดตั้งขั้นที่ 2 ต่อจากตอนที่ Expanding filse ได้ไปแล้ว 27% ต่อไป...อธิบายยากจัง นึกออกไหมนี่?

ทั้งนี้หากใช้การติดตั้งโดย Apply Image เมื่อ Boot ขึ้นมามันจะข้าม Configuration Pass ในส่วนของ windowsPE และ offlineServicing ไปเลย เพราะไม่มีความจำเป็นต้องใช้

3. generalize

generalize ใน Configuration Pass มีหน้าที่หลักง่ายๆคือ ทำให้ Windows กลายเป็น Windows "แบบทั่วไป (General)" อันจะทำให้ Windows Image นำไปใช้ได้กับ Computer เครื่องที่มี Spec ต่างๆกันได้ ซึ่งจะตรงข้ามกับ specialize ที่จะมีหน้าที่กำหนดให้ Computer กลายเป็น Windows "แบบพิเศษ (Special)" สำหรับเครื่องใดเครื่องหนึ่งหรือรูปแบบใดรูปแบบหนึ่ง โดยมีจุดให้สังเกตุได้ว่าถึง Generalize แล้วหรือยังก็คือ...Run เสร็จแล้ว Computer จะต้องดับหรือ Reboot เครื่องใหม่ แต่ไม่ใช่การ Reboot ครั้งแรกจากการ Setup แบบปกตินะจ๊ะ

4. specialize

specialize ก็จะกำหนดค่าเฉพาะให้กับ Windows เช่น Network Setting, International Setting และข้อมูลของ Domain เป็นต้น โดยเมื่อเสร็จจาก Specialize แล้วก็จะเข้าสู่ Audit Mode หรือ oobeSystem แล้วแต่กรณี ซึ่งเท่าที่เห็นนั้น การติดตั้ง Windows โดยใช้ Answer File ไม่สำเร็จ มักจะทำผิดพลาดใน Pass นี้เสียเป็นส่วนใหญ่

5. auditSystem

auditSystem จะทำงานเฉพาะเมื่อ Boot เข้าใน Audit Mode เท่านั้นก่อนการทำงานของ AuditUser โดยมีเอาไว้จัดการเรื่อง System ใน Audit Mode โดยทั้งนี้ใน Audit Mode นั้นสามารถจะติดตั้ง Application รวมทั้ง Drivers และ Update ต่างๆได้ นอกจากนี้ยังเอาไว้ใช้ทดสอบ Application และ Drivers ต่างๆด้วยว่าทำงานได้ถูกใจเราหรือยัง

6. auditUser

auditUser เอาไว้จัดการกับ User ซึ่งในส่วนนี้จะทำงานตามคำสั่งใน RunSynchronous และ RunAsynchronous ส่วนที่เป็นคำสั่งเอาไว้ run scripts, applications หรือคำสั่งให้ทำงานต่างๆในระหว่างที่ใช้งาน audit mode

7. oobeSystem

oobeSystem ทำอะไรเยอะแยะมากมายเกี่ยวกับการตั้งค่าต่างๆของ User ก่อนการ Logon ครั้งแรกหลังจากงานด้าน specialize เสร็จแล้ว เอาเป็นว่าโดยปกติเมื่อ oobeSystem เสร็จแล้วก็จะเข้าสู่ Windows Welcome

จะเห็นได้ว่าหากเราจัดเตรียม Answer File ได้ถูกต้องเรียงตามการทำงานของมันแล้ว จะทำให้เราดูและจัดเตรียม Answer File ได้ง่ายและดียิ่งขึ้น

ถึงตรงนี้เชื่อว่าหลายๆคนเริ่มเข้าใจเรื่องการ Setup และ Answer File มากขึ้นไปอีกขั้นหนึ่งแล้ว คราวหน้าจะเป็นเรื่องอะไร? อุแม่เจ้า...ไว้เรามาคอยดูกัน (สุภาพมากผิดวิสัยเดิมเลยนะนี่

ตอนที่ 3

มาดูโครงสร้างของ Answer File ที่เป็น XML แบบง่ายๆกันเสียก่อน ไม่เช่นนั้นหากเริ่มเรื่องของ Component ต่างๆแล้วเดียวจะเอามาใช้ไม่ถูก


   
     
           en-US
           th-TH
           en-US
           th-TH
       
       
            
               32
               1024
               768
               60
         
             
               true
         
      
 
   
     
           en-US
           th-TH
           en-US
           en-US
           th-TH
     
       
           SE Asia Standard Time
           BlueGPT
           Windows Blue
     
 


1. การเริ่มต้นจะเป็น Code เดียวกันหมดดังบรรทัดที่ 1 และ 2 ส่วนตอนจบก็จะเป็นการปิดเรื่องของบรรทัดที่ 2 ซึ่งก็คือ ในบรรทัดที่ 36 เหมือนกันหมด และเนื่องจากทำแบบให้ใช้ได้ทั่วๆไป จึงไม่ได้กำหนด Windows Edition เอาไว้ให้ในตอนท้ายสุด

2. ต่อมาก็จะเป็นการกำหนดการเริ่ม Configuration Pass ดังในบรรทัดที่ 3 ซึ่งในตัวอย่างเป็นเรื่อง windowsPE ซึ่งหากเป็น Configuration Pass อื่นก็เปลี่ยนเฉพาะในส่วนของตัวหนังสือสีแดง เหมือนกับในบรรทัดที่ 22 ของตัวอย่างที่ได้กำหนดเป็น oobeSystem...ที่สำคัญคือ มันเป็น Case Sensitive คือต้องออกมาเหมือนเป๊ะ เช่น windowsPE จะเปลี่ยนเป็น WindowsPE มันก็จะอ่านไม่ได้ พาลจะทำให้ติดตั้ง Windows ไม่ได้เอาเสียด้วย ซึ่งในตอนจบของแต่ละ Pass ก็ต้องปิดด้วย เหมือนในบรรทัดที่ 21 (ปิด windowsPE) และ 35 (ปิด oobeSystem)

3. เมื่อได้กำหนด Configuration Pass แล้ว ต่อมาก็เป็นการกำหนด Component ดังในบรรทัดที่ 4, 10, 23 และ 30 ซึ่งข้อความจะเหมือนกันทั้งหมด จะต่างกันก็แต่ชื่อของ Component สีน้ำเงิน ส่วน Processor Architecture ก็

แล้วแต่ว่าจะนำไปใช้กับ Windows กี่ bit โดย 64-bit ก็ใช้ "amd64" ดังตัวอย่าง แต่หากเป็น 32-bit ก็ใช้ว่า "x86" แทน ทั้งนี้ในแต่ละ Component ก็จะปิดด้วย ดังตัวอย่างในบรรทัดที่ 9, 20, 29 และ 34

4. ส่วนรายละเอียดและการตั้งค่าในแต่ละ Component ก็จะขึ้นอยู่กับรูปแบบของค่านั้นๆ โดยจริงๆแล้วเขาไม่มีเว้นบรรทัดดังตัวอย่างหรอกนะ แต่พยายามจะทำให้ดูง่ายขึ้นก็เลยแยกมันออกเป็นส่วนๆเท่านั้นเอง

คำอธิบายในข้อ 1-4 นั้นอยากให้อ่านให้เข้าใจ เพราะพยายามใช้ภาษามนุษย์ในการอธิบาย เนื่องด้วยไม่อยากจะใช้ภาษา XML มาทำให้ปวดหัวจี๊ดๆ หากใครได้ศึกษาและเข้าใจเรื่อง XML ดีก็ขออภัยด้วยก็แล้วกันที่ใช้คำได้ผิดทุกส่วนประกอบของ

File แต่ในส่วนลึกของสันดานมันบอกว่า...ให้อธิบายไปแบบนี้แหละ จะเอาอะไรมากกับความรู้แค่ ป.4 เทอม 1 (ยังเป็นรุ่นที่ 1 ปีมี 3 เทอมนะจ๊ะ)...คิกคิกคิก

ตอนที่ 4

ในเรื่องของ Component นั้นตอนแรกคิดว่าจะเรียงตาม Configuration Pass แต่ติดปัญหาที่บาง Component สามารถใช้ได้กับหลาย Configuration Pass ก็จะต้องทำซ้ำไปซ้ำมา จึงคงจะต้องไล่เรียงเรื่องราวไปตามลำดับอักษร A-Z เช่นเดียวกับ TechNet โดยให้สังเกตุหัวข้อที่ทำเป็นตัวใหญ่ในสีต่างๆให้ดี เพราะมันมีประโยชน์และทำให้ไม่สับสนเมื่อเข้าไปลึกๆในเรื่องที่ซับซ้อนยิ่งขึ้น โดยแบ่งออกเป็น
1. Component
2. Element (ค่าที่สามารถตั้งได้)
3. Child Element (ค่าย่อยที่สามารถตั้งได้)
4. Child Element (ค่าย่อยถัดไปที่สามารถตั้งได้ อาจมีหลายชั้น)
5. Value (ค่าที่ตั้งได้)
6. Parent Hierarchy (รูปแบบโครงสร้าง)
7. Valid Passes หรือ Configuration Pass

ซึ่งต่อๆจากนี้ไปแหละที่จะเริ่มเข้าสู่บรรยากาศน่านอนกันแล้ว โดยมาเริ่มกันที่ตัวแรก พร้อมกับคำอธิบายการใช้พอสังเขป

Microsoft-Windows-AllUserInstallAgent
เอาไว้สำหรับตั้งค่าว่าจะให้ Register ให้กับ Windows Store Apps ในระหว่างที่ User ทำการ Logon ครั้งแรกหรือไม่? โดยมีค่าที่สามารถตั้งได้ในนี้ได้แก่
LogonWaitForPackageRegistration

LogonWaitForPackageRegistration
สำหรับกำหนดว่าจะให้ Windows Start Screen รอไปจนกว่าจะ Register ให้กับ Windows Store Apps เสร็จทั้งหมดก่อนหรือไม่? หากไม่รอก็จะทำการ Register อยู่เป็น Background โดยบาง Apps อาจใช้ไม่ได้ในระหว่างการ Register

Value
มีค่าให้เลือกสองค่าได้แก่
true คือให้รอเข้า Windows Start Screen จนกว่าจะ Register เสร็จ
false เป็นค่า Default ให้เข้า Windows Start Screen ได้เลยโดยให้ Register ใน Background

รูปแบบโครงสร้าง
Microsoft-Windows-AllUserInstallAgent| LogonWaitForAppRegistration

Configuration Pass
offlineServicing
generalize
specialize

  1. [ตัวอย่าง]
  2. true
คัดลอกไปที่คลิปบอร์ด


จากข้อมูลที่ให้ หากจะเอามาทำเป็น Answer File ใช้กับ Windows 8.1 32-bit ก็จะได้ออกมาประมาณว่า

[Answer File ของ Microsoft-Windows-AllUserInstallAgent]


    offlineServicing
">
       Microsoft-Windows-AllUserInstallAgent" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            true
    
 

โดยที่ LogonWaitForAppRegistration ใน Microsoft-Windows-AllUserInstallAgent ตรงที่เรียกว่า รูปแบบโครงสร้าง สามารถกำหนดให้ดำเนินการได้ใน 3 Configuration Pass คือ offlineServicing ก็ได้หรือ generalize ก็ได้ หรือจะเป็น specialize อันใดอันหนึ่งก็ได้ โดยค่าตรง Value ของ LogonWaitForAppRegistration นั้นก็กำหนดให้เป็นได้ทั้ง true หรือ false

แต่โดยหลักทั่วไป หากจะให้ใช้ค่า default ก็ไม่ต้องใส่ตัวนี้ลงไป เช่น หากจะให้ LogonWaitForAppRegistration มีค่าเป็น false ก็ไม่ต้องใส่ false ลงไปใน Answer File

โดยไอ้ค่า Default ของ LogonWaitForAppRegistration นี่แหละที่ทำให้คนเข้าใจ Windows 8 และ 8.1 ผิดมาหลายคนแล้ว...โดยได้ชื่นชมว่าติดตั้งได้เร็ว แหม...ก็ให้ทำงานเป็น Background อีกตั้งหลายอย่าง และกล่าวหาว่าเมื่อติดตั้ง Windows 8 แล้วเข้าใช้งานนั้น การทำงานของ Windows 8 มันหน่วงเครื่องพิกลอยู่ ทั้งนี้ก็เพราะค่า Default ของ Windows ไม่ได้ตั้งให้รอการ Register ของ Windows Store Apps ให้เสร็จก่อน แต่ให้ทำงานใน Background จึงทำให้ในการใช้เครื่องครั้งแรกในตอนแรก มันก็จะต้องทำงานหลายๆอย่างทั้งไอ้นู่นไอ้นี่และไอ้นั่น มันก็เลยไม่ปรู๊ดไม่ปร๊าดดังใจหวัง แต่เมื่อใช้ครั้งต่อๆไปหลังจากที่มันเข้าที่แล้วก็จะเร็วขึ้น

อยากให้ลองศึกษาทำความเข้าใจรูปแบบคำอธิบายและวิธีใช้เสียให้ดีก่อน เพราะต่อๆจากนี้ก็จะพุ่งไปแบบท้องเสียพรวดๆกันแล้ว โดยจะไม่มีคำอธิบายวิธีใช้อีกต่อไปนอกจากในส่วนของ Component ที่มันพิศดารหน่อยเท่านั้น

ต่อไปก็ตัวที่สอง

Microsoft-Windows-Audio-AudioCore
อันนี้ก็ง่ายๆ เอาไว้ตั้งค่า Audio และ Volume Control  โดยมีค่าที่สามารถตั้งได้ในนี้ได้แก่
EnableCaptureMonitor

EnableCaptureMonitor
เอาไว้กำหนดว่าจะให้มีตัวเลือกให้เล่น Audio จากอุปกรณ์ที่เชื่อมต่อกับ Audio In หรือไม่? โดยจะกำหนดให้ Computer ทำการ detect อุปกรณ์ที่ต่อกับ Audio In หรือไม่?

หากเปิดให้ใช้ตัวเลือกนี้ก็จะอนุญาตให้ end user สามารถกำหนดค่าต่างๆของระบบเพื่อที่จะเล่น audio จากอุปกรณ์เชื่อมต่อได้ เช่น จะสามารถ plug in เครื่องเล่นแบบพกพาและจะสามารถฟังเพลงจากลำโพงของ Computer ได้

Value
มีค่าให้เลือกสองค่าได้แก่
true เป็นค่า Default คืออนุญาติให้กำหนดค่าต่างๆของระบบเพื่อให้ใช้เครื่องเล่นแบบพกพาเมื่อต่อเข้า Audio In ได้
false คือไม่อนุญาติให้กำหนดค่าต่างๆของระบบเพื่อให้ใช้เครื่องเล่นแบบพกพาเมื่อต่อเข้า Audio In

รูปแบบโครงสร้าง
Microsoft-Windows-Audio-AudioCore| EnableCaptureMonitor

Configuration Pass
specialize
  1. [ตัวอย่าง]
  2. false
คัดลอกไปที่คลิปบอร์ด
Microsoft-Windows-Audio-VolumeControl
เอาไว้ตั้งค่า Audio และ Volume Control  โดยมีค่าที่สามารถตั้งได้ในนี้ได้แก่
EnableVolumeControlWhileLocked

EnableVolumeControlWhileLocked
ใช้กำหนดว่าจะให้แสดง volume control ตอนที่เครื่องล็อคหรือไม่?

ตัวอย่างเช่น ขณะที่ Computer กำลังเล่นเพลง แล้ว User ล็อค Computer แล้วเปิดใช้ EnableVolumeControlWhileLockedis ก็จะทำให้ user สามารถปรับหรือปิดเสียงได้โดยการใช้ Keyboard หรือใช้อุปกรณ์ที่ต่อเชื่อมได้โดยไม่ต้องปลดล็อค Computer

Value
มีค่าให้เลือกสองค่าได้แก่
true เป็นค่า Default คืออนุญาติให้ปรับเสียงได้เมื่อล็อค Computer
false คือไม่อนุญาติให้ปรับเสียงเมื่อล็อค Computer

รูปแบบโครงสร้าง
Microsoft-Windows-Audio-VolumeControl| EnableVolumeControlWhileLocked

Configuration Pass
specialize
  1. [ตัวอย่าง]
  2. false
คัดลอกไปที่คลิปบอร์ด
ขอพักหายใจก่อนนะจ๊ะ 

ตอนที่ 5

มาต่อกันที่ Component ต่อไปเลยซึ่งปรกติเราท่านคงจะไม่ได้ใช้ แต่ก็รู้ไว้ใช่ว่า ใส่บ่าแบกหามไปเสีย 1 ตอน

Microsoft-Windows-BLB-WSB-Online-Main
เอาไว้ตั้งค่าให้ Windows Server Backup menu เพื่อเอาไว้ใช้ online backup service โดยใช้ได้แต่กับ Windows Server 2012 ขึ้นไปในแบบ 64-bit ซึ่งมีตัวให้กำหนดค่าได้ 10 ตัว ได้แก่
DescriptionText1
DescriptionText2
EnableOnlineBackup
Icon
Link1
Link1Text
Link2
Link2Text
ProviderName
ResourceDll

DescriptionText1
คือคำอธิบายหรือคำบรรยายที่จะใส่เอาไว้ในบรรทัดที่ 1 จาก 2 บรรทัดใน Windows Server Backup menu

กล่าวคือ ก่อนที่จะติดตั้ง Online Backup Service ลงไป Windows จะแสดงคำบรรยายสารพัดสรรพคุณของ Online Backup Service ซึ่งจะมีไอ้เจ้าข้อความที่เราจะใส่นี้ลงไปรวมอยู่ด้วย ซึ่งข้อความนี้จะต้องถูกเอาไปยัดเอาไว้ใน DLL ที่เป็น Resource ไว้เรียบร้อยแล้ว ซึ่ง DLL ที่เป็น Resource นี้จะถูกกำหนดค่าว่ามันอยู่ที่ไหนได้ด้วย ResourceDll ซึ่งเป็นตัวกำหนดค่าตัวสุดท้าย ตัวอย่างข้อความใน Dll ที่เป็น Resource ก็เช่น
     "กดหนูสิค่ะ อาจมีของแถม"

ออกแนวหื่นอะไรทำนองนี้ เป็นต้น

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้แสดงออกมาในบรรทัดแรกของ Online Backup Service ที่แนะนำใน Windows Server Backup menu ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| DescriptionText1

Configuration Pass
specialize
oobeSystem


DescriptionText2
คือคำอธิบายหรือคำบรรยายที่จะใส่เอาไว้ในบรรทัดที่ 2 จาก 2 บรรทัดใน Windows Server Backup menu

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้แสดงออกมาในบรรทัดที่สองของ Online Backup Service ที่แนะนำใน Windows Server Backup menu ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| DescriptionText2

Configuration Pass
specialize
oobeSystem


EnableOnlineBackup
คือว่าจะให้แสดง Online Service Backup ที่แนะนำเอาไว้ใน Windows Server Backup menu หรือไม่?

ค่า default คือจะปล่อยให้มี Online Backup Service ที่แนะนำเอาไว้ซึ่งได้แก่ Windows Azure Online Backup แต่ถึงกระนั้น ก็สามารถเปลี่ยนค่าเป็นตัวอื่นก็ได้ด้วยการตั้งค่าต่างๆใน Component นี้

Value
มีค่าให้เลือกสองค่าได้แก่
true เป็นค่า Default คือให้แสดง Online Backup Service ที่แนะนำใน Windows Server Backup Menu
false คือไม่ต้องแสดง Online Backup Service ที่แนะนำใน Windows Server Backup Menu

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| EnableOnlineBackup

Configuration Pass
specialize
oobeSystem


Icon
จะกำหนด Icon ที่จะแสดงออกมาของ Online Backup Service ที่แนะนำใน Windows Server Backup Menu

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้แสดงออกมาเป็น Icon ของ Online Backup Service ที่แนะนำ ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| Icon

Configuration Pass
specialize
oobeSystem
Link1
ปกติใน Online Backup Service ที่แนะนำ จะมีให้เลือก 2 ตัวเลือกที่จะเชื่อมโยงไปยัง URL หรือ File ที่ระบุออกมาเป็นข้อความตาม Link1Text และ Link2Text (ยังไม่ถึงจ้า) โดย Link1 ก็คือ URL หรือ File ที่ Link1Text จะเชื่อมโยงไป โดยใน DLL ที่เป็น Resource จะระบุเอาไว้เป็น Text ขึ้นต้นด้วย http:// หรือ file://

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้เป็น Link แรกของ Online Backup Service ที่แนะนำ ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| Link1

Configuration Pass
specialize
oobeSystem


Link1Text
เป็นข้อความที่จะแสดงเอาไว้เหนือ Link1 โดยใน DLL ที่เป็น Resource จะระบุเอาไว้เป็นข้อความ เช่น
     "ลองน้องไหมพี่?"

หรือข้อความแนวหื่นอื่นๆ เป็นต้น

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้แสดงเหนือ Link แรกของ Online Backup Service ที่แนะนำ ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| Link1Text

Configuration Pass
specialize
oobeSystem


Link2
ตัวเลือกที่สองที่จะเชื่อมโยงไปยัง URL หรือ File ที่ระบุออกมาเป็นข้อความตาม Link2Text โดยใน DLL ที่เป็น Resource จะระบุเอาไว้เป็น Text ขึ้นต้นด้วย http:// หรือ file://

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้เป็น Link แรกของ Online Backup Service ที่แนะนำ ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| Link2

Configuration Pass
specialize
oobeSystem


Link1Text
เป็นข้อความที่จะแสดงเอาไว้เหนือ Link2 โดยใน DLL ที่เป็น Resource จะระบุเอาไว้เป็นข้อความ เช่น
     "บวชไหมโยม?"

หรือข้อความแนวธรรมสติอื่นๆ เป็นต้น

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้แสดงเหนือ Link ที่สองของ Online Backup Service ที่แนะนำ ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| Link2Text

Configuration Pass
specialize
oobeSystem


ProviderName
ชื่อก็บอกอยู่แล้ว แต่อธิบายหน่อยแก้เลี่ยน ก็คือข้อความบอกให้รู้ว่าใครเป็น Provider เช่น
     "บริการโดย วัดญาติโยมประชาทัณฑ์"

หรืออะไรทำนองนี้ เป็นต้น

Value
มีค่าให้ใส่ค่าเดียวคือ
ResourceID คือกำหนด ID ของ resource ใน ResourceDll ที่จะให้แสดงที่จะให้แสดงเป็น Provider ค่าเป็น integer

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| ProviderName

Configuration Pass
specialize
oobeSystem


ResourceDll
ตัวสุดท้ายซึ่งเป็นตัวสำคัญที่สุดของ Component นี้ คือเป็นตัวที่จะบอกให้รู้ว่าจะไปอ่านสารพัดค่าที่ตั้งเอาไว้ได้จากที่ไหน?

Value
มีค่าให้ใส่ค่าเดียวคือ
Path คือ Dll File ที่จะใช้กำหนดค่าของ Component โดยเป็นข้อความ (เว้นวรรคได้) ไม่เกิน 259 ตัวอักษร

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| ResourceDll

Configuration Pass
specialize
oobeSystem

ทีนี้ก็มาดูตัวอย่าง
  1. [ตัวอย่าง]
  2. true
  3. %ProgramFiles%\My Online Backup Shared\Resource.dll
  4. 100
  5. 101
  6. 200
  7. 201
  8. 202
  9. 300
  10. 301
  11. 302
คัดลอกไปที่คลิปบอร์ด


เอ้า! ตื่นกันได้แล้ว ตอนนี้ก็จบไปอีก 1 Component ที่น่าง่วงเพราะไม่ค่อยได้มีใครใช้ แต่แหม...ถ้าเป็นบริษัทใหญ่มันก็น่าทำเพื่อสร้างความสง่างามและน่าเชื่อถือมิใช่หรือ? ว่าแต่ว่า...Component นี้มีแค่ 10 ค่าให้ตั้ง แล้วต่อๆไปถ้าเจอแบบ 100 กว่าค่าให้ตั้งเช่น Internet Explorer หรือ Windows Shell และ Setup นี่มันจะกี่วันจบหว่า? 

ตอนที่ 6

ตั้งใจเอาไว้ว่าจะทำเอาไว้วันละตอนไปจนหมดทั้ง 68 Component โดยจะไม่ข้ามแม้แต่ Component เดียว ทั้งนี้เพื่อจะได้ให้ชาวไทยทั้งหลายเข้าใจได้ง่าย และเอาไว้อ้างอิงต่อไปในภายภาคหน้าเช่นเดียวกับใน TechNet ที่มีแต่ภาษาอังกฤษ

Microsoft-Windows-BrowserService
จะคอยเก็บรายการของ domain และ Server ที่จะเอาไปใช้ได้ทั้งหมดใน network มีตัวตั้งค่าแค่ตัวเดียวคือ
MaintainServerList

MaintainServerList
จะใช้กำหนดว่าจะให้ computer ทำหน้าที่เหมือนเป็น Master/Backup Browser บน subnet หรือไม่?

Value
มีค่าให้ใส่ 3 ค่าคือ
Yes คือกำหนดว่าจะให้ computer ทำหน้าที่เหมือนเป็น Master/Backup Browser
No คือกำหนดว่าจะไม่ให้ computer ทำหน้าที่เหมือนเป็น Master/Backup Browser
Auto เป็นค่า Default ซึ่งกำหนดว่าจะให้ computer ทำหน้าที่เหมือนเป็น Master/Backup Browser เมื่อจำเป็น ซึ่งได้แก่เมื่อไม่มี Master Browser หรือมี Master Browser ไม่พอบน Subnet 

รูปแบบโครงสร้าง
Microsoft-Windows-BLB-WSB-Online-Main| MaintainServerList

Configuration Pass
generalrize

  1. [ตัวอย่าง]
  2. No
คัดลอกไปที่คลิปบอร์ด


แล้วบัดนี้ก็มาถึงเรื่องที่จะยาวสักหน่อย นั่นคือเรื่องของ Component ที่ชื่อว่า

Microsoft-Windows-Deployment
เอาไว้ตั้งค่าเกี่ยวกับการจัดการ Audit ให้กับ Computer ซึ่งมีค่าที่ตั้งได้เป็นอภิธรรม 7 คัมภีร์ได้แก่
AuditComputerName
DuplicatorDescription
ExtendOSPartition
Generalize
Reseal
RunAsynchronous
RunSynchronous

AuditComputerName
เอาไว้ใช้ตั้งชื่อให้ Computer ในระหว่างที่อยู่ใน Audit Mode และตั้งให้ Reboot ทันทีที่กำหนดชื่อนี้เสร็จหรือไม่? โดยมีค่าย่อยที่สามารถตั้งได้ 2 ค่าได้แก่
MustReboot
Name

MustReboot
กำหนดว่าจะให้ Computer ทำการ restart ทันทีหลังจากตั้งค่าใน Name ใน audit mode หรือไม่?

Value
มีค่าให้ใส่ 2 ค่าคือ
true ให้ Restart ทันที
false เป็นค่า Default โดยชื่อของ Computer ที่ตั้งจะยังใช้ไม่ได้จนกว่าจะ Restart ในครั้งต่อไป

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| AuditComputerName| MustReboot

Configuration Pass
auditSystem


Name
กำหนดชื่อของ Computer ที่จะใช้ระหว่างที่อยู่ใน Audit Mode

Value
มีค่าให้ใส่ค่าเดียวคือ
name กำหนดชื่อของ Computer เป็น String ไม่เกิน 15 ตัวอักษร ถ้าไม่มีการกำหนดชื่อให้ Computer และมีการตั้งค่าให้ MustReboot เอาไว้ จะทำให้ Windows ไม่สนใจค่านี้

หมายเหตุ
1. หากไม่มีการกำหนดค่านี้ จะใช้ชื่อที่มีอยู่ของ Computer
2. หากกำหนดชื่อใหม่ให้ Computer จะต้อง Restart Computer เพื่อให้การตั้งชื่อมีผลใช้ได้ โดยหากการทำงานใดๆที่ตั้งเอาไว้มีความเกี่ยวเนื่องกับชื่อใหม่ของ Computer ให้ตั้งค่า MustReboot เป็น true เพื่อให้ Computer ทำการ Restart ทันที
3. ห้ามใส่ค่า "ว่างเปล่า" ให้กับ Name

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| AuditComputerName| Name

Configuration Pass
auditSystem

  1. [ตัวอย่าง]

  2.    true
  3.    MyComputer
คัดลอกไปที่คลิปบอร์ด


DuplicatorDescription
กำหนดคำบรรยายสรรพคุณสุดวิเศษของ Duplication tool ที่ใช้เช่นเดียวกับข้อมูลอื่นๆที่ OEM หรือ Administrator ต้องเก็บเอาไว้ใน registry

Value
กำหนดได้โด่เด่ค่าเดียวคือ
DuplicatorDescription มีค่าเป็น String ใช้อธิบาย Duplication tool ที่ใช้

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| DuplicatorDescription

Configuration Pass
generalize

  1. [ตัวอย่าง]
  2. MyDescription
คัดลอกไปที่คลิปบอร์ด
ExtendOSPartition
ใช้กำหนดว่าจะขยาย Partition ที่กำลังใช้ติดตั้ง Windows ออกไปอีกหรือไม่? โดยจะใช้ในสถานะการณ์ที่ติดตั้ง Windows โดยใช้ sector-based imaging solution แล้วเปลี่ยนใจวางแผนที่จะขยาย Partition ออกไป โดยจะใช้ได้แต่กับ Partition ที่เป็น NTFS เท่านั้น

ตอนนี้ก็คงจะมาถึงภาวะงงว่าอะไรคือ Sector-Based Image Solution ความจริงเคยอธิบายเอาไว้นานมากแล้ว แต่จะอธิบายเอาแบบแคบๆสั้นๆห้วนๆเป็นมะนาวไม่มีน้ำก็แล้วกันว่า Imaging Solution ที่นิยมกันมีสองแบบ
     Sector-Based Imaging Solution คือการติดตั้งโดยใช้พวก Ghost เป็นการคัดลอกแบบ Sector ต่อ Sector
     File-Based Imaging Solution คือการติดตั้งโดยใช้พวก WIM File เป็นการคัดลอกแบบ File ต่อ File

ถ้าไม่เข้าใจก็ให้รีบไปศึกษาหาความรู้เรื่องพวกนี้โดยด่วน เพราะการติดตั้งตั้งแต่ Windows Vista มานั้นเขาใช้ File-Based Imaging Solution มาโดยตลอด ซึ่งนี่เป็นหนึ่งในแผนงานลับแต่เปิดเผยของ Microsoft ที่ชื่อว่า Microsoft Solution Accelerators (ลองนึกดูสิว่าเคยได้ยินได้เห็นคำนี้กันบ้างไหม) ที่ออกมาพร้อมกับ Vista 2007 ซึ่งในรุ่นแรกนั้นประกอบไปด้วย WIM, WAIK, WinPE, USMT, ACT, MAP รวมทั้งตัวสำคัญอย่าง BDD หรือ Business Desktop Deployment (BDD) 2007 ที่ปัจจุบันรู้จักกันในนาม Microsoft Deployment Toolkit (MDT) เป็นต้น (ถ้าอยากรู้ว่าตัวย่อทั้งหลายย่อมาจากอะไรก็...ไปหาเอาเอง ฮ่าฮ่าฮ่า)

ทั้งนี้ ExtendOSPartition จะมีค่าย่อยที่สามารถตั้งได้ 2 ค่าได้แก่
Extend
Size

Extend
ใช้แสดงว่าจะให้ขยาย Partition ไปจนหมดพื้นที่ที่เหลือของ Hard Disk แต่ถ้าใส่เอาไว้ทั้ง Extend และ Size ใน Configuration Pass เดียวกัน จะเกิดค่าขัดแย้งกัน จึงจะไม่ทำการขยายพื้นที่ Partition

Value
กำหนดได้ 2 ค่าคือ
true คือให้ขยายไปจนสุดพื้นที่ว่างที่เหลือของ Hard Disk
false เป็นค่า Default คือไม่ต้องขยาย

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| ExtendOSPartition| Extend

Configuration Pass
auditSystem
generalize
oobeSystem
specialize

  1. [ตัวอย่าง]

  2.    true
คัดลอกไปที่คลิปบอร์ด


Size
ใช้แสดงว่าจะให้ขยาย Partition ไปอีกเท่าไหร่? มีหน่วยเป็น MB แต่ถ้าใส่เอาไว้ทั้ง Extend และ Size ใน Configuration Pass เดียวกัน จะเกิดค่าขัดแย้งกัน จึงจะไม่ทำการขยายพื้นที่ Partition

Value
กำหนดได้ 2 ค่าคือ
Size เป็น Integer แสดงขนาดของ Partition ที่จะขยายออกมีหน่วยเป็น MB แต่หากใส่ค่าเกินกว่าพื้นที่ที่เหลือ ก็จะไม่ทำการขยาย

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| ExtendOSPartition| Size

Configuration Pass
auditSystem
generalize
oobeSystem
specialize

  1. [ตัวอย่าง]

  2.    1024
คัดลอกไปที่คลิปบอร์ด

ยังไม่จบ...คราวหน้าจะเข้าสู่ Element ที่ชื่อ...Generalize 

ตอนที่ 7

Generalize
ชื่อนี้มีคนรู้จักกันมากมิใช่น้อย อาจซับซ้อนขึ้นมาอีกนิดหนึ่ง โดย Generalize นี้เอาไว้เตรียม Computer ต้นแบบเพื่อจะ Capture Image โดยเมื่อได้ตั้งค่า Generalize แล้ว Windows Setup ก็จะ
1. จัดการดำเนินการกับค่าของ Unattend อื่นๆที่ตั้งเอาไว้ใน configuration pass
2. ดำเนินการ generalize ใน configuration pass
3. จัดเตรียม computer เพื่อทำ Image

โดยมีค่าย่อยที่สามารถตั้งได้ 2 ค่าคือ
ForceShutdownNow
Mode

ซึ่งการตั้งค่าย่อยทั้งสองจะมีผลดังตารางนี้

หมายเหตุ ห้ามใช้ค่านี้ต่อเนื่องกับค่า Reseal ถ้าตั้งค่าทั้ง Generalize และ Reseal แล้วจะดำเนินการแต่ Generalize อย่างเดียว

ForceShutdownNow
จะสั่งให้ Shutdown ทันทีที่ generalize ใน Configuration Pass เสร็จ

Value
กำหนดได้ 2 ค่าคือ
true ก็สั่งให้ Shutdown ทันที
false เป็นค่า Default โดยให้ User เป็นผู้สั่งปิดเอง

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| Generalize| ForceShutdownNow

Configuration Pass
auditUser


Mode
ใช้ร่วมกับ ForceShutdownNow กำหนดว่าเมื่อ Generalize เสร็จแล้วเปิดเครื่องขึ้นมาจะให้อยู่ใน Mode ใดระหว่างเข้าสู่ Audit Mode หรือ Oobe

Value
กำหนดได้ 2 ค่าคือ
Audit สั่งให้ Boot เข้า Audit Mode
OOBE เป็นค่า Default โดยสั่งให้ Boot เข้า Oobe

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| Generalize| Mode

Configuration Pass
auditUser

  1. [ตัวอย่าง]

  2.    true
  3.    Audit
คัดลอกไปที่คลิปบอร์ด


Reseal
เอาไว้กำหนดว่าจะให้ Computer ทำงานใน Audit Mode หรือ Oobe เมื่อเปิดเครื่องครั้งต่อไป โดยใช้ตั้งค่าเป็นกรณีพิเศษดังนี้
1. หากใส่ Reseal เอาไว้ใน configuration pass ที่เป็น auditSystem หรือ oobeSystem จะทำงาน "ก่อน ค่าอื่นๆใน configuration pass นั้นๆ ซึ่งในบางกรณีจะทำให้ Setup ไม่ดำเนินงานของค่าอื่นๆใน configuration pass นั้นๆ และจะเริ่มทำงานของ Configuration Pass อื่นต่อหรือ shutdown เครื่องทันที
2. หากใส่ Reseal เอาไว้ใน Configuration Pass ที่เป็น auditUser จะทำงาน "หลัง ค่าอื่นๆใน auditUser

โดยมีค่าย่อยที่สามารถตั้งได้ 2 ค่าคือ
ForceShutdownNow
Mode

ซึ่งการตั้งค่าย่อยทั้งสองจะมีผลแตกต่างกันตาม Configuration Pass ดังตารางนี้


ForceShutdownNow
สั่งให้ Shutdown เครื่องทันทีหลังจากดำเนินการค่าที่ตั้งเอาไว้เสร็จเรียบร้อยแล้ว

Value
กำหนดได้ 2 ค่าคือ
true ก็สั่งให้ Shutdown ทันที
false เป็นค่า Default โดยให้ User เป็นผู้สั่งปิดเอง

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| Reseal| ForceShutdownNow

Configuration Pass
auditSystem
auditUser
oobeSystem


Mode
ใช้ร่วมกับ ForceShutdownNow เพื่อกำหนดว่าเมื่อ Reseal เสร็จแล้วเปิดเครื่องขึ้นมาจะให้อยู่ใน Mode ใดระหว่างเข้าสู่ Audit Mode หรือ Oobe

Value
กำหนดได้ 3 ค่าคือ
Audit สั่งให้ Boot เข้า Audit Mode
OOBE สั่งให้ Boot เข้า Oobe
ไม่ใส่ค่า เป็น Default โดยจะให้ผลต่างกันไปตาม Configuration Pass ดังนี้
     - ใน auditSystem จะ Boot เข้า Audit Mode
     - ใน auditUser จะ Boot ขึ้นมาแล้วแสดง UI ของ Sysprep เพื่อถามให้เลือกระหว่าง Audit หรือ Oobe
     - ใน oobeSystem จะ Boot เข้า Out-of-box Experience หรือ Oobe

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| Reseal| Mode

Configuration Pass
auditUserauditSystem
auditUser
oobeSystem

  1. [ตัวอย่าง]

  2.    true
  3.    Audit
คัดลอกไปที่คลิปบอร์ด

คราวหน้าจะต่อในเรือ่ง RunAsynchronous นะจ๊ะ 


ตอนที่ 8

RunAsynchronous
แล้วก็มาถึงตัวที่มักจะสร้างความงงให้กับบุคคลทั่วไปคือ RunAsynchronous กับ RunSynchronous ว่ามันต่างกันอย่างไร? มันเป็นการกำหนดมีคำสั่งทำงานเป็นพิเศษใน auditUser หรือ specialize โดยแตกต่างกันที่
     RunAsyschronous จะเป็นคำสั่งให้ทำงานไปพร้อมกันโดยไม่สนใจลำดับก่อนหน้าว่าจะทำงานเสร็จแล้วหรือไม่? อย่างไร? เหมาะที่จะเอาไว้ใช้งานด้าน Service ที่ไม่ต้องรอว่าต้องเปิดไอ้นู่นไอ้นี่ไอ้นั่นก่อน
     RunSyschronous จะเป็นคำสั่งให้ทำงานไปตามลำดับก่อนหลัง เหมาะเอาไว้สั่งงานที่ต้องทำต่อเนื่องกันเป็นลำดับ

โดยมีคำสั่งย่อย 1 ค่าคือ
RunAsynchronousCommand

RunAsynchronousCommand
เอาไว้ใส่คำสั่งที่จะให้ทำงานพร้อมๆกัน โดยมีค่าย่อยลำดับถัดไปที่ตั้งค่าได้คือ
Credentials
Description
Order
Path

Credentials
ใช้กำหนดการอ้างอิงที่จะะต้องใช้เพื่อการเข้าถึง "ath" โดยมีการตั้งค่าย่อยลงไปได้อีก 3 ค่าได้แก่
Domain
Password
Username

ตอนนี้ค่า Child Element ชักจะมากขึ้นไปทุกที หากไม่อยากจะสับสนที่ตรงนี้ว่าเป็น Child Element ลำดับที่เท่าไหร่? ให้สังเกตุดูเอาที่ รูปแบบโครงสร้าง ซึ่งหากใครที่สามารถทำความเข้าใจกับความซับซ้อนในส่วนนี้ได้ ก็แทบจะไม่มีอะไรในโครงสร้างของ Answer File ที่จะไม่เข้าใจอีกแล้ว

Domain
ใช้กำหนด domain ของ account เพื่อใช้ในการ authentication

Value
กำหนดได้ค่าเดียวคือ
Domain เป็น String ใช้กำหนดชื่อของ Domain ห้ามปล่อยว่าง

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| RunAsynchronous| RunAsynchronousCommand| Credentials| Domain

Configuration Pass
auditUser
specialize

ดูที่รูปแบบโครงสร้างและ Configuration Pass ตรงนี้จะจะอธิบายได้ว่า Domain เป็น Child Element ขั้นที่ 3 ของ Element ชื่อ RunAsynchronous และเป็น Depth 4 ที่อยู่ใน Component ชื่อ Microsoft-Windows-Deployment
Password
ใส่ Password ของ Account ที่ใช้เพื่อการ authentication

Value
กำหนดได้ค่าเดียวคือ
Password เป็น String ใช้ใส่ Password ของ Account ห้ามปล่อยว่าง

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| RunAsynchronous| RunAsynchronousCommand| Credentials| Password

Configuration Pass
auditUser
specialize


Username
ใส่ Username ของ Account ที่ใช้เพื่อการ authentication

Value
กำหนดได้ค่าเดียวคือ
Username เป็น String ใช้ใส่ User Name ของ Account ห้ามปล่อยว่าง

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| RunAsynchronous| RunAsynchronousCommand| Credentials| Username

Configuration Pass
auditUser
specialize


Description
ใช้ใส่คำอธิบายว่า RunAsynchronousCommand นั้นเอาไว้ทำอะไร

Value
กำหนดได้ค่าเดียวคือ
Description เป็น String ใส่คำอธิบายได้ไม่เกิน 259 ตัวอักษร

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| RunAsynchronous| RunAsynchronousCommand| Description

Configuration Pass
auditUser
specialize


Order
ใช้ใส่คำอธิบายว่า RunAsynchronousCommand นั้นเป็นลำดับคำสั่งที่เท่าไหร่

Value
กำหนดได้ค่าเดียวคือ
Order เป็น Integer ระหว่างเลข 1-500 แต่ไม่มีผลกับลำดับการทำงานแต่อย่างใด

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| RunAsynchronous| RunAsynchronousCommand| Order

Configuration Pass
auditUser
specialize


Path
ใช้ใส่ Path และชื่อ File คำสั่งที่จะให้ทำงาน

Value
กำหนดได้ค่าเดียวคือ
Path เป็น String ไม่เกิน 259 ตัวอักษร โดยจะเป็น Local Path เช่น %ProgramFiles%\Top Secret\NT6xSetupUtility.exe หรือ Universal Naming Convention (UNC) เช่น \\network\server\share\filename ก็ได้ โดยหากกำหนดเป็น UNC ก็จะต้องตั้งค่า Credentials เอาไว้ด้วย ที่สำคัญคือ อย่าไปเผลอใส่คำสั่งที่จะ Reboot ระบบลงไป เพราะมันจะทำให้คำสั่งอื่นๆติดค้างหรือไม่ทันได้ทำงาน

รูปแบบโครงสร้าง
Microsoft-Windows-Deployment| RunAsynchronous| RunAsynchronousCommand| Path

Configuration Pass
auditUser
specialize

  1. [ตัวอย่าง]

  2.    
  3.       AsynchCommand1
  4.       1
  5.       %ProgramFiles%\Top Secret\NT6xSetupUtility.exe
  6.    





  •    
  •       
  •          MyDomain
  •          MyPassword
  •          MyUsername
  •       





  •       SynchCommand2-FromNetwork
  •       2
  •       \\network\server\share\filename
  •    





  • คัดลอกไปที่คลิปบอร์ด


    แล้วตอนหน้าจะไปดูกันเรื่อง RunSynchronous กันต่อ 


    ตอนที่ 9

    RunSynchronous
    เป็นคำสั่งให้ทำงานไปตามลำดับก่อนหลัง เหมาะเอาไว้สั่งงานที่ต้องทำต่อเนื่องกันเป็นลำดับ โดยมีคำสั่งย่อย 1 ค่าคือ
    RunSynchronousCommand

    RunSynchronousCommand
    เอาไว้ใส่คำสั่งที่จะให้ทำงานพร้อมๆกัน โดยมีค่าย่อยลำดับถัดไปที่ตั้งค่าได้คือ
    Credentials
    Description
    Order
    Path
    WillReboot


    Credentials
    ใช้กำหนดการอ้างอิงที่จะต้องใช้เพื่อการเข้าถึง "ath" โดยมีการตั้งค่าย่อยลงไปได้อีก 3 ค่าได้แก่
    Domain
    Password
    Username


    Domain
    ใช้กำหนด domain ของ account เพื่อใช้ในการ authentication

    Value
    กำหนดได้ค่าเดียวคือ
    Domain เป็น String ใช้กำหนดชื่อของ Domain ห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-Deployment| RunSynchronous| RunSynchronousCommand| Credentials| Domain

    Configuration Pass
    auditUser
    specialize


    Password
    ใส่ Password ของ Account ที่ใช้เพื่อการ authentication

    Value
    กำหนดได้ค่าเดียวคือ
    Password เป็น String ใช้ใส่ Password ของ Account ห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-Deployment| RunSynchronous| RunSynchronousCommand| Credentials| Password

    Configuration Pass
    auditUser
    specialize


    Username
    ใส่ Username ของ Account ที่ใช้เพื่อการ authentication

    Value
    กำหนดได้ค่าเดียวคือ
    Username เป็น String ใช้ใส่ User Name ของ Account ห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-Deployment| RunSynchronous| RunSynchronousCommand| Credentials| Username

    Configuration Pass
    auditUser
    specialize


    Description
    ใช้ใส่คำอธิบายว่า RunSynchronousCommand นั้นเอาไว้ทำอะไร

    Value
    กำหนดได้ค่าเดียวคือ
    Description เป็น String ใส่คำอธิบายได้ไม่เกิน 259 ตัวอักษร

    รูปแบบโครงสร้าง
    Microsoft-Windows-Deployment| RunSynchronous| RunSynchronousCommand| Description

    Configuration Pass
    auditUser
    specialize


    Order
    ใช้ใส่คำอธิบายว่า RunSynchronousCommand นั้นเป็นลำดับคำสั่งที่เท่าไหร่

    Value
    กำหนดได้ค่าเดียวคือ
    Order เป็น Integer ระหว่างเลข 1-500 ใช้กำหนดเพื่อให้คำสั่งทำงานตามลำดับก่อนหลัง

    รูปแบบโครงสร้าง
    Microsoft-Windows-Deployment| RunSynchronous| RunSynchronousCommand| Order

    Configuration Pass
    auditUser
    specialize


    Path
    ใช้ใส่ Path และชื่อ File คำสั่งที่จะให้ทำงาน

    Value
    กำหนดได้ค่าเดียวคือ
    Path เป็น String ไม่เกิน 259 ตัวอักษร โดยจะเป็น Local Path เช่น %ProgramFiles%\Top Secret\NT6xSetupUtility.exe หรือ Universal Naming Convention (UNC) เช่น \\network\server\share\filename ก็ได้ โดยหากกำหนดเป็น UNC ก็จะต้องตั้งค่า Credentials เอาไว้ด้วย ที่สำคัญคือ ห้ามใส่คำสั่งที่จะ Reboot หรือ Shutdown ระบบ เพราะจะทำให้คำสั่งอื่นๆติดค้างหรือไม่ทันได้ทำงาน หากต้องการให้ Reboot ระบบ ให้ใช้ค่าย่อย WillReboot แทน

    รูปแบบโครงสร้าง
    Microsoft-Windows-Deployment| RunSynchronous| RunSynchronousCommand| Path

    Configuration Pass
    auditUser
    specialize


    WillReboot
    ใช้กำหนดว่าจะให้ Restart หลังจาก RunSynchronousCommand ใด โดยหากมีคำสั่งใดตกค้างถัดจากนี้ไปที่ยังไม่ได้ทำงานก่อนที่จะ Restart ก็จะดำเนินการต่อหลังจาก Restart แล้ว

    Value
    กำหนดได้ 3 ค่าคือ
    Always บอกให้ Restart ทันทีหลังจากดำเนินการตามคำสั่งเสร็จ
    OnRequest บอกว่าจะให้ Restart หรือไม่? เมื่อใด? ขึ้นอยู่กับ Return Code ที่ได้จากการดำเนินงานตามคำสั่งนั้นๆ โดยมี Return Code หลักๆ 3 ค่าคือ
         0 คือคำสั่งดำเนินการเสร็จสิ้น ไม่ต้อง Reboot
         1 คือคำสั่งดำเนินการเสร็จสิ้น ต้อง Reboot ก่อนจะดำเนินการคำสั่งอื่นๆต่อ
         2 คือคำสั่งยังดำเนินการอยู่ แต่จะต้องทำการ Reboot เพื่อให้การดำเนินการคำสั่งนั้นๆให้เสร็จ แล้วจึงจะดำเนินการตามคำสั่งถัดไปต่อ
         ตัวเลขอื่นๆ การดำเนินงานตามคำสั่งไม่สำเร็จ คราวนี้ซวยเลย คือ ระบบจะยกเลิกการติดตั้ง Windows ทั้งหมดที่ทำลงไปแล้ว...แปลว่าต้องติดตั้ง Windows ใหม่นั่นเอง
    Never เป็นค่า Default คือไม่ต้อง Reboot ใดๆทั้งสิ้น

    รูปแบบโครงสร้าง
    Microsoft-Windows-Deployment| RunSynchronous| RunSynchronousCommand| WillReboot

    Configuration Pass
    auditUser
    specialize

    1. [ตัวอย่าง]

    2.    
    3.       Command1-Local
    4.       1
    5.       %ProgramFiles%\FabriKam\FabriKam First Run Application.exe
    6.       OnRequest
    7.    





  •    
  •       
  •          MyDomain
  •          MyPassword
  •          MyUsername
  •       





  •       Command2-Network
  •       2
  •       \\network\server\share\filename
  •       OnRequest
  •    





  • คัดลอกไปที่คลิปบอร์ด

    เป็นอันจบเรื่อง Component ชื่อ Microsoft-Windows-Deployment ลงไปเสียที คราวหน้าคิดว่าจะเป็น Component ชื่ออะไรจ๊ะ? 


    ตอนที่ 10

    Microsoft-Windows-DiagCpl
    แอ่นแอนแอ๊น...โดยปกติพอผู้ใช้มีปัญหาการใช้งาน Windows ก็จะมีวิธีแก้ไขปัญหาโดยใช้ Trobleshooting Control Panel แต่ถ้าใช้แล้วรู้สึกว่าแก้ไขไม่ได้ก็สามารถจะเลือก Explore additional options ซึ่งมันจะเปิดหน้า Additional Information ของ Troubleshooting Control Panel โดยในหน้านี้จะมี Option ให้เลือกหลายอย่าง ซึ่งหนึ่งในนั้นก็คือ Online Support ซึ่งค่า Default นั้นจะเชื่อมโยงไปเปิดหน้าขยายความ (Escalation Page) ใน Help and Support นั่นเอง...แล้วเขาก็เอาเจ้าตัวนี้ไปตั้งค่าให้ Icon ของ Online Support ในหน้า Additional Information ที่อยู่ใน Troubleshooting Control Panel โดยมีค่าที่สามารถตั้งได้ในนี้ได้แก่
    Description
    Icon
    Link
    Title


    Description
    เอาไว้แสดงข้อความใต้ Icon ของ Online Support

    Value
    กำหนดได้ค่าเดียวคือ
    DescriptionID จะต้องใส่ค่าเป็น @dllname,-resourceID โดย dllname ต้องเป็น full path ของ resource DLL

    รูปแบบโครงสร้าง
    Microsoft-Windows-DiagCpl| Description

    Configuration Pass
    offlineServicing
    generalize
    specialize


    Icon
    ก็เอาไว้แสดง Icon ของ Online Support อย่างไรเล่า

    Value
    กำหนดได้ค่าเดียวคือ
    icon_ID จะต้องใส่ค่าเป็น @dllname,-resourceID โดย dllname ต้องเป็น full path ของ resource DLL

    รูปแบบโครงสร้าง
    Microsoft-Windows-DiagCpl| Icon

    Configuration Pass
    offlineServicing
    generalize
    specialize


    Link
    ใช้กำหนดว่าจะเปิด Online Support ด้วยอะไร

    Value
    กำหนดได้ค่าเดียวคือ
    GUID หรือ URL กำหนด GUID ของ application หรือ URL ของ website ที่จะเรียกใช้เมื่อเลือก Icon ใน Online Support

    รูปแบบโครงสร้าง
    Microsoft-Windows-DiagCpl| Link

    Configuration Pass
    offlineServicing
    generalize
    specialize


    Title
    กำหนดค่า Text ที่แสดงถัดจาก Icon ใน Online Support

    Value
    กำหนดได้ค่าเดียวคือ
    Title_ID จะต้องใส่ค่าเป็น @dllname,-resourceID โดย dllname ต้องเป็น full path ของ resource DLL

    รูปแบบโครงสร้าง
    Microsoft-Windows-DiagCpl| Title

    Configuration Pass
    offlineServicing
    generalize
    specialize

    1. [ตัวอย่าง]
    2. @%SystemRoot%\System32\DiagCpl.dll,-83
    3. @%SystemRoot%\System32\imageres.dll,-179
    4. http://www.fabrikam.com/support
    5. หรือ
    6. {abcde-01234-fabc01234def-39393}
    คัดลอกไปที่คลิปบอร์ด


    Microsoft-Windows-Disk-Failure-Diagnostic-Module
    เอาไว้ใช้ควบคุม Windows Disk Diagnostic ของ computer ที่เอาไว้เตือน user เมื่อตอนที่ Hard Disk ใกล้จะพัง (จำกันได้ไหมนี่) และยังช่วยในการ Backup ข้อมูลและ file ต่างๆ โดยเมื่อมีการตรวจพบว่า Hard Disk ใกล้จะพังปุ๊บก็จะมี Wizard โผล่ขึ้นมาปั๊บเพื่อช่วย User ในการ Backup

    โดยมีค่าที่สามารถตั้งได้ในนี้ได้แก่
    EnabledScenarioExecutionLevel
    DfdAlertTextOverride

    EnabledScenarioExecutionLevel
    ก็เอาไว้เปิดหรือปิดการใช้งาน Module นี้

    Value
    กำหนดได้ 2 ค่าคือ
    1 ก็คือปิด Windows Disk Diagnostic
    2 ก็คือเปิด Windows Disk Diagnostic

    รูปแบบโครงสร้าง
    Microsoft-Windows-Disk-Failure-Diagnostic-Module| EnabledScenarioExecutionLevel

    Configuration Pass
    offlineServicing
    generalize
    specialize


    DfdAlertTextOverride
    ใช้กำหนดข้อความของ Error Message ที่จะให้แสดงเมื่อปรากฏ Dialog Box ของ Windows Disk Diagnostic ขึ้น โดยสามารถกำหนดให้แสดงข้อความประชด เช่น "ใช้ไม่รู้จักดูหรือไง? สักแต่ว่าใช้!" หรือ "สมน้ำหน้า! ได้เวลาเหนื่อยและเสียเงินอีกแล้ว" รวมทั้งข้อมูลที่จะให้ความช่วยเหลือ เช่น "เปิด Google สิจ๊ะ" หรือข้อมูลอื่นๆที่จะสร้างความเจ็บช้ำน้ำใจอย่างไรก็ได้

    Value
    กำหนดได้ตั้งหนึ่งค่าคือ
    Custom_Message เป็น String ที่จะกำหนดให้แสดงได้ไม่เกิน 512 ตัวอักษร

    รูปแบบโครงสร้าง
    Microsoft-Windows-Disk-Failure-Diagnostic-Module| DfdAlertTextOverride

    Configuration Pass
    offlineServicing
    generalize
    specialize

    1. [ตัวอย่าง]
    2. 2
    3. Custom alert text that describes additional support information
    คัดลอกไปที่คลิปบอร์ด

    คราวหน้ามาว่ากันเบาๆต่อด้วยเรื่อง Microsoft-Windows-DNS-Client 

    ตอนที่ 11

    Microsoft-Windows-DNS-Client
    บอกเอาไว้ว่าเรื่องเบาๆ แต่ความจริงมันไม่เบาสักเท่าไหร่ โดยหากใช้ชีวิตที่ไม่ได้ยุ่งกับ Server แต่อย่างใด ก็จะข้ามหรืออ่านผ่านๆไปก็ได้ ซึ่ง Component นี้จะเอาไว้ตั้งค่าให้กับ Domain Name System (DNS) โดยอธิบายแบบสั้นๆเอาเป็นว่าคือ ระบบเพื่อการตั้งชื่อให้ Computer และ Network Service ทั้งหลายเพื่อเข้าใช้ใน Domain ทั้งนี้เป็นการใช้บน Network แบบ TCP/IP เช่น Internet เพื่อการหา Computer และ Service โดยการใช้ชื่อแบบที่เรียกง่ายๆหรือ User-Friendly Name โดยเจ้า DNS Client service นี้เขาเอาไว้แปลง DNS Domain Name เป็น IP Address โดยการเรียกหาจากข้อมูลที่ถูกเก็บเป็น Cache เอาไว้จากการเรียกหา (Query) ในครั้งก่อนในระบบหรือโดยการเรียกหา Remote DNS Server

    มีข้อสังเกตุว่าการตั้งค่าบางตัวเป็นแบบ Global และบางตัวเป็นแบบ Interface-Specific โดยการตั้งค่าแบบ Global จะนำไปใช้กับ Network Adapter ทุกตัวบน Computer ส่วนแบบ  Interface-Specific จะนำไปใช้กับ Adapter เฉพาะเป็นตัวๆไป ทั้งนี้อาจมีการตั้งค่าแบบ Global บางรายการที่จะเข้าไปคาบเกี่ยวกับการตั้งค่าแบบ Interface-Specific โดยค่าที่ตั้งได้มีทั้งหมด 4 ค่าคือ
    DNSDomain
    DNSSuffixSearchOrder
    Interfaces
    UseDomainNameDevolution

    DNSDomain
    เอาไว้กำหนดขอบเขตพื้นฐานของ DNS ในการค้นหาชื่อที่ได้แปลงค่าเป็น IP Address โดยทั้งนี้ DNS Client จะใช้ส่วนที่ต่อท้ายหรือ Suffix ของ DNS นั้นเพื่อการลงทะเบียนและช่วยในการแปลง IP Address ถ้าหากว่าไม่ได้มีการตั้งค่าของ DNSSuffixSearchOrder เอาไว้

    ปกติค่า Parameter ของ DNSDomain แบบ Global นี้จะใช้ตั้งค่าทั่วไปของ Network Interface โดยหากจะเจาะจงการเชื่อมต่อของ DNS Domain Name ก็จะตั้งได้จาก DNSDomain ในการตั้งค่าแบบ Interface-Specific เช่น หาก Parameter ของ DNSDomain ของ Global เป็น "x" และ Parameter ใน Interface-Specific เป็น "y" แล้ว DNS Client ก็จะใช้ค่า "x" ก่อนแล้วจึงใช้ค่า "y" ใน Interface นั้นๆ

    Value
    กำหนดได้ค่าเดียวคือ
    Domain_name ใช้กำหนด DNS domain โดย Domain_name เป็น string ไม่เกิน 255 ตัวอักษรและห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-DNS-Client| DNSDomain

    Configuration Pass
    specialize


    DNSSuffixSearchOrder
    เอาไว้จัดลำดับการค้นหาการแปลงชื่อเป็น IP Address โดยการติดตั้งโดยใช้ Unattend สำหรับ DNS Client นั้นสามารถตั้งค่ารายการของ Suffix ให้ DNS Client เอาไว้ใช้ค้นหา รวมทั้งสามารถตั้งค่ารายการของ DNS Server ที่เอาไว้ใช้ได้ด้วย ว่าแต่ว่า...เขาไม่รับรองนะจ๊ะว่ามันจะหาไปตามลำดับของ Order ที่จัดเอาไว้

    หากจะให้แน่ว่าจะให้มันค้นหาไปตามลำดับที่จัดเอาไว้ก็ต้องใช้ "Key" ของค่าย่อย DNSServerSearchOrder ใน "Interface" ควบคู่ไปกับ DNSSuffixSearchOrder เพื่อจัดลำดับจะให้ใช้ DNS Server ในการค้นหา เช่น ในการกำหนด DNSServerSearchOrder


    1.    2001:4898:28:4:213:20ff:fe16:3e96
    2.    172.16.1.12
    3.    192.168.1.1
    คัดลอกไปที่คลิปบอร์ด
    แล้วก็ตั้งค่า "Key" ใน DNSSuffixSearchOrder เพื่อให้แน่ใจว่าแต่ละ DNS Server จะค้นหาไปตามลำดับ Order ของ Suffix ที่กำหนดไว้


    1.    google.com
    2.    server2.google.com
    3.    server1.google.com 
    คัดลอกไปที่คลิปบอร์ด
    ตามตัวอย่างก็จะได้ผลการค้นหาตามลำดับก่อนหลังออกมาดังนี้
    DNS Server ที่ใช้หาเป็น
    1.92.168.1.1
    2001:4898:28:4:213:20ff:fe16:3e96
    172.16.1.12

    โดยใช้ Suffix เรียงไปว่า
    server1.google.com
    google.com
    server2.google.com

    ดังนี้เป็นต้น โดยมีค่าย่อยที่สามารถตั้งค่าได้ค่าเดียวคือ
    DomainName

    DomainName
    เป็นชื่อ Domain สำหรับการค้นหา กำหนดค่าย่อยลงไปได้ 2 ค่าคือ
    Key
    Value

    Key
    กำหนดลำดับให้แก่ Domain Name โดยมีค่าเป็น Attribute ในรูปแบบ wcm:keyValue

    Value
    กำหนดได้ค่าเดียวคือ
    Key เป็น String ที่เป็น Attribute กำหนดลำดับเป็นตัวเลข และห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-DNS-Client| DNSSuffixSearchOrder| DomainName| Key

    Configuration Pass
    specialize


    Value
    กำหนดค่าของ DomainName.

    Value
    กำหนดได้ค่าเดียวคือ
    Value กำหนดค่าของ DomainName เป็น String และห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-DNS-Client| DNSSuffixSearchOrder| DomainName| Value

    Configuration Pass
    specialize


    คราวหน้าก็จะมาต่อที่ Element ของ Microsoft-Windows-DNS-Client ที่เหลืออีก 2 รายการ อยู่ที่หน้า 134 จาก 1500 หน้า 

    ตอนที่ 12

    Interfaces
    การตั้งค่า DNS แบ่งได้เป็น 2 กลุ่มคือ Global และ Interface โดย Global จะนำไปใช้กับ Portocol ของ Network Interface ทั้งหมด ส่วน Interface จะเจาะจงลงไปที่แต่ละ Network โดย Interfaces นี้เป็นตัวที่เก็บการตั้งค่าของ DNS interface ต่างๆ ให้สังเกตุดูให้ดีว่ามันมีอักษร "s" ต่อท้าย ก็แปลว่ามีได้หลาย Interface ซึ่งค่าย่อยที่สามารถตั้งได้ของมันก็คือ Interface แต่ละตัวที่ไม่มี "s" ต่อท้ายเรียกว่า
    Interface

    Interface
    จะมีข้อมูลการตั้งค่าของ DNS Interface หนึ่งๆ โดยมีค่าย่อยที่ใช้ตั้งค่าเพื่อระบุให้ DNS Interface นั้นๆได้คือ
    DisableDynamicUpdate
    DNSDomain
    DNSServerSearchOrder
    EnableAdapterDomainNameRegistration
    Identifier

    DisableDynamicUpdate
    กำหนดให้รู้ว่าจะให้ Update ตัว Host (A) และ Pointer (PTR) โดยอัตโนมัติหรือเปล่า

    Value
    กำหนดได้ 2 ค่า คือ
    true เป็นค่า Default ให้ไม่ต้อง Update โดยอัตโนมัติ
    false คือให้ Update โดยอัตโนมัติ

    รูปแบบโครงสร้าง
    Microsoft-Windows-DNS-Client| Interfaces| Interface| DisableDynamicUpdate

    Configuration Pass
    specialize


    DNSDomain
    เอาไว้กำหนดขอบเขตพื้นฐานของ DNS ในการค้นหาชื่อที่ได้แปลงค่าเป็น IP Address โดยทั้งนี้ DNS Client จะใช้ส่วนที่ต่อท้ายหรือ Suffix ของ DNS นั้นเพื่อการลงทะเบียนและช่วยในการแปลง IP Address ถ้าหากว่าไม่ได้มีการตั้งค่าของ DNSSuffixSearchOrder เอาไว้

    ปกติค่า Parameter ของ DNSDomain แบบ Global นี้จะใช้ตั้งค่าทั่วไปของ Network Interface โดยหากจะเจาะจงการเชื่อมต่อของ DNS Domain Name ก็จะตั้งได้จาก DNSDomain ในการตั้งค่าแบบ Interface-Specific เช่น หาก Parameter ของ DNSDomain ของ Global เป็น "x" และ Parameter ใน Interface-Specific เป็น "y" แล้ว DNS Client ก็จะใช้ค่า "x" ก่อนแล้วจึงใช้ค่า "y" ใน Interface นั้นๆ

    Value
    กำหนดได้ค่าเดียวคือ
    Domain_name ใช้กำหนด DNS domain โดย Domain_name เป็น string ไม่เกิน 255 ตัวอักษรและห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-DNS-Client| DNSDomain

    Configuration Pass
    specialize


    DNSServerSearchOrder

    เอาไว้กำหนดรายการของ IP Address ที่เอาไว้ใช้เพื่อค้นหา DNS Server บน Network เมื่อทำการติดตั้งแบบ Unattend สำหรับ DNS Client นั้นสามารถตั้งค่ารายการของ Suffix ให้ DNS Client เอาไว้ใช้ค้นหา รวมทั้งสามารถตั้งค่ารายการของ DNS Server ที่เอาไว้ใช้ได้ด้วย ว่าแต่ว่า...เขาไม่รับรองนะจ๊ะว่ามันจะหาไปตามลำดับของ Order ที่จัดเอาไว้

    หากจะให้แน่ว่าจะให้มันค้นหาไปตามลำดับที่จัดเอาไว้ก็ต้องใช้ "Key" ของค่าย่อย DNSServerSearchOrder ใน "Interface" ควบคู่ไปกับ DNSSuffixSearchOrder เพื่อจัดลำดับจะให้ใช้ DNS Server ในการค้นหา เช่น เมื่อกำหนดการตั้งค่า DNSServerSearchOrder

    1. [ตัวอย่าง DNSServerSearchOrder]

    2.    2001:4898:28:4:213:20ff:fe16:3e96
    3.    172.16.1.12
    4.    192.168.1.1
    คัดลอกไปที่คลิปบอร์ด
    แล้วก็ตั้งค่า "Key" ใน DNSSuffixSearchOrder เพื่อให้แน่ใจว่าแต่ละ DNS Server จะค้นหาไปตามลำดับ Order ของ Suffix ที่กำหนดไว้

    1. [ตัวอย่าง DNSSuffixSearchOrder]

    2.    google.com
    3.    server2.google.com
    4.    server1.google.com 
    คัดลอกไปที่คลิปบอร์ด
    ตามตัวอย่างก็จะได้ผลการค้นหาตามลำดับก่อนหลังออกมาดังนี้
    1. DNS Server เป็น 1.92.168.1.1 ใช้ Suffix ว่า server1.google.com หรือไปดูที่
    2. DNS Server เป็น 1.92.168.1.1 ใช้ Suffix ว่า google.com หรือไปดูที่
    3. DNS Server เป็น 1.92.168.1.1 ใช้ Suffix ว่า server2.google.com หรือไปดูที่
    4. DNS Server เป็น 2001:4898:28:4:213:20ff:fe16:3e96 ใช้ Suffix ว่า server1.google.com หรือไปดูที่
    5. DNS Server เป็น 2001:4898:28:4:213:20ff:fe16:3e96 ใช้ Suffix ว่า google.com หรือไปดูที่
    6. DNS Server เป็น 2001:4898:28:4:213:20ff:fe16:3e96 ใช้ Suffix ว่า server2.google.com หรือไปดูที่
    7. DNS Server เป็น 172.16.1.12 ใช้ Suffix ว่า server1.google.com หรือไปดูที่
    8. DNS Server เป็น 172.16.1.12 ใช้ Suffix ว่า google.com หรือไปดูที่
    9. DNS Server เป็น 172.16.1.12 ใช้ Suffix ว่า server2.google.com

    ดังนี้เป็นต้น โดยมีค่าย่อยของ DNSServerSearchOrder ที่สามารถตั้งค่าได้คือ
    IpAddress

    IpAddress
    เอาไว้กำหนด IP Address ของ DNS Server โดยมีค่าย่อยลงไปอีก 2 ค่าคือ
    Key
    Value

    Key
    ใช้กำหนดลำดับให้แก่ IPAddress โดยมีค่าเป็น Attribute ของ IPAdress ในรูปแบบ wcm:keyValue

    Value
    กำหนดได้ค่าเดียวคือ
    Key เป็น String ที่เป็น Attribute กำหนดลำดับเป็นตัวเลข และห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-DNS-Client| Interfaces| Interface| DNSServerSearchOrder| IpAddress| Key

    Configuration Pass
    specialize


    Value
    กำหนดค่าของ IPAddress

    Value
    กำหนดได้ค่าเดียวคือ
    Value กำหนดค่าของ IPAddress เป็น String และห้ามปล่อยว่าง

    รูปแบบโครงสร้าง
    Microsoft-Windows-DNS-Client| Interfaces| Interface| DNSServerSearchOrder| IpAddress| Value

    Configuration Pass
    specialize

    คราวหน้าก็จะมาต่อที่ EnableAdapterDomainNameRegistration ของ Microsoft-Windows-DNS-Client กับ Element ที่เหลืออีก 1 รายการที่ชื่อ UseDomainNameDevolution ก่อนจะจบส่วนนี้ไป 

    ผ่านไป 1 เดือนโดยไม่มีเวลามาต่อให้ ดังนั้นจึงคิดว่าสำหรับผู้ที่อยากจะศึกษาไปก่อนโดยไม่อยากรอ ก็ download เอาตำราไปดูเองก่อนก็แล้วกัน
         Windows 8.1 Unattend Setup