Tuesday, December 11, 2007

การเพิ่มรีจีสทรีแบบรีโมตด้วยคำสั่ง Reg add

การใช้งานระบบวินโดวส์โดยทั่วไปนั้น อาจมีความจำเป็นต้องทำการเปลี่ยนแปลงแก้ไขรีจีสทรีของระบบฟิกเพื่อวัตถุประสงค์ต่างๆ เช่น อาจต้องการเปิดหรือปิดเซอร์วิสบางอย่าง เป็นต้น โดยการแก้ไขนั้นอาจใช้ Registry Editor ซึ่งสามารถใช้งานได้ทั้งแบบโลคอลและแบบรีโมต แต่สำหรับผู้ดูและระบบคอมพิวเตอร์ที่ต้องรับผิดชอบเครื่องคอมพิวเตอร์จำนวนหลายๆ เครื่องนั้น การแก้ไขที่ละเครื่องคงไม่สะดวกนัก แต่เราสามารถประยุกต์ใช้คำสั่ง Reg.exe กับอ็อปชัน Add เพื่อทำการแก้ไขรีจีสทรีแบบรีโมตได้ ซึ่งสามารถใช้ได้ทั้งแบบทีละบรรทัดหรือสร้างเป็นแบตท์ไฟล์ก็ได้

สำหรับถึงรายละเอียดการใช้คำสั่ง Reg.exe ในการ เพิ่ม (Add), การแก้ไข(Change) และแสดงรายละเอียด (Display) ของการซับคีย์และการตั้งค่าของรีจีสทรีคีย์ นั้น ผมเคยโพสไปแล้วครั้งหนึ่งในบทความเรื่อง "การใช้คำสั่ง Reg.exe" (หรืออ่านรายละเอียดได้จากเว็บไซต์ http://thaiwinadmin.blogspot.com/2007/11/kb-112007-35.html) ซึ่งในบทความดังกล่าวนั้นได้กล่าวถึงการใช้คำสั่ง Reg Add เฉพาะในแบบโลคอล ทั้งนี้คำสั่ง Reg Add นั้น ยังสามารถใช้ทำการเพิ่มรีจีสทรีคีย์แบบรีโมตได้อีกด้วย แต่จะซัพพอร์ตเพียงรีจีสทรีทรี (Registry Tree) HKEY_LOCAL_MACHINE หรือ HKLM และ HKEY_CURRENT_USER หรือ HKCU เพียง 2 รีจีสทรีทรีค่าเท่านั้น

การเพิ่มรีจีสทรีแบบรีโมตด้วยคำสั่ง Reg.exe Add
ก่อนอื่นขอทบทวนรายละเอียดการใช้คำสั่ง Reg Add ก่อนครับ โดยมีซินเท็กซ์การใช้งานดังนี้
reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]

Parameters
คำสั่ง reg add มีพารามิเตอร์ต่างๆ ในการใช้งานดังนี้
KeyName : กำหนดพาธเต็มของคีย์ย่อยของรีจีสทรี ถ้าหากเป็นการใช้งานแบบรีโมตนั้นจะซัพพอร์ตเพียงค่าซับทรี HKLM และ HKCU โดยจะต้องใส่ชื่อเครื่องคอมพิวเตอร์ในรูปแบบ UNC คือ \\ComputerName และตามด้วย \PathToSubkey ถ้าหากใช้งานโดยไม่ใส่ชื่อเครื่องคอมพิวเตอร์ จะเป็นการทำงานแบบโลคอล ซึ่งสามารถใช้งานได้กับซับทรี HKLM, HKCU, HKCR, HKU และ HKCC
/v EntryName : กำหนดชื่อของคีย์ที่ต้องการเพิ่มเข้าไปในคีย์ย่อย
/ve : กำหนดชื่อของคีย์ที่ต้องการเพิ่มเข้าไปในคีย์ย่อยเป็นค่าว่าง
/t DataType : กำหนดประเภทของข้อมูลที่ต้องการเพิ่ม โดยค่าที่ใช้ได้มีดังนี้
REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIAN
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_ENDIAN
REG_LINK
REG_FULL_RESOURCE_DESCRIPTOR
REG_EXPAND_SZ
/s separator : กำหนดอักขระที่ใช้ในการคั่นระหว่างค่าของข้อมูลแต่ละตัว ซึ่งจะใช้งานในกรณีที่ประเภทของข้อมูลเป็น REG_MULTI_SZ และมีหลายๆ ตัว โดยค่าดีฟอลท์นั้นเป็น \0
/d value : กำหนดค่าให้กับ registry entry ตัวใหม่
/f : ทำการเพิ่ม subkey หรือ entry ไดยไม่ต้องถามให้ยืนยัน
/?: แสดงความช่วยเหลือในการใช้งาน

หมายเหตุ
- คำสั่ง reg นั้น ไม่สามารถทำการสร้าง subtree ได้
- การใช้คำสั่ง reg ทำการเพิ่ม subkey นั้น จะไม่ถามให้ยืนยัน
- ค่าที่ได้รับจากการทำคำสั่ง reg add นั้น มี 2 ค่า คือ 0=Success และ 1=Failure

การใช้งาน reg add แบบรีโมต
การใช้งาน reg add แบบรีโมตนั้น จะมีซินเท็กซ์การใช้งานดังนี้
reg add \\ComputerName\KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]

เมื่อ \\ComputerName คือชื่อแบบ UNC ของเครื่องคอมพิวเตอร์ ตัวอย่างเช่น เครื่องคอมพิวเตอร์ชื่อ WS01 จะมีชื่อแบบ UNC เป็น \\WS01 เป็นต้น นอกจากนี้สามารถใช้งานแบบแบตท์ไฟล์ได้ในกรณีที่ต้องการใช้งานแบบหลายเครื่อง

ตัวอย่าง:
EX1 ทำการเพิ่มคีย์รีจีสทรีบนเครื่องแบบรีโมต 1 เครื่อง :
โดยทำการปิดบริการ Windows Script Host แบบรีโมตบนเครื่องคอมพิวเตอร์ชื่อ Computer01 ให้ทำการรันคำสั่งด้านล่างที่คอมมานด์พร็อพท์
reg add "\\Computer01\HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0x00000000

EX2 ทำการเพิ่มคีย์รีจีสทรีบนเครื่องแบบรีโมต 5 เครื่อง
โดยทำการปิดบริการ Windows Script Host แบบรีโมตบนเครื่องคอมพิวเตอร์ชื่อ Computer01- Computer05 ให้ทำการสร้างแบตท์ไฟล์โดยใช้โปรแกรม Notepad ให้มีลักษณะตามด้านล่าง เสร็จแล้วให้บันทึก ตั้งชื่อไฟล์ตามต้องการ (เช่น reg_add.bat )

reg add "\\Computer01\HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0x00000000
reg add "\\Computer02\HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0x00000000
reg add "\\Computer03\HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0x00000000
reg add "\\Computer04\HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0x00000000
reg add "\\Computer05\HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0x00000000

หลังจากทำการทำการสร้างแบตท์ไฟล์เสร็จเรียบร้อยแล้ว ให้ทำการรันจากคอมมานด์พร็อมพ์หรือจากวินโดวส์ก็ได้ หากไม่มีอะไรผิกผลาด ก็จะทำการเพิ่มรีจีสทรีบนเครื่องต่างๆ ตามคำสั่ง

Keywords: การใช้งาน reg.exe reg add registry add remote

© 2007 Thai Windows Administrator, All Rights Reserved.

0 Comment: