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 ?
|
|
|