wtorek, 1 października 2013

Mapowanie udziału sieciowego - Skrypty VBS cz.2

W wielu firmach pracownicy pracują na plikach, które udostępniane są wprost z dysków serwera. Oczywiście, na początku musimy jakoś dostać się do serwera, najprościej jest zmapować dysk w postaci ikony w Mój Komputer, można robić to ręcznie lub też automatycznie poprzez skrypt.

Poniższa wersja dotyczy sytuacji, w której komputer nie jest dodany do domeny, przydatny w sytuacji gdy "ktoś" z zewnątrz przychodzi do firmy i potrzebuje mieć dostęp do firmowych plików:

Option Explicit

Dim objNetwork
Dim objShell
Dim desktopLink
Dim objSpace
Dim userDesktop
Dim strLocalDrive
Dim strRemoteShare
Dim strUsr
Dim strPas
Dim strPer
Dim strPath


Set objNetwork = WScript.CreateObject("WScript.Network")
Set objSpace = CreateObject("Shell.Application")
Set objShell = CreateObject("Wscript.Shell")
userDesktop = objShell.SpecialFolders("Desktop")

strLocalDrive = "H:"
strRemoteShare = InputBox("Podaj ścieżkę do plików, \\NazwaServera\NazwaKatalogu")
strUsr = InputBox("Podaj login")
strPas = InputBox("Podaj hasło")
objNetwork.MapNetworkDrive strLocalDrive, strRemoteShare, strPer, strUsr, strPas
objSpace.NameSpace(strLocalDrive).Self.Name = "Pliki"

set desktopLink = objShell.CreateShortcut(userDesktop & "\Pliki.lnk")
desktopLink.TargetPath = strLocalDrive
desktopLink.Save
Wscript.Echo("Utworzono udział:" & strLocalDrive) 

Po jego uruchomieniu zostanie podpięty ten udział. Problemem jest to że po wylogowaniu ten udział zostanie odmontowany. Automatyczne montowanie można uzyskać dodając taki skrypt poprzez GPO do węzła Skrypty(Logowania/Wylogowywania). Oczywiście skrypty muszą być używane z umiarem, aby nie przydłużać procesu logowania na stacje. 

Podobnie można zrobić w przypadku  gdy komputer dodany jest do domeny:

Option Explicit
On error resume next

Dim objNetwork
Dim objShell
Dim appShell
Dim userLink
Dim strLocalDrive
Dim strRemoteShare

Set objNetwork = CreateObject("Wscript.Network")
Set objShell = CreateObject("Wscript.Shell")
Set appShell = CreateObject("Shell.Application")
userDesktop = objShell.SpecialFolders("Desktop")

strLocalDrive = "h:"
strRemoteShare = InputBox("Podaj ścieżkę do plików, \\nazwaServera\NazwaUdziału")

objNetwork.MapNetworkDrive strLocalDrive,strRemoteShare
appShell.NameSpace(strLocalDive).Self.Name = "Pliki"

W tym przypadku nie musimy podawać hasła do konta, które ma wystarczające uprawnienia, aby dodać udział sieciowy dla konkretnej maszyny.






Brak komentarzy:

Prześlij komentarz