สารบัญ:

ล็อคไดรฟ์ VBScript: 5 ขั้นตอน
ล็อคไดรฟ์ VBScript: 5 ขั้นตอน

วีดีโอ: ล็อคไดรฟ์ VBScript: 5 ขั้นตอน

วีดีโอ: ล็อคไดรฟ์ VBScript: 5 ขั้นตอน
วีดีโอ: How to Run VBScript on XP : Computers & Tech Tips 2024, กรกฎาคม
Anonim
ล็อคไดรฟ์ VBScript
ล็อคไดรฟ์ VBScript
ล็อคไดรฟ์ VBScript
ล็อคไดรฟ์ VBScript

อัปเดต: ขณะนี้โปรแกรมนี้สามารถซ่อนไดรฟ์ที่ล็อกไว้ได้

หลังจากทำการล็อกหน้าจอซึ่งล็อกคอมพิวเตอร์ของผู้ใช้แล้ว ฉันตัดสินใจที่จะท้าทายการทำล็อกไดรฟ์ที่ล็อกไดรฟ์

บางครั้งเราทุกคนต้องการป้องกันไม่ให้ผู้ใช้อยู่ในไดรฟ์ (โดยเฉพาะไดรฟ์ usb) ดังนั้นโปรแกรมนี้จะล็อคไดรฟ์เพื่อป้องกันไม่ให้ผู้ใช้ที่ไม่ได้รับอนุญาตเข้าถึงได้

สคริปต์นี้ค่อนข้างซับซ้อนไม่เหมือนกับการล็อกหน้าจอของฉัน ส่วนใหญ่เป็นเพราะฉันได้เพิ่ม if's and then's มากมายเพื่อให้โปรแกรมรู้สึกเป็นมืออาชีพ

โปรแกรมนี้สร้างขึ้นใน VBScript ในไม่กี่ขั้นตอนถัดไป ฉันจะแสดงให้คุณเห็นว่าฉันสร้างมันขึ้นมาได้อย่างไร

ขั้นตอนที่ 1: โปรแกรมของฉัน…

โปรแกรมของฉัน…
โปรแกรมของฉัน…

คุณสามารถดาวน์โหลด Drive Lock ของฉันด้านล่าง:

นี่คือลิงค์ไฟล์ VBScript ดิบ คุณจะต้องลบ 's' ตัวใดตัวหนึ่งที่อยู่ท้ายสุดออก มันจะเป็น 'DriveLock.vbs' หรืออะไรก็ได้ที่คุณต้องการ ตราบใดที่มันลงท้ายด้วย.vbs

ขั้นตอนที่ 2: ทำการล็อคไดรฟ์ (ตอนที่ 1)

การทำล็อคไดรฟ์ (ตอนที่ 1)
การทำล็อคไดรฟ์ (ตอนที่ 1)
การทำล็อคไดรฟ์ (ตอนที่ 1)
การทำล็อคไดรฟ์ (ตอนที่ 1)

ที่นี่ฉันจะแสดงส่วนแรกของการล็อกไดรฟ์ให้คุณเห็น … รูปแรกคือสิ่งที่ปรากฏขึ้นเมื่อคุณเรียกใช้โปรแกรมครั้งแรก

ฉันทำขึ้นเพื่อให้คุณมีสามตัวเลือกที่นี่ เพื่อล็อคไดรฟ์ เพื่อปลดล็อกไดรฟ์ หรือออก

นี่คือวิธีที่ฉันทำ:

ฟังก์ชัน DisplayPrompt() intSplash = MsgBox("คุณต้องการทำอะไร" & vbCrLf & vbCrLf _ & "[คลิกที่ใช่เพื่อล็อกไดรฟ์] " & vbCrLf _ & "[คลิกที่ NO เพื่อปลดล็อกไดรฟ์] ", 35, cTitleBarMsg) หาก intSplash = 2 จากนั้น DisplaySplashScreen () ElseIf intSplash = 7 จากนั้นเกิดข้อผิดพลาด ดำเนินการต่อ objWshShl. RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoViewOnDrive" objWletSoftware "HK\Delete" \Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives" หาก Err. Number 0 แล้ว MsgBox "ไดรฟ์ถูกปลดล็อกแล้ว", 16, cTitleBarMsg DisplayPrompt() สิ้นสุดหากเกิดข้อผิดพลาด ไปที่ 0 objWshShl. Run "Taskkill /f /im explorer.exe", 0 WScript. Sleep 300 objWshShl. Run "cmd /c explorer.exe", 0 MsgBox "ปลดล็อกไดรฟ์สำเร็จแล้ว!", 64, cTitleBarMsg DisplayPrompt() สิ้นสุดหากสิ้นสุดฟังก์ชัน

หากคุณคลิก NO เพื่อปลดล็อกไดรฟ์ ระบบจะลบคีย์รีจิสทรีที่มีการตั้งค่าที่ล็อก/ซ่อนไดรฟ์ และจะตรวจสอบว่าไดรฟ์ปลดล็อกแล้วหรือไม่ จากนั้นจะรีสตาร์ท explorer.exe เพื่อให้การเปลี่ยนแปลงมีผลทันที

หากคุณคลิกยกเลิก ระบบจะแสดงหน้าจอเริ่มต้นและออกจากระบบ

สุดท้ายถ้าคุณคลิก YES มันจะไปที่เมนูถัดไป ซึ่งผมจะอธิบายในขั้นตอนต่อไป

ขั้นตอนที่ 3: ทำการล็อคไดรฟ์ (ตอนที่ 2)

