:::: MENU ::::

VBS LoginScript mapování disků a tiskáren pomocí AD skupin

Pokud potřebujete u uživatelů během přihlašování mapovat sdílené disky nebo tiskárny dle AD skupin, do kterých jsou uživatelé přiřazeni a zobrazovat samotný stav mapování, je možné použít wbs script pro samotné přihlášení a html stránku pro zobrazování stavu. Ukázková tvorba přihlašovacího vbs scriptu: Ukázka spočívá v mapování centrální tiskárny a disků X: Y: pro všechny uživatele Domain Users a disku T: s jiným umístěním pro uživatele G_CZ_Production a G_CZ_Sales.

VBS LoginScript mapování disků a tiskáren pomocí AD skupin s grafickým rozhraním

alt

(obsah souboru login.vbs)

  On Error Resume Next Dim WshNetwork, asdPath, User Dim strMappedDrives, strStatus Dim IE  Const ADS_READONLY_SERVER = 4   ' Zobrazeni IE status window  Call CreateIE() strStatus = "Logon Script v1.0 " & Date() ie.document.all.wstatus.InnerText = strMsg3  ' Ziskani Username  Set WSHNetwork = WScript.CreateObject("WScript.Network") strUser = "" While strUser = ""     strUser = WSHNetwork.UserName Wend  ie.document.all.Msg1.InnerText = strUser   ' ----------------------------------------------------------- ' --- Zrušení kontroly signatury u exe files ---------------- ' ----------------------------------------------------------- Set Shell = CreateObject("Wscript.Shell") Shell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Download\CheckExeSignatures","no","REG_SZ" Shell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Download\RunInvalidSignatures","1","REG_DWORD"  ' ----------------------------------------------------------- ' --- Mapování tiskárny \\server\Phaser8560 ' ----------------------------------------------------------- Set Wshnetwork = CreateObject("WScript.Network") WshNetwork.addwindowsPrinterConnection "\\server\Phaser8560" WshNetwork.SetDefaultprinter "\\server\Phaser8560" strpl = "Xerox Phaser 8560" ie.document.all.Msg2.InnerText = strpl ' ----------------------------------------------------------- ' --- Odmapování síťových disků X: Y: T ' -----------------------------------------------------------  Set Apl = WScript.CreateObject("WScript.Shell") Apl.Run "net use x: /delete", 7 Apl.Run "net use y: /delete", 7 Apl.Run "net use t: /delete", 7 strpl = "done..." ie.document.all.Msg3.InnerText = strpl ' -----------------------------------------------------------  call main()  strStatus = strStatus & vbCRLF & "Network Logon Complete..." ie.document.all.wstatus.InnerText = strStatus   ' Zavreni IE Status window  If not ie.document.all.holdit.checked Then Wscript.Sleep 600     ie.quit() End if  ' Konec LogOn Scriptu  Public Sub Main()  ' ----------------------------------------------------------- ' --- WinNT://pantherstudio.local změňte na název domény ' -----------------------------------------------------------    'Main loop to detect group that user belongs to   adsPath = "WinNT://pantherstudio.local/" & strUser   Set dso = GetObject("WinNT:")   Set objUser = dso.OpenDSObject(adsPath,"","", ADS_READONLY_SERVER)   For Each Prop In objUser.groups     Select Case Prop.Name  ' ----------------------------------------------------------- ' --- Ověřování uživatelů bude na základě skupin Domain Users, G_CZ_Production, G_CZ_Sales ' -----------------------------------------------------------        Case "Domain Users"         Call DomainUsers()                Case "G_CZ_Production"         Call Production()         Case "G_CZ_Sales"         Call Sales()        'etc     End Select   Next 'Prop     End Sub ' ---------------------------- 'Mapování disku Y: X: pro uživatele skupiny Domain Users ' ---------------------------- Sub DomainUsers()    strStatus = strStatus & vbCRLF & "Member of Domain Users..."   ie.document.all.wstatus.InnerText = strStatus    MapDrive "X:", "\\pantherstudio.local\images"   MapDrive "Y:", "\\pantherstudio.local\shared" End Sub ' ---------------------------- ' Mapování disku T: pro uživatele skupiny G_CZ_Production ' ---------------------------- Sub Production()    strStatus = strStatus & vbCRLF & "Member of Production..."   ie.document.all.wstatus.InnerText = strStatus    MapDrive "T:", "\\server\FTP_Production" End Sub  ' ---------------------------- ' Mapování disku T: pro uživatele skupiny G_CZ_Sales ' ---------------------------- Sub Sales()    strStatus = strStatus & vbCRLF & "Member of Production..."   ie.document.all.wstatus.InnerText = strStatus    MapDrive "T:", "\\server\FTP_Sales" End Sub  ' ---------------------------- ' Spuštění grafického zobrazení, opravte skutečnou cestu k souboru login.htm, Wscript.Sleep 1200= čas zpoždění scriptu ' ---------------------------- Sub CreateIE()    On Error Resume Next   Set IE = CreateObject("InternetExplorer.Application")   With IE     .navigate "\\server\shared\LoginScript\login.htm"     .resizable=0     .height=332     .width=307     .menubar=0     .toolbar=0     .statusBar=0     .visible=1   End With   Do while ie.Busy     ' wait for page to load     Wscript.Sleep 1200   Loop  End Sub ' ----------------------------------------------------------- Sub MapDrive(strDrive,strShare)      On Error Resume Next     WSHNetwork.MapNetworkDrive strDrive, strShare      If Err.Number Then          WSHNetwork.RemoveNetworkDrive strDrive         WSHNetwork.MapNetworkDrive strDrive, strShare      End If      strMappedDrives = strMappedDrives & strDrive & " "     ie.document.all.Msg4.InnerText = strMappedDrives  End Sub

Hotovou ukázku si stáhněte zde


Komentáře