Précédent   Forum des professionnels en informatique > Systèmes > Windows > Windows Serveur
Windows Serveur Forum d'entraide professionel pour Windows Serveur : NT, 2000, 2003 , Longhorn...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 23/02/2010, 19h12   #1
Membre émérite
 
Avatar de Viduc
 
Inscription : février 2009
Messages : 800
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : février 2009
Messages : 800
Points : 852
Points : 852
Par défaut Installation Imprimante depuis une GPO sur Ordinateur

Bonsoir,

Cette demande à surement déjà été traité mais j'avoue ne rien trouver de concluant sur google et autre...

Je suis en train de préparer un serveur d'impression pour le boulot. Ce serveur va marcher en collaboration avec l'AD, puis à terme une appli web qui sera développée pour la gestion globale.

Dans l'immédiat je cherche à connecter (installer) des imprimantes sur des machines locales en fonction du groupe auquel elles appartiennent. J'ai donc fait un petit script vbs qui est lancé sur toutes les machines du domaine. Au lancement de celles ci, le script va vérifier le ou les groupes de l'ordinateur, récupère ceux concernant les imprimantes et en déduit le ou les noms des imprimantes à connecter. Il ne reste plus qu'à connecter la bonne imprimante depuis le serveur d'impression...

Tout fonctionne en soit sauf que les imprimantes ne se connectent pas.. Bien sure les droits de partage et d'installation sont OK. Si je lance le script depuis une session domaine en autorisant sur le serveur les utilisateurs du domaines à installer ça marche, mais rien ne se passe si le script est lancé via une GPO "ordinateur".

Je pense donc (enfin j'imagine) que l'imprimante se connecte bien mais sous un compte "ordinateur" et donc peut être "system" qui n'ayant pas de profil et bien ... rien en se passe ou en tout cas l'imprimante n'apparait pas pour l'utilisateur...

Voila c'est une question en soit si quelqu'un peut m'éclairer la dessus et m'aider à comprendre...

Je pourrais bien sure mettre le script sur les sessions utilisateurs mais du coup cela nous obligerait à autoriser les utilisateurs à installer des imprimantes ce que l'on ne souhaite pas. J'ai aussi tester le méthode avec pushprinterconnexion mais non, on veut faire une gestion par groupe donc le script est plus pratique...

au cas ou je met mon script:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
'##############################################

'##== DSI Stendhal - Pôle Technique - 2010 ==##

'##==		 Tristan Fleury   		   ==##

'##== 	tristan.fleury@u-grenoble3.fr	   ==##

'##==    Script AD - Recuperation Groupe   ==##			

'##############################################

'##==============================================##
'## Déclaration des variables et objets global ==##
'##==============================================##

Option Explicit
on error resume next

Dim Shell, FSO, WshNetwork

Set Shell = Wscript.CreateObject ("Wscript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshNetwork = CreateObject ("WScript.Network")

Dim objRootLDAP, objGroup, objUser, objOU, objmemberOf
Dim strOU, strComputer, strDNSDomain, strLDAP, strList
Dim Definition_Groupe, obj_Definition_Groupe, Groupe, Imprimante_Groupe, PrinterPath
Dim Computer, Fichier_Log, Serveur_Imp, test

Const ForReading = 1, ForWriting = 2, ForAppending = 8

Serveur_Imp = "SERVPRINT"  
Computer = Shell.ExpandEnvironmentStrings ("%COMPUTERNAME%")
Set Fichier_Log = FSO.OpenTextFile("c:\test.txt", ForAppending,true)

'##==================================##
'##== Connexion à Active Directory ==##
'##==================================##

Set objRootLDAP = GetObject("LDAP://RootDSE")
strDNSDomain = objRootLDAP.Get("DefaultNamingContext")

'##====================================================##
'##== Construction et récupération du DN sur le LDAP ==##
'##====================================================##

strComputer = "cn=" & Computer & ","
strOU ="CN=Computers,"
strLDAP ="LDAP://" & strComputer & strOU & strDNSDomain

Set objUser = GetObject(strLDAP)

'##============================================================##
'##== Récupération des groupes auquels appartient la machine ==##
'##============================================================##

			
objmemberOf  = objUser.GetEx("memberOf")
For Each objGroup in objmemberOf
	Definition_Groupe = Split(objGroup, ",")
	For Each obj_Definition_Groupe in Definition_Groupe
		Groupe = Split(obj_Definition_Groupe,"=")
		if Groupe(0)="CN" Then
			Imprimante_Groupe = Split(Groupe(1), "_")
			if Imprimante_Groupe(0)="Imp" Then				
				PrinterPath = "\\" & Serveur_Imp & "\" & Imprimante_Groupe(1)
				WshNetwork.RemovePrinterConnection PrinterPath, true, true
				test = WshNetwork.AddwindowsPrinterConnection (PrinterPath)
				MsgBox(test)
				Fichier_Log.writeline(date & " Connection Imprimante " & Imprimante_Groupe(1) & " réussie")
			end if
		end if
	Next
Next



WScript.Quit
Viduc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 03h10   #2
Membre émérite
 
Inscription : janvier 2007
Messages : 950
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 950
Points : 914
Points : 914
Ce qui suit n'engage que moi mais :

une imprimante réseau n'est pas installée sur un PC mais sur un compte utilisateur. Exemple : tu prends un PC, tu te connectes dessus avec le login User1 et tu installes l'imprimante sur le PC. Ensuite tu te connectes avec le login User2 et tu installes l'imprimante 2 sur le PC. l'utilisateur User1 ne verra pas l'imprimante 2 et l'utilisateur User2 ne verra pas l'imprimante 1.

Conclusion : si tu veux jouer un script d'installation d'imprimante tu dois nécessairement jouer le script en tant que script d'ouverture de session (logon script) dans une GPO utilisateur et non pas ordinateur.

Ca explique pourquoi ton script fonctionne depuis une session - parce que justement il FAUT avoir une session ouverte.

Apres je n'ai pas trop lu le script, ca a l'air un ptit peu compliqué, mais je suppose que si il marche depuis une session utilisateur il marchera dans ta GPO utilisateur.
Flamby38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 20h45   #3
Membre émérite
 
Avatar de Viduc
 
Inscription : février 2009
Messages : 800
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : février 2009
Messages : 800
Points : 852
Points : 852
Salut et merci à toi! tu avais vu juste, en faite j'en suis arrivé à la même conclusion cette AM et au final ça marche...

Ce que j'ai fait c'est que je met le script à l'ouverture de session utilisateurs, et je met en droit sur les imprimantes les groupes correspondant en virant les utilsateurs. Du coup quand tu es sur une machine qui est dans un groupe, tu peux "mapper" (oui car en effet ce n'est pas une installe) l'imprimante mais que celle la... les autres impossible... donc c'est nickel

merci encore
Viduc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 01h35.


 
 
 
 
Partenaires

Hébergement Web