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
(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
Komentáře