Kazalo:

Zaklepanje pogona VBScript: 5 korakov
Zaklepanje pogona VBScript: 5 korakov

Video: Zaklepanje pogona VBScript: 5 korakov

Video: Zaklepanje pogona VBScript: 5 korakov
Video: rEFInd: Как загрузить любую операционную систему на Mac 2024, November
Anonim
Zaklepanje pogona VBScript
Zaklepanje pogona VBScript
Zaklepanje pogona VBScript
Zaklepanje pogona VBScript

Posodobitev: Ta program lahko zdaj skrije določene zaklenjene pogone

Ko sem zaklenil zaslon, ki zaklene uporabniški računalnik, sem se odločil sprejeti izziv, da zaklenem pogon, ki zaklene pogon.

Vsi včasih želimo uporabnikom preprečiti dostop do pogona (zlasti pogona USB). Tako bo ta program zaklenil pogon, da nepooblaščenim uporabnikom prepreči dostop do njega.

Za razliko od mojega zaklepanja zaslona je ta skript precej zapleten. Predvsem zato, ker sem dodal toliko if -jev in potem samo zato, da programu dam profesionalni občutek.

Ta program je bil narejen v VBScript. V naslednjih nekaj korakih vam bom pokazal, kako mi je uspelo.

Korak: Moj program…

Moj program…
Moj program…

Spodaj lahko prenesete mojo ključavnico za Drive:

Tukaj je surova datoteka VBScript LINK. Na koncu boste morali odstraniti eno od 's', tako da je 'DriveLock.vbs' ali karkoli želite, če se konča v.vbs.

2. korak: Zaklepanje pogona (1. del)

Zaklepanje pogona (1. del)
Zaklepanje pogona (1. del)
Zaklepanje pogona (1. del)
Zaklepanje pogona (1. del)

Tukaj vam bom pokazal prvi del ključavnice pogona … Prva slika je tisto, kar se pojavi, ko prvič zaženete program.

Uspelo mi je, da imate tukaj tri možnosti: zaklepanje pogona, odklepanje pogonov ali izhod.

Zdaj sem naredil tako:

Funkcija DisplayPrompt () intSplash = MsgBox ("Kaj bi radi storili?" & VbCrLf & vbCrLf _ & "[Kliknite na DA, da zaklenete pogon]" & vbCrLf _ & "[Kliknite NE za odklepanje pogonov (diskov)] ", 35, cTitleBarMsg) Če je intSplash = 2, potem DisplaySplashScreen () ElseIf intSplash = 7 Potem vklopi Napaka Nadaljuj Naprej objWshShl. RegDelete" HKLM / Software / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoViewOnDshDeWeDLV " / Microsoft / Windows / CurrentVersion / Policies / Explorer / NoDrives "Če je Err. Number 0 Potem je MsgBox" Pogoni že odklenjeni. ", 16, cTitleBarMsg DisplayPrompt () Konec pri napaki Pojdi na 0 objWshShl. Run" Opravilo opravil /f /im explorer.exe ", 0 WScript. Sleep 300 objWshShl. Run" cmd /c explorer.exe ", 0 MsgBox" Odklenjen pogon je bil uspešen! ", 64, cTitleBarMsg DisplayPrompt () Konec funkcije End

Če kliknete NE, da odklenete pogone, izbrišejo registrske ključe, ki vsebujejo nastavitve, ki zaklenejo/skrijejo pogon, ki ga tudi preveri, ali je pogon že odklenjen. Nato znova zažene explorer.exe, tako da spremembe začnejo veljati takoj.

Če kliknete preklic, se prikaže začetni zaslon in nato zapre.

Nazadnje, če kliknete DA, se pomaknete na naslednji meni. Kar bom razložil v naslednjem koraku.

3. korak: Zaklepanje pogona (2. del)

Zaklepanje pogona (2. del)
Zaklepanje pogona (2. del)
Zaklepanje pogona (2. del)
Zaklepanje pogona (2. del)

Nato vam bom pokazal meni, kjer ste izbrali čarovniški pogon, ki ga želite zakleniti (slika 1).

Nastavi colDrives = objFSO. Drives

Za vsak objDrive v colDrives strDriveList = strDriveList & objDrive. DriveLetter & Space (10) Naslednji strDrives = LCase (Replace (strDriveList, "", "", 1, -1)) Set colDrives = objFSO. Drives strDriveList = " objDrive v colDrives strDriveList = strDriveList & objDrive. DriveLetter & ": \" & Space (5) Naprej

InputMenu ()

Sub InputMenu strChoice = InputBox ("Vnesite črko pogona, ki ga želite zakleniti." & _ "Ali vnesite VSE, da zaklenete vse pogone." & _ Vbcrlf & vbcrlf & "Razpoložljivi pogoni" & Space (3) & _ ":" & vbCrLf & vbCrLf & strDriveList, cTitleBarMsg)

Prvi del kode ustvari seznam vseh razpoložljivih pogonov. Naslednji del je polje za vnos, v katerega vnesete črko pogona, ki ga želite zakleniti.

Če poskusite vnesti karkoli, razen veljavne črke pogona, bo program to zavrnil. Evo, kako sem to naredil:

Če je IsEmpty (strChoice) Potem

DisplaySplashScreen () ElseIf strChoice = "" Potem MsgBox "Ne pusti tega polja prazno.", 16, cTitleBarMsg InputMenu () ElseIf LCase (strChoice) = "all" Potem 'Ne naredi nič drugegaIn Len (strChoice) 1 Potem morate vnesti MsgBox " črka SAMO. ", 16, cTitleBarMsg InputMenu () ElseIf Not InStr (1, strDrives, LCase (strChoice), 1) 0 Potem MsgBox" Neveljavna izbira, poskusite znova. ", 16, cTitleBarMsg InputMenu () End If

Prvi dve vrstici preverita, ali je uporabnik pritisnil gumb za preklic in ali je program zapustil.

Naslednje tri vrstice preverijo, ali je uporabnik polje za vnos pustil prazno.

Preostala koda je precej zmedena, vendar v bistvu le poskrbi, da je uporabnik vnesel veljaven pogon.

4. korak: Zaklepanje pogona (3. del)

Zaklepanje pogona (3. del)
Zaklepanje pogona (3. del)

Register iz nekega razloga ne more prebrati črke pogona, zato ga je treba vnesti v ustrezno celo število. To počne spodnja koda. Za več informacij o tem kliknite tukaj.

ElseIf strChoice = "a" Potem

intDriveNumber = 1 ElseIf strChoice = "b" Potem intDriveNumber = 2 ElseIf strChoice = "c" Nato intDriveNumber = 4

Ko je celo število konfigurirano, lahko skript zdaj piše v register s to kodo:

Druga opomba je, da ta program namesto HKCU piše v HKLM. HKLM vpliva na vse uporabnike namesto na trenutno prijavljenega, tako da je zaklepanje učinkovitejše.

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. korak: Zaklepanje pogona

Upam, da vam je bilo to navodilo v pomoč. če ne razumete dela tega, napišite komentar ali mi pišite.

Prosim, dajte mi povratne informacije o morebitnih težavah in ocenite. Za to sem porabil veliko časa.

Če želite prenesti surovo datoteko vbs, se prepričajte, da je shranjena s pripono datoteke.vbs. Še ena dobra stvar pri tem je, da je prenosna, tako da jo lahko zaženete z bliskovnega pogona in vam ni treba ničesar namestiti.

Priporočena: