รายการสิ่งที่ต้องตรวจสอบเมื่อต้องเป็นผู้ดูแล Windows Server

เมื่อระบบที่พัฒนามีมากขึ้น Server ที่ต้องดูแลก็เริ่มจะมีมากขึ้น และแน่นอนว่าต้องดูแลสุขภาพของ Server ให้อยู่ดี มีสุขและต้องทำงานได้อย่างมีประสิทธิภาพ     เลยลองไปศึกษาดูว่าคนที่ทำหน้าที่ดูแล Server ที่เรียกว่า Administrator นั้นเค้าต้องตรวจสอบหรือทำอะไรบ้าง ความถี่ในการเข้าไปตรวจสอบเรื่องต่างๆ จึงวสรุปมาเผื่อจะเป็นประโยชน์กับคนหัวอกเดียวกัน (ทั้งพัฒนาโปรแกรมและดูแลสุขภาพของ Server) พอจะแยกเป็นข้อๆดังนี้ Updates -ตรวจสอบ New Package Update ที่ Windows Update โดยทำเดือนละครั้งเป็นอย่างน้อย แต่…ต้องแน่ใจว่ามี Backup หรือ Snapshot ล่าสุดที่พร้อมใช้งานสำหรับถ้า Update แล้วมีปัญหาต้อง Restored ระบบกลับมาให้ได้นะครับ (ส่วนนี้ถ้าเราดูแล Domain Server อยู่ด้วยก็น่าจะศึกษาเรื่อง Group Policy เพื่อสั่งตรวจสอบ server ทั้งหมดที่ดูแลอยู่ให้ Update ตาม Policy ที่ว่างไว้น่าจะดี ตอนนี้กำลังศึกษาเรื่อง Powershell scripts เพื่อให้ตรวจสอบข้อมูลและให้ส่ง mail ไปบอกอยู่ ถ้าทำสำเร็จจะมาเล่าให้ฟังในหัวข้อถัดๆไปนะครับ) -สำหรับ Server ได้ติดตั้ง Application อื่นๆนอกเหนือจากที่ Windows ให้มาก็ต้องตรวจสอบการ Update ด้วยนะครับถ้าให้ดีความทำ รายการ Application ที่ลงไว้ใน server ด้วยเพื่อสะดวกต้องการติดตาม Update และจะได้รู้ว่ามี Application แปลกปลอมอะไรเพิ่มเติมมาบ้างในเดือนที่กำลังตรวจสอบ Security -ตรวจสอบสิทธิการเข้าถึง Server พวก Administrator Group และ Remote access group น่าจะทำ 3-6 เดือนครั้ง -ตรวจสอบการเปิดปิด Firewall ports ต่างๆ น่าจะทำ 6-12 เดือนครั้ง -เรื่องการเปลี่ยน Passwords ของ User ที่มีสิทธิเข้าใช้งานระบบ น่าจะทำ 3 เดือนครั้งกำลังดี Backups -ฺBackups และ ต้องทดสอบ restores ระบบแบบสุ่ม 2-3 เดือนซักครั้ง Monitoring -ตรวจสอบการทำงานของ server โดยการตรวจสอบ logs ต่างๆที่ Server เก็บไว้ ตรงนี้ขอแนะนำ Log Parser Studio ลองไปโหลดมาเล่นดูครับ -ตรวจสอบการใช้งานทรัพยากรต่างๆของ Server Disk เหลือเท่าไร ใช้ RAM ไปเท่าไร ช่วงไหนทำงานหนักสุด -ตรวจสอบ Hardware Error ทำความเข้าใจกับ Windows logs > System, look for warnings and critical events. -Application ที่ลงไว้ตัวไหนไม่ใช้งานก็ความจะเอาออกจาก Server เพื่อลดความเสี่ยงที่ Application เหล่านั้นจะมีช่องโหวให้ถูกโจมตีได้ -ควรมีการ Run คำสั่ง chkdsk เดือนละครั้งเพื่อตรวจสอบ Disk -ควรมีการตรวจสอบพวก Virus และ Mal ware เดือนละครั้งตามที่อ่านๆมาก็พอสรุปได้ดังนี้ครับ และตามหัวข้อเหล่านี้ก็สามารถขยาย ต่อยอดศึกษาต่อไปได้อีก ที่ผมสนใจอยู่ตอนนี้คือการทำ automatic Task ด้วย Powers hell  ถ้าท่านใดมีความรู้หรือมีแหล่งความรู้แนะนำกันได้นะครับ ที่ลองทำและใช้งานอยู่ก็จะเป็นการสั่ง Backup SQL Server Database ไปเก็บไว้ใน Network Drive ซึ่งตัว Backup ของ SQL Server ที่มีมาให้ไม่สามารถมองเห็น Network Drive ได้ก็เลยลองเขียนด้วย power shell ก็ทำงานได้ดีและดูแล้วว่าถ้าใช้งาน Windows Server อยู่ความรู้เรื่อง Power Shell น่าจะช่วยให้ชีวิตการดูแล Server มีความสุขขึ้นมากแน่นอนครับ

