Sommario:

Blocco unità VBScript: 5 passaggi
Blocco unità VBScript: 5 passaggi

Video: Blocco unità VBScript: 5 passaggi

Video: Blocco unità VBScript: 5 passaggi
Video: #2 - Input e Oggetti - Tutorial VBS Visual Basic Script [ITA] 2024, Novembre
Anonim
Blocco unità VBScript
Blocco unità VBScript
Blocco unità VBScript
Blocco unità VBScript

Aggiornamento: questo programma ora ha la capacità di nascondere le unità bloccate specificate

Dopo aver creato il blocco dello schermo che blocca il computer degli utenti, ho deciso di accettare la sfida di creare un blocco dell'unità che blocca un'unità.

A volte tutti noi desideriamo tenere gli utenti fuori da un'unità (in particolare un'unità USB). Quindi questo programma bloccherà l'unità per impedire agli utenti non autorizzati di accedervi.

A differenza di mio blocco dello schermo questo script è piuttosto complicato. Principalmente perché ho aggiunto tanti se e poi solo per dare al programma un aspetto professionale.

Questo programma è stato realizzato in VBScript. Nei prossimi passaggi ti mostrerò come l'ho realizzato.

Passaggio 1: il mio programma…

Il mio programma…
Il mio programma…

Puoi scaricare il mio Drive Lock qui sotto:

Ecco il LINK del file VBScript non elaborato. Dovrai rimuovere una delle "s" alla fine, quindi è "DriveLock.vbs" o quello che vuoi, purché finisca in.vbs.

Passaggio 2: bloccare l'unità (parte 1)

Bloccare l'unità (parte 1)
Bloccare l'unità (parte 1)
Bloccare l'unità (parte 1)
Bloccare l'unità (parte 1)

Qui ti mostrerò la prima parte del blocco dell'unità … La prima immagine è ciò che viene visualizzato quando esegui per la prima volta il programma.

L'ho fatto in modo che tu abbia tre opzioni qui, per bloccare un'unità, sbloccare unità o uscire.

Ora ecco come ho fatto:

Function DisplayPrompt() intSplash = MsgBox("Cosa vorresti fare?" & vbCrLf & vbCrLf _ & "[Fare clic su S per bloccare un'unità] " & vbCrLf _ & "[Fare clic su NO per sbloccare le unità] ", 35, cTitleBarMsg) If intSplash = 2 Then DisplaySplashScreen() ElseIf intSplash = 7 Then On Error Riprendi Avanti objWshShl. RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoViewOnDrive" objDeleshShl. \Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives" If Err. Number 0 Then MsgBox "Le unità sono già sbloccate.", 16, cTitleBarMsg DisplayPrompt() End If On Error Vai a 0 objWshShl. Run "Taskkill /f /im explorer.exe", 0 WScript. Sleep 300 objWshShl. Run "cmd /c explorer.exe", 0 MsgBox "Unità sbloccata riuscita!", 64, cTitleBarMsg DisplayPrompt() End If End Function

Se si fa clic su NO per sbloccare le unità, vengono eliminate le chiavi di registro che contengono le impostazioni che bloccano/nascondono l'unità, controlla inoltre se l'unità è già sbloccata. Quindi riavvia explorer.exe in modo che le modifiche abbiano effetto immediato.

Se fai clic su Annulla, viene visualizzata la schermata iniziale e quindi esce.

Infine, se si fa clic su S, si passa al menu successivo. Che spiegherò nel passaggio successivo.

Passaggio 3: bloccare l'unità (parte 2)

Bloccare l'unità (parte 2)
Bloccare l'unità (parte 2)
Bloccare l'unità (parte 2)
Bloccare l'unità (parte 2)

Successivamente ti mostrerò il menu in cui scegli l'unità delle streghe che desideri bloccare (foto 1).

Imposta colDrives = objFSO. Drives

Per ogni objDrive in colDrives strDriveList = strDriveList & objDrive. DriveLetter & Space(10) Next strDrives = LCase(Replace(strDriveList, " ", "", 1, -1)) Set colDrives = objFSO. Drives strDriveList = "" For Each objDrive in colDrives strDriveList = strDriveList & objDrive. DriveLetter & ":\" & Space(5) Avanti

InputMenu()

Sub InputMenu strChoice = InputBox("Inserisci la lettera dell'unità che desideri bloccare." & _ " Oppure digita ALL per bloccare tutte le unità." & _ vbcrlf & vbcrlf & "Unità disponibili" & Space(3) & _ ":" & vbCrLf & vbCrLf & strDriveList, cTitleBarMsg)

Il primo bit di codice genera un elenco di tutte le unità disponibili. La parte successiva è la casella di input in cui inserisci la lettera dell'unità che desideri bloccare.

Se provi a digitare qualcosa tranne una lettera di unità valida, il programma la rifiuterà. Ecco come ho fatto:

If IsEmpty(strChoice) Then

DisplaySplashScreen() ElseIf strChoice = "" Then MsgBox "Non lasciare vuoto.", 16, cTitleBarMsg InputMenu() ElseIf LCase(strChoice) = "all" Then 'Do Nothing ElseIf Len(strChoice) 1 Then MsgBox "Devi inserire la lettera SOLO.", 16, cTitleBarMsg InputMenu() ElseIf Not InStr(1, strDrives, LCase(strChoice), 1) 0 Then MsgBox "Scelta non valida, riprovare.", 16, cTitleBarMsg InputMenu() End If

Le prime due righe controllano se l'utente ha premuto il pulsante Annulla e se l'ha fatto il programma esce.

Le tre righe successive controllano se l'utente ha lasciato vuota l'area di input.

Il resto del codice è piuttosto confuso, ma in pratica si tratta solo di assicurarsi che l'utente abbia digitato un'unità valida.

Fase 4: Making the Drive Lock (parte 3)

Bloccare l'unità (parte 3)
Bloccare l'unità (parte 3)

Per qualche motivo il registro non può leggere da solo la lettera di unità, quindi deve essere inserita in un numero intero corrispondente. Questo è ciò che sta facendo questo codice qui sotto. Per maggiori informazioni su questo clicca qui.

ElseIf strChoice = "a" Then

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

Una volta che l'intero è configurato, lo script può ora scrivere nel registro utilizzando questo codice:

Un'altra nota è che questo programma scrive su HKLM invece di HKCU. HKLM interessa tutti gli utenti anziché solo l'utente attualmente connesso in modo che il blocco sia più efficace.

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"

Passaggio 5: blocco dell'unità

Spero che hai trovato questo instructable utile. se non capisci una parte di questo, per favore pubblica un commento o scrivimi in privato.

E per favore dammi un feedback su eventuali problemi e per favore vota. Ho passato un sacco di tempo su questo.

Se vuoi scaricare il file vbs raw, assicurati che sia salvato con estensione.vbs. Un'altra cosa bella è che è portatile, quindi puoi eseguirlo da un'unità flash e non è necessario installare nulla.

Consigliato: