# Notification.
Notification

Author Topic: นิทานก่อนนอน ตอน Answer File ของ Windows 8.1  (Read 5694 times)

0 Members and 1 Guest are viewing this topic.

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 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 ลงไปใน <OEMInformation> แบบพื้นฐานของ Answer File ว่า
Code: (HelpAndSupport) [Select]
<HelpAndSupport>
     <Logo>C:\Fabrikam\Logos\Logo.png</Logo>
     <LogoURL>[url]http://www.fabrikam.com/support[/url]</LogoURL>
     <Manufacturer>Fabrikam</Manufacturer>
     <SupportSearchURL>[url]http://www.fabrikam.com/support/search/?term={Query}[/url]</SupportSearchURL>
     <TileColor>65280</TileColor>
</HelpAndSupport>

ก็ต้องบอกเอาไว้ก่อนว่าค่าใน 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

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

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

Offline microsoft

  • Administrator
  • *****
  • Posts: 8651
    • View Profile
    • VarietyPC.Net
พูดไม่ออก แต่บอกได้คำเดียวว่าลึกล้ำมากครับท่านอาจารย์ ผมเจอเรื่องราวคล้ายๆแบบนี้ใน technet หรือ msfn ผมยังอ่านแค่ผ่านๆไปเลย ตรงนั้นเป็นภาษาปะกิดยิ่งไม่เข้าใจไปกันใหญ่  [emo04]
การให้ที่ยิ่งใหญ่ คือ... การให้ต่อไป.... ไม่สิ้นสุด

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 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 มากขึ้นไปอีกขั้นหนึ่งแล้ว คราวหน้าจะเป็นเรื่องอะไร? อุแม่เจ้า...ไว้เรามาคอยดูกัน (สุภาพมากผิดวิสัยเดิมเลยนะนี่) [emo02]

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 3

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

Quote from: ตัวอย่าง Answer File
01 <?xml version="1.0" encoding="utf-8"?>
02 <unattend xmlns="urn:schemas-microsoft-com:unattend">

03    <settings pass="windowsPE">

04       <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35"

language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
05            <InputLocale>en-US</InputLocale>
06            <SystemLocale>th-TH</SystemLocale>
07            <UILanguage>en-US</UILanguage>
08            <UserLocale>th-TH</UserLocale>
09        </component>

10        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral"

versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
11            <Display>
12                <ColorDepth>32</ColorDepth>
13                <HorizontalResolution>1024</HorizontalResolution>
14                <VerticalResolution>768</VerticalResolution>
15                <RefreshRate>60</RefreshRate>
16            </Display>
17            <UserData>
18                <AcceptEula>true</AcceptEula>
19            </UserData>
20        </component>

21    </settings>


22    <settings pass="oobeSystem">

23       <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35"

language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
24            <InputLocale>en-US</InputLocale>
25            <SystemLocale>th-TH</SystemLocale>
26            <UILanguage>en-US</UILanguage>
27            <UILanguageFallback>en-US</UILanguageFallback>
28            <UserLocale>th-TH</UserLocale>
29        </component>

30        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35"

language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
31            <TimeZone>SE Asia Standard Time</TimeZone>
32            <RegisteredOrganization>BlueGPT</RegisteredOrganization>
33            <RegisteredOwner>Windows Blue</RegisteredOwner>
34        </component>

35    </settings>

36 </unattend>

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

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

3. เมื่อได้กำหนด Configuration Pass แล้ว ต่อมาก็เป็นการกำหนด Component ดังในบรรทัดที่ 4, 10, 23 และ 30 ซึ่งข้อความจะเหมือนกันทั้งหมด จะต่างกันก็แต่ชื่อของ Component สีน้ำเงิน ส่วน Processor Architecture ก็แล้วแต่ว่าจะนำไปใช้กับ Windows กี่ bit โดย 64-bit ก็ใช้ "amd64" ดังตัวอย่าง แต่หากเป็น 32-bit ก็ใช้ว่า "x86" แทน ทั้งนี้ในแต่ละ Component ก็จะปิดด้วย </component> ดังตัวอย่างในบรรทัดที่ 9, 20, 29 และ 34

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

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

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 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

Code: (ตัวอย่าง) [Select]
<LogonWaitForAppRegistration>true</LogonWaitForAppRegistration>

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

Quote from: Answer File ของ Microsoft-Windows-AllUserInstallAgent
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="offlineServicing">
       <component name="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">
            <LogonWaitForAppRegistration>true</LogonWaitForAppRegistration>
       </component>
    </settings>
</unattend>

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

แต่โดยหลักทั่วไป หากจะให้ใช้ค่า default ก็ไม่ต้องใส่ตัวนี้ลงไป เช่น หากจะให้ LogonWaitForAppRegistration มีค่าเป็น false ก็ไม่ต้องใส่ <LogonWaitForAppRegistration>false</LogonWaitForAppRegistration> ลงไปใน 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

Code: (ตัวอย่าง) [Select]
<EnableCaptureMonitor>false</EnableCaptureMonitor>


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

Code: (ตัวอย่าง) [Select]
<EnableVolumeControlWhileLocked>false</EnableVolumeControlWhileLocked>

ขอพักหายใจก่อนนะจ๊ะ [emo02]

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 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

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
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

ทีนี้ก็มาดูตัวอย่าง
Code: (ตัวอย่าง) [Select]
<EnableOnlineBackup>true</EnableOnlineBackup>
<ResourceDll>%ProgramFiles%\My Online Backup Shared\Resource.dll</ResourceDll>
<ProviderName>100</ProviderName>
<Icon>101</Icon>
<Link1>200</Link1>
<Link1Text>201<Link1Text>
<DescriptionText1>202</DescriptionText1>
<Link2>300</Link2>
<Link2Text>301<Link2Text>
<DescriptionText2>302</DescriptionText2>

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

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 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

Code: (ตัวอย่าง) [Select]
<MaintainServerList>No</MaintainServerList>

แล้วบัดนี้ก็มาถึงเรื่องที่จะยาวสักหน่อย นั่นคือเรื่องของ 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

Code: (ตัวอย่าง) [Select]
<AuditComputerName>
   <MustReboot>true</MustReboot>
   <Name>MyComputer</Name>
</AuditComputerName>


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

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

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

Configuration Pass
generalize

Code: (ตัวอย่าง) [Select]
<DuplicatorDescription>MyDescription</DuplicatorDescription>

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
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

Code: (ตัวอย่าง) [Select]
<ExtendOSPartition>
   <Extend>true</Extend>
</ExtendOSPartition>


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

Code: (ตัวอย่าง) [Select]
<ExtendOSPartition>
   <Size>1024</Size>
</ExtendOSPartition>

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

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 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

Code: (ตัวอย่าง) [Select]
<Generalize>
   <ForceShutdownNow>true</ForceShutdownNow>
   <Mode>Audit</Mode>
</Generalize>


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

Code: (ตัวอย่าง) [Select]
<Reseal>
   <ForceShutdownNow>true</ForceShutdownNow>
   <Mode>Audit</Mode>
</Reseal>

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

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 8

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

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

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

Credentials
ใช้กำหนดการอ้างอิงที่จะะต้องใช้เพื่อการเข้าถึง "Path" โดยมีการตั้งค่าย่อยลงไปได้อีก 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 ซึ่งหากจะเขียนออกมาโดยทั่วไปแบบให้เข้าใจง่ายๆโดยไม่สนใจความถูกต้องของ XML ก็จะเป็นทำนองว่า

Code: (ตัวอย่าง) [Select]
<settings=Configuration Pass เป็นอะไรสักอย่างหนึ่งระหว่าง auditUser หรือ specialize>
   <Component เป็น Microsoft-Windows-Deployment พร้อมค่าอื่นๆอีกมากมาย>
      <RunAsynchronous...เป็น Element ของ Microsoft-Windows-Deployment>
         <RunAsynchronousCommand...เป็น Child Element ของ RunAsynchronous>
            <Credentials...เป็น Chile Element ของ RunAsynchronousCommand>
               <Child Element ของ Credentials เป็น Domain>ค่าของ Domain คือ Value</Domain เพื่อปิดค่า Domain>
            </Credentials...เพื่อปิดค่า Credentials>
         </RunAsynchronousCommand เพื่อปิดค่า RunAsynchronousCommand>
      </RunAsynchronous...เพื่อปิด RunAsynchronous>
   </Component...เพื่อปิด Component>
</settings...เพื่อปิด Configuration Pass>


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

Code: (ตัวอย่าง) [Select]
<RunAsynchronous>
   <RunAsynchronousCommand wcm:action="add">
      <Description>AsynchCommand1</Description>
      <Order>1</Order>
      <Path>%ProgramFiles%\Top Secret\NT6xSetupUtility.exe</Path>
   </RunAsynchronousCommand>
   <RunAsynchronousCommand wcm:action="add">
      <Credentials>
         <Domain>MyDomain</Domain>
         <Password>MyPassword</Password>
         <Username>MyUsername</Username>
      </Credentials>
      <Description>SynchCommand2-FromNetwork</Description>
      <Order>2</Order>
      <Path>\\network\server\share\filename</Path>
   </RunAsynchronousCommand>
</RunAsynchronous>

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

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 9

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

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


Credentials
ใช้กำหนดการอ้างอิงที่จะต้องใช้เพื่อการเข้าถึง "Path" โดยมีการตั้งค่าย่อยลงไปได้อีก 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

Code: (ตัวอย่าง) [Select]
<RunSynchronous>
   <RunSynchronousCommand wcm:action="add">
      <Description>Command1-Local</Description>
      <Order>1</Order>
      <Path>%ProgramFiles%\FabriKam\FabriKam First Run Application.exe</Path>
      <WillReboot>OnRequest</WillReboot>
   </RunSynchronousCommand>
   <RunSynchronousCommand wcm:action="add">
      <Credentials>
         <Domain>MyDomain</Domain>
         <Password>MyPassword</Password>
         <Username>MyUsername</Username>
      </Credentials>
      <Description>Command2-Network</Description>
      <Order>2</Order>
      <Path>\\network\server\share\filename</Path>
      <WillReboot>OnRequest</WillReboot>
   </RunSynchronousCommand>
</RunSynchronous>

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

Offline ans58670

  • Webmaster
  • *****
  • Posts: 2040
    • View Profile
ตอนที่ 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

Code: (ตัวอย่าง) [Select]
<Title>@%SystemRoot%\System32\DiagCpl.dll,-82</Title>
<Description>@%SystemRoot%\System32\DiagCpl.dll,-83</Description>
<Icon>@%SystemRoot%\System32\imageres.dll,-179</Icon>
<Link>[url]http://www.fabrikam.com/support[/url]</Link>
หรือ
<Link>{abcde-01234-fabc01234def-39393}</Link>


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

Code: (ตัวอย่าง) [Select]
<EnabledScenarioExecutionLevel>2</EnabledScenarioExecutionLevel>
<DfdAlertTextOverride>Custom alert text that describes additional support information</DfdAlertTextOverride>

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


 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27