Read More »

Powershell : นับหน้าเอกสาร PDF

Download โปรแกรม PDFtk [ https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ ] Install PDFtk ใช้ editor ซักตัวเขียน Code Powershell ที่ผมใช้คือใช้ Visual Studio 2013 และ Download PowerShell Tools for Visual Studio 2013 [ https://visualstudiogallery.msdn.microsoft.com/f65f845b-9430-4f72-a182-ae2a7b8999d7 ] ที่ใช้งานตัวนี้เพราะ Tools จะมี InteliSense ให้ไม่ต้องจำคำสั่ง PowerShell ทั้งหมด ก็ทำให้สะดวกดี  Code ก็ไม่มาก #กำหนดที่เก็บผลการ$File Path = ‘E:\tmp\result.txt’ -f $env:Path; #เป้าหมาย diretory ที่เก็บ file PDF วนคำนาณแต่ละ file dir e:\ *.pdf | foreach-object{ $pdf = pdftk.exe $_.FullName dump_data $NumberOfPages = 0 $NumberOfPages = [regex]::match($pdf,’NumberOfPages: (\d+)’).Groups[1].Value $infoObj = New-Object PSObject -Property @{ Name = $_.Name FullName = $_.FullName NumberOfPages = $NumberOfPages } #บันทึกข้อมูลลง file $infoObj.”FullName”,$infoObj.”NumberOfPages” -join ‘,’ | Out-File -FilePath $FilePath -Append -Width 200; } 5. Save แล้วก็ Execute เพื่อทดสอบได้เลยครับ

Read More »

psuautosigned for windows?

เช้าของวันที่ 14 ธันวาคม 2558 คุณ คณกรณ์ post ถามไว้ในกลุ่ม PSU Sysadmin บน facebook ว่า เรียนสอบถาม (จะได้ไม่ต้องทำซ้ำ) บน windows 10 ใครมี script ให้ทำการ auto authentication บ้างไม๊ครับ บางเครื่องต้องเปิดค้างไว้ข้ามวัน จะได้เข้ามาดูทางไกลได้ น่ะครับ ตอนนี้ใช้ team viewer ก็ยังติดเรื่องนี้อยู่ดี ขอบคุณครับ มีคุณ Thanongdat Noosrikaew กับคุณ ป้อม เภสัชฯ (Siripong Siriwan)  มาเสนอทางเลือกในการแก้ปัญหา แต่ดูเหมือนจะไม่ตรงกับที่เจ้าของคำถามต้องการสักเท่าไหร่ ผมอ่านแล้วก็ตั้งคำถามกับตัวเองว่า แล้วผมจะต้องตอบคำถามนี้ ผมมีทางเลือกอะไรบ้าง? คำตอบที่มีให้กับตัวเองก็คือ หากินกับของเก่าที่เคยทำเอาไว้แล้ว … คือ… มีคำสั่งคำสอน ที่ถ่ายทอดมาตั้งแต่ยุคโบราณกาลครั้งเก่าโพ้น ในชนเผ่า sysadmin ว่า sysadmin ที่ดีจะเป็นคนขี้เกียจ อะไรที่ได้ทำไว้แล้ว และยังเอามาใช้ได้ ก็ไม่ควรที่ทำขึ้นมาใหม่ … อันนั้น เป็นเรื่องที่ผมได้ยินมานะครับ จะเชื่อถือได้แค่ใหนก็แล้วแต่ท่านทั้งหลายจะได้พิจารณากัน ผมก็เลยพยายามทำตัวเป็น admin ขี้เกียจ .. เฮ่ย ไม่ใช่ เป็น admin ที่ดี ซึ่ง … ก็คือ ขี้เกียจน่ะแหละ -_-” มีอะไรที่เคยทำเอาไว้แล้ว ก็เอามา recycle ขายใหม่ ถ้าขายได้ … เราต้องช่วยกันอนุรักษ์สิ่งแวดล้อม … เกี่ยวกันใหม? คำตอบแรกที่ผมคิดได้ก็คือ ถ้า ยังหา solution บน Windows โดยตรงไม่ได้ และ ไม่รังเกียจที่จะติดตั้ง cygwin เพิ่มเข้าไปบนตัว windows ผมคิดว่า psuautosigned ที่เขียนไว้สำหรับ Linux ก็น่าจะพอดัดแปลงให้ใช้งานบน Windows ได้ครับ ฟังก์ชัน หลักๆ ต้องการแค่ shell ซึ่งอาจจะเป็น cmd.exe ของ windows เองก็ได้ กับโปรแกรมที่ชื่อว่า curl ครับ โปรแกรมอย่างอื่นเป็นแค่ตัวประกอบ แต่ทั้งหมด รวมทั้ง shell และ curl มีอยู่ใน cygwin อยู่แล้ว ผมไม่มีเครื่องที่ใช้งาน windows 10 ให้ลอง ถ้าจะช่วยทดสอบให้ ผมก็ยินดีที่จะแก้ script ให้รองรับ windows 10 ด้วยครับ โปรแกรม psuautosigned ที่ผมอ้างถึงคือ ตัวนี้ ซึ่งเคยเขียนถึงเอาไว้แล้ว ที่นี่ , ที่นี่, ที่นี่, และ ที่นี่ … ซึ่ง มาคิดดูอีกที เยอะแฮะ กับ script ตัวเดียวทำไมจะต้องเขียนบันทึกเกี่ยวกับมันหลายบันทึกด้วยก็ไม่รู้ จะว่าไป บันทึกนี้เอง ก็นับเป็นหนึ่งในชุดนี้ด้วยแหละ ส่วน cygwin ก็คือ https://www.cygwin.com/ เป็น tools สำหรับ Windows ให้สามารถใช้งานได้เหมือน(หรือใกล้เคียงมากๆ) กับการใช้ชีวิตอยู่บน Unix Command Line … ซึ่งเนื่องจาก script psuautosigned พัฒนาและใช้งานบน Linux ถ้าจะให้เอาไปใช้งานบนเครื่อง Windows 10 ได้ตามความต้องการของคุณหนุ่ม ก็ต้องการเครื่องมือเหล่านี้ มาช่วยด้วย นั่นหมายถึงว่า ถ้าจะเอาไปใช้ จะต้องติดตั้งโปรแกรมเพิ่ม และ ถึงแม้ว่า cygwin จะสร้างสภาพแวดล้อมแบบ Unix บนเครื่อง Windows เจ้าตัว script ที่ผมเขียน และ ทดสอบบน Debian Linux ก็จะยังไม่สามารถเอาไปใช้งานได้ทันที มันจะต้องการแก้ไขบางส่วนแน่ ๆ พอนั่งทบทวนไปสักพักว่ามีส่วนใหนที่จะต้องแก้ไขบ้าง จากความจำที่ค่อนข้างลางเลือนในส่วนที่เกี่ยวข้องกับ cygwin

Read More »

Using KMS Manually to Activate Software

ต้องแจ้ง IP Address ที่ต้องการ activate ผ่าน KMS Server ของมหาวิทยาลัยที่ support@psu.ac.th สำหรับ Windows ให้สร้าง batch script ชื่อ WindowsKMS.bat ไว้ที่ C:\ (drive ที่ติดตั้ง Windows) มีข้อความดังนี้ สำหรับ Windows Vista/7/8/8.1/2008/2008R2/10/11/2012/2012R2/2016/2019/2022 CD %windir%\System32 cscript slmgr.vbs /skms kms1.psu.ac.th cscript slmgr.vbs /ato สำหรับ Microsoft Office/Visio/Project ให้สร้างแฟ้ม OfficeKMS.bat ไว้ที่ C:\ (drive ที่ติดตั้ง Office) มีข้อความดังต่อไปนี้ rem Office 2021, Office 2019, Office 2016: CD \Program Files\Microsoft Office\Office16 CD \Program Files (x86)\Microsoft Office\Office16 rem Office 2013: CD \Program Files\Microsoft Office\Office15 CD \Program Files (x86)\Microsoft Office\Office15 rem Office 2010: CD \Program Files\Microsoft Office\Office14 CD \Program Files (x86)\Microsoft Office\Office14 cscript ospp.vbs /sethst:kms1.psu.ac.th cscript ospp.vbs /act ทั้งนี้ต้องติดตั้ง Office ด้วย Next technology เท่านั้นคือไม่มีการแก้ไข path ที่ใช้ติดตั้ง Office มิฉะนั้นต้องชี้ path ที่ถูกต้องของแฟ้ม ospp.vbs เอง เสร็จแล้วในคลิกขวาที่แฟ้ม WindowsKMS.bat และแฟ้ม OfficeKMS.bat แล้วเลือก run as administrator สำหรับห้องปฏิบัติการหรือเครื่องที่นานๆ (เกิน 30 วัน) เปิดใช้สักครั้งอาจจะต้องมีการเพิ่มหมายเลขผลิตภัณฑ์ลงในสคริปต์ด้วย หลังไมค์มานะครับ…. windows Server ก็ใช้ script เดียวกันนี้สำหรับการ activate จบ ขอให้สนุกครับ

Read More »

การตั้งค่า IPV6 ให้กับ Apache Web Server สำหรับ Ubuntu Linux

“อยากตั้งค่า Apache Web Server ให้เปิดใช้ IPv6 ต้องทำอย่างไร” สำหรับวิธีเปิดใช้งาน IPv6 บน Apache จะขอยกตัวอย่างบน Ubuntu ซึ่งจริง ๆ แล้วสามารถตั้งเป็น IPv6 only ก็ได้ แต่ในที่นี่จะตั้งให้สามารถใช้ได้ทั้ง IPv4 และ IPv6 เปิดไฟล์ /etc/apache2/ports.conf sudo vim /etc/apache2/ports.conf ทำการแก้ไขโดยเพิ่มในส่วนของ IPv6 Config ดังนี้ (xxx yyy ไปหามาใส่เอาเองนะครับ เป็นแค่ค่าสมมุติ) Listen 192.168.xxx.yyy:80 Listen [2001:xxxxxx:101]:80 สั่ง Restart Web Service เป็นอันเรียบร้อยครับ sudo /etc/init.d/apache2 restart สามารถตรวจสอบผ่านคำสั่ง netstat ได้ดังนี้ครับ netstat -na | grep “:80” การทดสอบในกรณียังไม่ได้จด DNS6 เราไม่สามารถพิมพ์ URL เป็น IPv6 ตรง ๆ บน Browser ได้ ถ้าจดแล้วสามารถทดสอบผ่าน http://ipv6-test.com/validate.php ดูได้ครับ สามารถดูบทความเพิ่มเติมได้ที่ http://sysadmin.psu.ac.th/2015/12/08/howto-ipv6

Read More »