Obsah:

Zámek jednotky VBScript: 5 kroků
Zámek jednotky VBScript: 5 kroků

Video: Zámek jednotky VBScript: 5 kroků

Video: Zámek jednotky VBScript: 5 kroků
Video: MI-POA Přednáška-11 (2016) 2024, Listopad
Anonim
Zámek jednotky VBScript
Zámek jednotky VBScript
Zámek jednotky VBScript
Zámek jednotky VBScript

Aktualizace: Tento program má nyní schopnost skrýt zadané uzamčené jednotky

Poté, co jsem udělal zámek obrazovky, který uzamkne počítač uživatelů, rozhodl jsem se přijmout výzvu vytvořit zámek disku, který uzamkne disk.

Všichni někdy chceme udržet uživatele mimo disk (zejména USB disk). Tento program tedy uzamkne disk, aby zabránil přístupu neoprávněných uživatelů k němu.

Na rozdíl od zámku obrazovky je tento skript dost komplikovaný. Hlavně proto, že jsem přidal tolik if a pak je to jen proto, abych naprogramoval profesionální pocit.

Tento program byl vytvořen ve VBScriptu. V následujících krocích vám ukážu, jak jsem ho vytvořil.

Krok 1: Můj program…

Můj program…
Můj program…

Můj zámek disku si můžete stáhnout níže:

Zde je surový soubor VBScript LINK. Na konci budete muset odstranit jedno z písmen „s“, aby se jednalo o „DriveLock.vbs“nebo cokoli jiného, pokud končí ve formátu.vbs.

Krok 2: Provedení zámku disku (část 1)

Nastavení zámku disku (část 1)
Nastavení zámku disku (část 1)
Nastavení zámku disku (část 1)
Nastavení zámku disku (část 1)

Zde vám ukážu první část zámku disku … První obrázek je to, co se objeví při prvním spuštění programu.

Dokázal jsem to, takže zde máte tři možnosti, zamknout disk, odemknout disk nebo ukončit.

Zde je návod, jak jsem to udělal:

Funkce DisplayPrompt () intSplash = MsgBox („Co byste chtěli dělat?“& VbCrLf & vbCrLf _ & „[Kliknutím na ANO zamknete disk]“& vbCrLf _ & „[Kliknutím na NE odemknete disk (y)] ", 35, cTitleBarMsg) If intSplash = 2 Then DisplaySplashScreen () ElseIf intSplash = 7 Then On Error Resume Další objWshShl. RegDelete" HKLM / Software / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoViewOnDrive "objWshSete. HeG / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoDrives "If Err. Number 0 Then MsgBox" Drives are already unlocked. ", 16, cTitleBarMsg DisplayPrompt () End If On Error Přejít 0 objWshShl. Run" Taskkill /f /im explorer.exe ", 0 WScript. Sleep 300 objWshShl. Run" cmd /c explorer.exe ", 0 MsgBox" Drive unlocked was successcesl! ", 64, cTitleBarMsg DisplayPrompt () End If End Funkce

Pokud klepnutím na NE odemknete jednotku (y), odstraní to klíče registru, které obsahují nastavení, která zamkne/skryje jednotku a také zkontroluje, zda je jednotka již odemčena. Poté restartuje explorer.exe, aby se změny projevily okamžitě.

Pokud kliknete na Storno, zobrazí se úvodní obrazovka a poté se ukončí.

Nakonec, když kliknete na ANO, přejde do další nabídky. Což vysvětlím v dalším kroku.

Krok 3: Provedení zámku disku (část 2)

Nastavení zámku disku (část 2)
Nastavení zámku disku (část 2)
Nastavení zámku disku (část 2)
Nastavení zámku disku (část 2)

Dále vám ukážu nabídku, kde jste si vybrali čarodějnický pohon, který chcete zamknout (obr. 1).

Nastavit colDrives = objFSO. Drives

Pro každý objDrive v colDrives strDriveList = strDriveList & objDrive. DriveLetter & Space (10) Další strDrives = LCase (Nahradit (strDriveList, "", "", 1, -1)) Nastavit colDrives = objFSO. Drives strDriveList = "" Pro každý objDrive v colDrives strDriveList = strDriveList & objDrive. DriveLetter & ": \" & Space (5) Další

InputMenu ()

Sub InputMenu strChoice = InputBox ("Zadejte písmeno jednotky, kterou chcete zamknout." & _ "Nebo zadejte ALL pro zamknutí všech jednotek." & _ Vbcrlf & vbcrlf & "Dostupné jednotky" & Space (3) & _ ":" & vbCrLf & vbCrLf & strDriveList, cTitleBarMsg)

První bit kódu vygeneruje seznam všech dostupných jednotek. Další částí je vstupní pole, kde jste zadali písmeno jednotky, kterou chcete zamknout.

Pokud se pokusíte zadat cokoli jiného než platné písmeno jednotky, program to odmítne. Zde je návod, jak jsem to udělal:

If IsEmpty (strChoice) Then

DisplaySplashScreen () ElseIf strChoice = "" Then MsgBox "Nenechávejte toto prázdné.", 16, cTitleBarMsg InputMenu () ElseIf LCase (strChoice) = "all" Then 'Do nothing ElseIf Len (strChoice) 1 Then MsgBox "Musíte zadat písmeno POUZE. ", 16, cTitleBarMsg InputMenu () ElseIf Not InStr (1, strDrives, LCase (strChoice), 1) 0 Then MsgBox" Invalid selection, please try again. ", 16, cTitleBarMsg InputMenu () End If

První dva řádky kontrolují, zda uživatel stiskl tlačítko Storno a zda program ukončil.

Další tři řádky kontrolují, zda uživatel ponechal vstupní oblast prázdnou.

Zbytek kódu je docela matoucí, ale v zásadě jde pouze o to, aby uživatel zadal platný disk.

Krok 4: Provedení zámku disku (část 3)

Nastavení zámku disku (část 3)
Nastavení zámku disku (část 3)

Z nějakého důvodu registr nemůže přečíst pouze písmeno jednotky, takže musí být vloženo do odpovídajícího celého čísla. K tomu slouží níže uvedený kód. Pro více informací o tomto klikněte zde.

ElseIf strChoice = "a" Potom

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

Jakmile je celé číslo nakonfigurováno, skript nyní může zapisovat do registru pomocí tohoto kódu:

Další poznámkou je, že tento program zapisuje do HKLM místo HKCU. HKLM ovlivňuje všechny uživatele namísto pouze aktuálně přihlášeného uživatele, aby byl zámek účinnější.

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"

Krok 5: Drive Lock

Doufám, že vám tento návod pomohl. pokud nerozumíte části tohoto článku, napište komentář nebo mi napište.

A prosím, dejte mi zpětnou vazbu o jakýchkoli problémech a prosím ohodnoťte. Strávil jsem nad tím hodně času.

Pokud si chcete stáhnout surový soubor vbs, ujistěte se, že je uložen s příponou.vbs. Další pěkná věc na tom je, že je přenosný, takže jej můžete spustit z flash disku a nemusíte nic instalovat.

Doporučuje: