Automatyczna dezaktywacja przydziałów sieciowych

Skrypt VB, w połączeniu z Windows Scripting Host, nie pozwoli nam zapomnieć o udostępnionych folderach. Zarówno w przypadku Windows XP, jak i Windows Vista skrypt po uruchomieniu sprawdza wszystkie udostępnione foldery, a następnie dezaktywuje je, uprzednio pytając nas o zgodę.
Na życzenie skrypt usunie niepotrzebnie udostępnione przydziały systemowe.
Na życzenie skrypt usunie niepotrzebnie udostępnione przydziały systemowe.

Wpisanie skryptu zapytania

Listing wykorzystuje Active Directory Service Interface (ADSI), komponent systemów XP oraz Vista odpowiedzialny za dostęp do usług folderów. Skrypt sprawdza kolejne udostępnione tam foldery. Do utworzenia skryptu wystarczy dowolny edytor tekstu, np. Notatnik. Plik zapisujemy jako »Zamknprzydzialow.vbs«.

Option Explicit
dim objNetwork, objLanman, objShare
dim zComputerName, zMessage
dim intCount
On Error Resume Next
intCount = 0
set objNetwork = CreateObject(“Wscript.Network”)
zComputerName = objNetwork.ComputerName
set objLanman = GetObject(“WinNT://” & zComputerName & “/LanmanServer”)
for each objShare in objLanman
zMessage = “Czy przydział ” & objShare.path & ” (” & objShare.name & “) ma zostać usunięty?”
if err.number = 0 then
intCount = intCount + 1
if Msgbox(zMessage,vbYesNo) = vbYes then
objLanman.Delete “fileshare”, objShare.Name
end if
end if
next
if intCount = 0 then
zMessage = “Na ” & zComputerName & “nie znaleziono udostępnionych folderów!”
Msgbox(szMessage)
end if
set objNetwork = nothing
set objLanman = nothing
set objShare = nothing
WScript.Quit

Konfiguracja Autostartu

Umieszczając skrót do skryptu w folderze »Autostart«, sprawimy, że Windows będzie uruchamiał skrypt automatycznie podczas startu systemu operacyjnego.  W tym celu wybieramy »Start | Wszystkie programy«, następnie klikamy prawym przyciskiem myszy »Autostart«, po czym w menu kontekstowym wybieramy polecenie »Otwórz«. W Eksploratorze Windows klikamy prawym przyciskiem myszy w jakiekolwiek wolne miejsce po prawej stronie okna, po czym wybieramy polecenie »Nowy | Skrót«. Teraz wpisujemy »cscript.exe«, następnie spację, pełną nazwę oraz ścieżkę dostępu do zapisanego pliku VBS i klikamy przycisk »Dalej«. Na kolejnej stronie wpisujemy odpowiednią nazwę dla skrótu i zamykamy okno, klikając przycisk »Zakończ«. Skrypt musi zostać uruchomiony przez system Windows z prawami administratora. W tym celu w przypadku Windows Vista ponownie klikamy prawym przyciskiem myszy ikonę nowego skrótu i wybieramy polecenie »Właściwości«. W zakładce »Skrót« klikamy przycisk »Zaawansowane«, następnie aktywujemy opcję »Uruchom jako administrator«. Uruchomienie skryptu musimy w przyszłości najpierw autoryzować, wybierając konto z uprawnieniami administratora oraz podając odpowiednie hasło. W przypadku Windows XP wystarczy, aby skrypt był uruchamiany z konta posiadającego prawa administratora.

Sposób działania skryptu

Skrypt wykorzystuje obiekt »objLanman« jako wskaźnik dla usługi ASDI. Ponieważ skrypt wymaga podania nazwy komputera, zostaje utworzony obiekt »objNetwork« typu »Wscript.Network«, po czym jego właściwość »ComputerName« zostaje zapisana w zmiennej »zComputerName«. Teraz skrypt może utworzyć element »objLanman«. Skrypt wykorzystuje jako typ wartość »”WinNT://” & zComputerName & “/LanmanServer”«. »objLanman« wskazuje w przypadku każdego udostępnionego folderu na obiekt »objShare«. Obiekty te są przeglądane przez skrypt przy pomocy pętli »for each«, a następnie udostępnione foldery zostają usunięte poprzez wywołanie »Delete “fileshare”, objShare.name« dla »objLanman«. Dzięki skryptowi – a dokładnie »Msgbox« – unikniemy przypadkowego usunięcia ważnych udostępnionych folderów, ponieważ będziemy proszeni o zatwierdzenie usunięcia udziału.