การทำล็อคไดรฟ์ (ตอนที่ 2)
การทำล็อคไดรฟ์ (ตอนที่ 2)
การทำล็อคไดรฟ์ (ตอนที่ 2)
การทำล็อคไดรฟ์ (ตอนที่ 2)

ต่อไปฉันจะแสดงเมนูให้คุณเห็นเมื่อคุณเลือกไดรฟ์แม่มดที่คุณต้องการล็อค (รูปที่ 1)

ตั้งค่า colDrives = objFSO. Drives

สำหรับแต่ละ objDrive ใน colDrives strDriveList = strDriveList & objDrive. DriveLetter & Space (10) ถัดไป strDrives = LCase (แทนที่ (strDriveList, " ", "" 1, -1)) ตั้งค่า colDrives = objFSO. Drives strDriveList = "" สำหรับแต่ละ objDrive ใน colDrives strDriveList = strDriveList & objDrive. DriveLetter & ":\" & Space(5) ถัดไป

เมนูอินพุต()

Sub InputMenu strChoice = InputBox("ป้อนอักษรของไดรฟ์ที่คุณต้องการล็อก" & _ " หรือพิมพ์ ALL เพื่อล็อกไดรฟ์ทั้งหมด" & _ vbcrlf & vbcrlf & "ไดรฟ์ที่ใช้ได้" & Space(3) & _ ":" & vbCrLf & vbCrLf & strDriveList, cTitleBarMsg)

รหัสบิตแรกสร้างรายการไดรฟ์ที่มีอยู่ทั้งหมด ส่วนต่อไปคือช่องอินพุตที่คุณป้อนตัวอักษรของไดรฟ์ที่คุณต้องการล็อค

หากคุณลองพิมพ์อะไรนอกจากอักษรระบุไดรฟ์ที่ถูกต้อง และโปรแกรมจะปฏิเสธ นี่คือวิธีที่ฉันทำ:

ถ้า IsEmpty(strChoice) แล้ว

DisplaySplashScreen() ElseIf strChoice = "" จากนั้น MsgBox "อย่าเว้นว่างไว้", 16, cTitleBarMsg InputMenu() ElseIf LCase(strChoice) = "all" จากนั้น 'Do Nothing ElseIf Len(strChoice) 1 จากนั้น MsgBox "คุณต้องป้อน ตัวอักษรเท่านั้น", 16, cTitleBarMsg InputMenu() ElseIf Not InStr(1, strDrives, LCase(strChoice), 1) 0 จากนั้น MsgBox "ตัวเลือกไม่ถูกต้อง โปรดลองอีกครั้ง", 16, cTitleBarMsg InputMenu() End If

สองบรรทัดแรกตรวจสอบว่าผู้ใช้กดปุ่มยกเลิกหรือไม่ และหากพวกเขาออกจากโปรแกรม

สามบรรทัดถัดไปจะตรวจสอบว่าผู้ใช้เว้นพื้นที่ป้อนข้อมูลว่างไว้หรือไม่

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

ขั้นตอนที่ 4: ทำการล็อคไดรฟ์ (ตอนที่ 3)

การทำล็อคไดรฟ์ (ตอนที่ 3)
การทำล็อคไดรฟ์ (ตอนที่ 3)

ด้วยเหตุผลบางอย่าง รีจิสทรีจึงไม่สามารถอ่านอักษรระบุไดรฟ์ได้เพียงอย่างเดียว ดังนั้นจึงต้องใส่เป็นจำนวนเต็มที่เกี่ยวข้อง นั่นคือสิ่งที่รหัสด้านล่างนี้กำลังทำอยู่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ คลิกที่นี่

ElseIf strChoice = "a" แล้ว

intDriveNumber = 1 ElseIf strChoice = "b" จากนั้น intDriveNumber = 2 ElseIf strChoice = "c" จากนั้น intDriveNumber = 4

เมื่อกำหนดค่าจำนวนเต็มแล้ว สคริปต์สามารถเขียนไปยังรีจิสทรีโดยใช้รหัสนี้:

หมายเหตุอีกประการหนึ่งคือโปรแกรมนี้เขียนถึง HKLM แทน HKCU HKLM มีผลกับผู้ใช้ทั้งหมด แทนที่จะเป็นเพียงผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน เพื่อให้การล็อกมีประสิทธิภาพมากขึ้น

objWshShl. RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoViewOnDrive", intDriveNumber, "REG_DWORD"

objWshShl. RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives", intDriveNumber, "REG_DWORD"

ขั้นตอนที่ 5: ล็อคไดรฟ์

ฉันหวังว่าคุณจะพบว่าคำแนะนำนี้มีประโยชน์ หากคุณไม่เข้าใจส่วนหนึ่งของสิ่งนี้โปรดโพสต์ความคิดเห็นหรือ pm มา

และโปรดให้ข้อเสนอแนะเกี่ยวกับปัญหาใด ๆ และโปรดให้คะแนน ฉันใช้เวลามากกับเรื่องนี้

หากคุณต้องการดาวน์โหลดไฟล์ raw vbs เพียงตรวจสอบให้แน่ใจว่าไฟล์นั้นถูกบันทึกด้วยนามสกุลไฟล์.vbs ข้อดีอีกอย่างของมันคือแบบพกพา ดังนั้นคุณจึงสามารถเรียกใช้จากแฟลชไดรฟ์และคุณไม่จำเป็นต้องติดตั้งอะไรเลย

แนะนำ: