Innehållsförteckning:

VBScript Drive Lock: 5 steg
VBScript Drive Lock: 5 steg

Video: VBScript Drive Lock: 5 steg

Video: VBScript Drive Lock: 5 steg
Video: Ridiculous Cars Against Triple Skibidi Toilet Head Bollard & Giant Spinning Hammer | BeamNG.Drive 2024, November
Anonim
VBScript Drive Lock
VBScript Drive Lock
VBScript Drive Lock
VBScript Drive Lock

Uppdatering: Detta program har nu möjlighet att dölja de angivna låsta enheterna

Efter att ha gjort mitt skärmlås som låser användarnas dator bestämde jag mig för att ta utmaningen att göra ett enhetslås som låser en enhet.

Vi vill alla ibland hålla användare borta från en enhet (särskilt en usb -enhet). Så det här programmet låser enheten för att förhindra att obehöriga användare får åtkomst till den.

Till skillnad från mitt skärmlås är detta skript ganska komplicerat. Främst för att jag lade till så många if's och then's bara för att ge en professionell känsla för att programmera.

Detta program gjordes i VBScript. I de närmaste stegen visar jag hur jag gjorde det.

Steg 1: Mitt program …

Mitt program …
Mitt program …

Du kan ladda ner mitt Drive Lock nedan:

Här är den råa VBScript -filen LINK. Du måste ta bort en av 's' i slutet så att det är 'DriveLock.vbs' eller vad du än vill ha så länge det slutar på.vbs.

Steg 2: Gör enhetslåset (del 1)

Göra enhetslåset (del 1)
Göra enhetslåset (del 1)
Göra enhetslåset (del 1)
Göra enhetslåset (del 1)

Här kommer jag att visa dig den första delen av enhetslåset … Den första bilden är vad som kommer upp när du kör programmet först.

Jag gjorde det så att du har tre alternativ här, att låsa en enhet, låsa upp enheterna eller avsluta.

Så här gjorde jag nu:

Funktion DisplayPrompt () intSplash = MsgBox ("Vad skulle du vilja göra?" & VbCrLf & vbCrLf _ & "[Klicka på JA för att låsa en enhet]" & vbCrLf _ & "[Klicka på NEJ för att låsa upp enheter)] ", 35, cTitleBarMsg) If intSplash = 2 Then DisplaySplashScreen () ElseIf intSplash = 7 Then On Error Resume Next objWshShl. RegDelete" HKLM / Software / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoViewOnDrive "HKB" / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoDrives "If Err. Number 0 Then MsgBox" Drives are already unlocked. ", 16, cTitleBarMsg DisplayPrompt () End If On Error Gå till 0 objWshShl. Run" Taskkill /f /im explorer.exe ", 0 WScript. Sleep 300 objWshShl. Run" cmd /c explorer.exe ", 0 MsgBox" Drive upplåst var framgångsrik! ", 64, cTitleBarMsg DisplayPrompt () End If End -funktion

Om du klickar på NEJ för att låsa upp enheten/enheterna raderas registernycklarna som innehåller inställningarna som låser/döljer enheten, och den kontrollerar också om enheten redan är upplåst. Sedan startar det om explorer.exe så att ändringarna träder i kraft direkt.

Om du klickar på Avbryt, visas stänkskärmen och stängs sedan.

Slutligen om du klickar på JA går det till nästa meny. Vilket jag kommer att förklara i nästa steg.

Steg 3: Göra enhetslåset (del 2)

Göra enhetslåset (del 2)
Göra enhetslåset (del 2)
Göra enhetslåset (del 2)
Göra enhetslåset (del 2)

Därefter visar jag dig menyn där du väljer vilken häxedrev du vill låsa (bild 1).

Ange colDrives = objFSO. Drives

För varje objDrive i colDrives strDriveList = strDriveList & objDrive. DriveLetter & Space (10) Nästa strDrives = LCase (Ersätt (strDriveList, "", "", 1, -1)) Ange colDrives = objFSO. Drives strDriveList = "" För varje objDrive i colDrives strDriveList = strDriveList & objDrive. DriveLetter & ": \" & Mellanslag (5) Nästa

Inmatningsmeny ()

Sub InputMenu strChoice = InputBox ("Ange bokstaven för enheten du vill låsa." & _ "Eller skriv ALL för att låsa alla enheter." & _ Vbcrlf & vbcrlf & "Tillgängliga enheter" & Mellanslag (3) & _ ":" & vbCrLf & vbCrLf & strDriveList, cTitleBarMsg)

Den första koden skapar en lista över alla tillgängliga enheter. Nästa del är inmatningsboxen om du anger bokstaven på enheten som du vill låsa.

Om du försöker skriva in något annat än en giltig enhetsbokstav, och programmet kommer att neka det. Så här gjorde jag det:

If IsEmpty (strChoice) Då

DisplaySplashScreen () ElseIf strChoice = "" Då MsgBox "Lämna inte detta tomt.", 16, cTitleBarMsg InputMenu () ElseIf LCase (strChoice) = "all" Then 'Do Nothing ElseIf Len (strChoice) 1 Then MsgBox "You must enter bokstaven ENDAST. ", 16, cTitleBarMsg InputMenu () ElseIf Not InStr (1, strDrives, LCase (strChoice), 1) 0 Då MsgBox" Ogiltigt val, försök igen. ", 16, cTitleBarMsg InputMenu () End If

De två första raderna kontrollerar om användaren träffade avbryt -knappen och om de gjorde programmet avslutas.

De följande tre raderna kontrollerar om användaren lämnade inmatningsområdet tomt.

Resten av koden är ganska förvirrande, men det är i princip bara att se till att användaren skrev in en giltig enhet.

Steg 4: Gör enhetslåset (del 3)

Göra enhetslåset (del 3)
Göra enhetslåset (del 3)

Av någon anledning kan registret inte läsa enhetsbrevet enbart, så det måste sättas in i ett motsvarande heltal. Det är vad den här koden nedan gör. För mer information om detta klicka här.

ElseIf strChoice = "a" Då

intDriveNumber = 1 ElseIf strChoice = "b" Sedan intDriveNumber = 2 ElseIf strChoice = "c" Sedan intDriveNumber = 4

När heltalet är konfigurerat kan skriptet nu skriva till registret med denna kod:

En annan anmärkning är att detta program skriver till HKLM istället för HKCU. HKLM påverkar alla användare istället för bara den nuvarande inloggade användaren så att låset blir mer effektivt.

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"

Steg 5: Drive Lock

Jag hoppas att du tyckte att detta var användbart. om du inte förstår en del av detta, skicka en kommentar eller pm mig.

Och snälla ge mig feedback om eventuella problem och betygsätt. Jag ägnade mycket tid åt detta.

Om du vill ladda ner råa vbs -filen, se bara till att den är sparad med ett.vbs -filtillägg. En annan trevlig sak med den är att den är bärbar så att du kan köra den från en flash -enhet och du inte behöver installera någonting.

Rekommenderad: