Cliquez ici pour plus d'informations Index

Mon CV
Mon Labo
        Web
        Bureautique
        Graphisme
        Administration réseau
Contacts
Livre d'or










Index - Laboratoire - Administration - Script de logon en vbs

Voici un script de connexion (logon) prêt à l’emploi.
Il doit s'exécuter à l'ouverture de session, si possible avant l'affichage du bureau. Voir ma technique.

Set WshNet = CreateObject("WScript.Network") User = WshNet.Username Serveur = wshNet.ComputerName Set Sh = CreateObject("WScript.Shell") clientname = Sh.ExpandEnvironmentStrings("%CLIENTNAME%") Set ShReg = WScript.CreateObject("WScript.Shell") Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set objFSO = CreateObject("Scripting.FileSystemObject" ) WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" " WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" ################################" WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" # EXEMPLE DE LOGON #" WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" # HTTP://DEZELEE.COM #" WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" ################################" WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" " WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Bonjour " & User 'Pour un serveur TSE utilisez "Serveur" comme nom de serveur et "clientname" comme nom de machine client WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Vous êtes connecté sur le serveur " & Serveur WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Depuis l'ordinateur " & clientname 'Pour un script classique utilisez "Serveur" comme nom de machine client WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Depuis l'ordinateur " & Serveur WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" " '################ CREATION LECTEURS RESEAU ################## Set objShell = CreateObject("Shell.Application") 'Connecter "Mes documents" de l'utilisateur WshNet.MapNetworkDrive "M:","\\[VOTRE SERVEUR]\[PARTAGE DES DOSSIERS UTILISATEURS]\" &User objShell.NameSpace("M:").Self.Name ="Mes Documents" ' Renome le lecteur par defaut '################ GROUPES ################## WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Ajout des droits suivants :" Dim objNetwork, objUser, CurrentUser Dim strGroup 'Lecture des groupes auquels appartient l'utilisateur qui se connecte Set objNetwork = CreateObject("WScript.Network") Set objUser = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & objUser.UserName) strGroup = "vide" On Error Resume Next strGroup = LCase(Join(CurrentUser.MemberOf)) 'WScript.Echo strGroup '################ PREMIER GROUPE ################## If InStr(strGroup, lcase("NOM DU GROUPE")) Then ' Remplissez le nom du premier groupe à detecter WScript.Echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" - DESCRIPTION CORRESPONDANT AU GROUPE" 'Action a effectuer WshNet.MapNetworkDrive "F:","\\[SERVEUR]\[PARTAGE]" 'mappage d'un lecteur reseau objShell.NameSpace("F:").Self.Name ="[NOM DU LECTEUR]" ' Renome le lecteur End If '################ DEUXIEME GROUPE ################## If InStr(strGroup, lcase("NOM DU GROUPE")) Then ' Remplissez le nom du groupe suivant à detecter WScript.Echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" - DESCRIPTION CORRESPONDANT AU GROUPE" WshNet.MapNetworkDrive "G:","\\[SERVEUR]\[PARTAGE]" 'mappage d'un lecteur reseau objShell.NameSpace("G:").Self.Name ="[NOM DU LECTEUR]" ' Renome le lecteur objFSO.CopyFile "\\[SERVEUR]\[PARTAGE]\[FICHIER]" , "c:\Documents and Settings\"&User&"\Bureau\[FICHIER]" 'Copie un fichier sur le bureau de l'utilisateur (par exemple un raccourcis) End If WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" " '################ IMPRIMANTES ################## 'Purge des imprimantes Set oPrinters = WshNet.EnumPrinterConnections WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Purge des imprimantes" For i = 0 to oPrinters.Count - 1 Step 2 On Error Resume Next WshNet.RemovePrinterConnection oPrinters.Item(i+1), true, true Next 'Cette partie de script permet d'attribuer des imprimantes communes à tout les utilisateurs WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Connexion des imprimantes ..." WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" - Imprimantes par defaut" Dim text, readfile, contents set readfile = objFSO.OpenTextFile("\\[SERVEUR]\[PARTAGE]\\_defaut.txt", 1, false) 'Localisation de la liste d'imprimantes par defaut WScript.StdOut.Write Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" " do while readfile.AtEndOfStream=false contents = readfile.ReadLine On Error Resume Next WshNet.AddwindowsPrinterConnection (contents) ' On connecte l'imprimante If Err.Number <> 0 Then ' Si la connexion n'a pas pu se faire on affiche un message d'erreur WScript.StdOut.Write "ERREUR ! " else 'Sinon c'est OK WScript.StdOut.Write "OK " end if loop readfile.close WScript.echo " " ' Cette partie permet de connecter des imprimantes par rapport au nom de la machine WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" - Imprimantes liées au poste " & Serveur 'utiliser "clientname" pour du TSE Set objFSO = CreateObject("Scripting.FileSystemObject" ) if objFSO.FileExists("\\[SERVEUR]\[PARTAGE]\" &Serveur&".txt") then 'Si le fichier de configuration existe sur le serveur, le script connecte les imprimantes Set objFile = objFSO.GetFile("\\dl-srv-data\Profils$\_All User\Script de logon\imprimantes\" &Serveur&".txt") if objFile.Size <> 0 then 'Si le fichier n'est pas vide set readfile = objFSO.OpenTextFile("\\dl-srv-data\Profils$\_All User\Script de logon\imprimantes\" &Serveur&".txt", 1, false) WScript.StdOut.Write Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" " do while readfile.AtEndOfStream=false 'Tant que la fin du fichier n'est pas atteinte contents = readfile.ReadLine contents=Split(contents,";") 'On decoupe les lignes avec le caractere ";" On Error Resume Next WshNet.AddwindowsPrinterConnection (contents(0))'On connecte l'imprimante If Err.Number <> 0 Then' Si la connexion n'a pas pu se faire on affiche un message d'erreur WScript.StdOut.Write "ERREUR ! " else 'Si la connection a réussi if InStr(contents(1), lcase("Defaut")) then WshNet.SetDefaultPrinter contents(0) 'On defini l'imprimante par defaut si c'est indiqué dans le fichier WScript.StdOut.Write "OK " end if loop readfile.close WScript.echo " " else WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Aucune imprimante n'est définie pour ce poste." 'Si le fichier est vide on affiche un message d'erreur f.writeline("Aucune imprimante définie pour ce poste") end if else WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Aucune imprimante n'est définie pour ce poste."'Si le fichier n'existe pas on affiche un message d'erreur f.writeline("Aucune imprimante définie pour ce poste") Set Fimprimante = objFSO.OpenTextFile("\\[SERVEUR]\[PARTAGE]\" &Serveur&".txt", ForAppending, True)'Si le fichier n'existe pas on le creer sur le serveur pour pouvoir le remplir Fimprimante.close end if WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" " '########### FIN ######################### WScript.echo Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)&" Fin du script de connexion, Chargement du bureau" Wscript.Sleep 2000


Contenu du fichier de configuration des imprimantes par défaut "_defaut.txt" :
\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 1]
\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 2]
\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 3]
\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 4]

Le fichier de configuration du poste client doit être rempli de la même façon.
Pour définir une imprimante par défaut il faut ajouter ";Defaut" âpres le nom de l'imprimante. De la façon suivante : (peut importe la position de l'imprimante)


\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 1]
\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 2];Defaut
\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 3]
\\[SERVEUR]\[NOM DE PARTAGE DE L'IMPRIMANTE 4]

Voila à quoi ressemble le script après personnalisation :

Pour un utilisateur avec très peut de droits :




Pour un utilisateur avec d'avantages de droits :



Vous avez des commentaires, des remarques ?



MySQL PHP HTML Valide ! CSS Valide ! 100% compatible FireFox 1024*768 mini
page exécutée en 775ms
pr-chargement des images