สวัสดีครับ วันก่อนได้ Script มีประโยชน์ และจำเป็นต้องใช้สำหรับฝ่ายงาน Security / Administrator คือ
VBS Script สำหรับ List Share Folder และ Permission ครับ ผมไม่ได้ตรวจสอบที่มา ว่าได้จาก Source ไหน หากทราบแหล่งคนเขียนช่วยแจ้งด้วยครับจะได้แจ้ง Credit ไว้ให้
1. ผม Save Code ด้านล่างโดยตั้งชื่อไฟล์ว่า listshare.vbs ครับ
2. จากนั้นใช้คำสั่ง cscript /nologo listshare.vbs > listshare.txt (เพื่อให้มัน Export Value ที่ตรวจพบออกมาเป็นไฟล์ .txt ครับ)
จากการทดลองแล้วมันใช้ได้ดีเลยทีเดียวครับ เลยเอามาแปะฝากให้เพื่อน ๆ พี่น้อง Admin ไว้ใช้ตรวจสอบเครื่องดูครับ
ตัวอย่างนี้ผมเจอว่า Share Drive อันนึงบนเครื่อง Server มีการเปิด Share เป็น Everyone = Full Control ด้วยครับ
อันตรายมาก ๆ หากเปิด Share แบบนี้
ตัว Script นี้ช่วยตรวจเช็คได้ครับ ลองเอาไปใช้ดู
ขอบคุณคนเขียน Script (ไม่ใช่ผมเขียนนะครับ)
Copy Code ในตารางด้านล่างไปใส่ Notepad แล้ว Save เป็นไฟล์ .vbs ได้เลยครับ วิธีใช้คำสั่งดูจากด้านบน
Dim objReturnCodes : Set objReturnCodes = CreateObject(“Scripting.Dictionary”) Const SUCCESS = 0 Const ACCESS_DENIED = 2 Const UNKNOWN_FAILURE = 8 Const PRIVILEGE_MISSING = 9 Const INVALID_PARAMETER = 21 ‘ Security Descriptor Control Flags Dim objControlFlags : Set objControlFlags = CreateObject(“Scripting.Dictionary”) ‘ ACE Access Right Dim objAccessRights : Set objAccessRights = CreateObject(“Scripting.Dictionary”) ‘ ACE Types Dim objAceTypes : Set objAceTypes = CreateObject(“Scripting.Dictionary”) ‘ ACE Flags Dim objAceFlags : Set objAceFlags = CreateObject(“Scripting.Dictionary”) Sub ReadNTFSSecurity(objWMI, strPath) Dim objSecuritySettings : Set objSecuritySettings = _ Dim strDomain : strDomain = objSD.Owner.Domain WScript.Echo ” Basic Control Flags Value: ” & objSD.ControlFlags DisplayValues objSD.ControlFlags, objControlFlags WScript.Echo Dim objACE ‘ Display the DACL WScript.Echo ” Discretionary Access Control List:” ‘ Display the SACL (if there is one) If Not IsNull(objSD.SACL) Then Sub ReadShareSecurity(objWMI, strName) Dim objSecuritySettings : Set objSecuritySettings = _ Dim objSD : objSecuritySettings.GetSecurityDescriptor objSD WScript.Echo ” Basic Control Flags Value: ” & objSD.ControlFlags DisplayValues objSD.ControlFlags, objControlFlags WScript.Echo Dim objACE ‘ Display the DACL WScript.Echo ” Discretionary Access Control List:” Sub DisplayValues(dblValues, objSecurityEnumeration) Dim dblValue Sub DisplayACE(objACE) Dim strDomain : strDomain = objAce.Trustee.Domain WScript.Echo ” Basic Access Mask Value: ” & objACE.AccessMask WScript.Echo ” Access Rights: ” WScript.Echo ” Type: ” & objAceTypes(objACE.AceType) WScript.Echo ” Basic ACE Flags Value: ” & objACE.AceFlags WScript.Echo ” ACE Flags: ” ‘ ‘ The system to execute this script against ‘ Connect to WMI ‘ Return all of the shares (Type = 0 means File Shares only, exclude Dim objItem ReadNTFSSecurity objWMI, objItem.Path strComputer = “.” Set colShares = objWMIService.ExecQuery(“Select * from Win32_Share”) For each objShare in colShares |