Imprimante reseau et profils

Imprimante reseau et profils - Windows & Software

Marsh Posté le 31-01-2006 à 11:42:33    

Bonjour tout le monde,
 
J'ai installé une imprimante réseau sur un poste client avec le compte administrateur, mais le problème c'est que celle ci n'apparait pas dans les autres comptes.
 
Comment faire pour que cette imprimante apparaisse automatiquement dans tous les profils?
 
Merci d'avance.


Message édité par the_silencer le 31-01-2006 à 11:47:08
Reply

Marsh Posté le 31-01-2006 à 11:42:33   

Reply

Marsh Posté le 31-01-2006 à 11:47:37    

regarde sur ton serveur (2000 ou XP) dans l'AD, tu dois avoir quelque chose à activer/ou désactiver... Sinon dans les stratégies de groupes?

Reply

Marsh Posté le 31-01-2006 à 12:01:21    

Hello,
 
T'es en réseau ou pas ? Si oui, t'as AD ou pas ? Détaille plus...
Si oui et oui, un batch dans le netlogon pour tous les usrers genre :
 
start \\server\imprimante
 
 
Sinon, si c'est de façon pnctuelle, tu l'installe comme une imprimante locale sur le poste en utilisant un port TCP/IP qu'il te faut créer (sans ça l'imprimante ne sera installée que sur le profil courant).
 
@+ !


Message édité par maille-hem le 31-01-2006 à 12:02:58
Reply

Marsh Posté le 31-01-2006 à 12:44:15    

Merci à vous,
 
en fait, mon imprimante est listée dans AD et elle est installée sur un serveur.
 
Donc sur mon poste client j'ai fait installer une imprimante réseau.
D'ailleurs quand je fais "rechercher un imprimante dans l'annuaire", je tape son nom, j'ai ensuite une liste, je la sélectionne mais j'ai ensuite une erreur : Impossible d'ajouter la connexion à l'imprimante. Vous avez entré un nom incorrect ou l'imprimante n'est pas connecté...". Donc je reviens en arrière, je choisi "Connexion à une imprimante..." et je tape \\monserveur\monimprimante et la ca passe.
 
Une fois installée, je teste et ca fonctionne bien. Mais le truc c'est que lorsque je me connecte avec un autre compte, mon imprimante n'apparait plus dans la liste des imprimantes (j'ai les autres qui elles sont en local).
 
J'aimerais bien ne pas avoir à passer par un script et cette imprimante doit être en reseau, mais alors existe il une solution pour avoir automatiquement une imprimante reseau dans tous les profils?
 
P.S. Les postes clients sont en XP PRO, et le serveur en 2003
 
Merci.

Message cité 1 fois
Message édité par the_silencer le 31-01-2006 à 12:50:34
Reply

Marsh Posté le 31-01-2006 à 12:56:39    

the_silencer a écrit :


Une fois installée, je teste et ca fonctionne bien. Mais le truc c'est que lorsque je me connecte avec un autre compte, mon imprimante n'apparait plus dans la liste des imprimantes (j'ai les autres qui elles sont en local).


Ca c'est normal...
Quand tu montes une imprimante réseau, elle est montée dans un profil. En tant qu'administrateur, tu dois juste t'assurer que le driver de l'imprimante est installé sur le PC. Après, c'est à l'utilisateur de s'ajouter l'imprimante réseau dans sa session. Ou alors tu peux le faire avec des scripts si tu veux.

Reply

Marsh Posté le 31-01-2006 à 13:07:28    

Merci pour ta réponse Wolfman,
 
d'accord, je suis obliger de passer par un script.
Par contre est-ce que je peux créer ce script pour qu'il soit exécuté au demarage de l'ordinateur et non pas à l'ouverture de session? Si oui comment?
 
D'autre part, c'est une commande du type "start \\server\imprimante" c'est bien ca?
 
Merci d'avance.
 
 :)

Reply

Marsh Posté le 31-01-2006 à 13:12:52    

Non. Tu n'as pas compris ce que je t'ai dit : une imprimante réseau ne remonte pas au niveau ordinateur. Elle remonte au niveau utilisateur. Ou alors, il faut que tu paramètres ton imprimante comme une imprimante locale. Et dans ce cas, ton serveur d'impression ne sert plus à rien vu que tes utilisateurs attaqueront directement l'imprimante.
 
Il faut donc que tu fasses un script d'ouverture de session. Pour les commandes :
http://www.robvanderwoude.com/2kprintcontrol.html

Reply

Marsh Posté le 31-01-2006 à 13:20:11    

Wolfman a écrit :

Non. Tu n'as pas compris ce que je t'ai dit : une imprimante réseau ne remonte pas au niveau ordinateur. Elle remonte au niveau utilisateur. Ou alors, il faut que tu paramètres ton imprimante comme une imprimante locale. Et dans ce cas, ton serveur d'impression ne sert plus à rien vu que tes utilisateurs attaqueront directement l'imprimante.
 
Il faut donc que tu fasses un script d'ouverture de session. Pour les commandes :
http://www.robvanderwoude.com/2kprintcontrol.html


Ben c'est exactement ce que j'ai dit  :whistle:

Reply

Marsh Posté le 31-01-2006 à 13:21:53    

Ben ouais mais il avait pas compris apparemment :D

Reply

Marsh Posté le 31-01-2006 à 13:25:31    

Erf, faut vraiment user de réthorique des fois...

Reply

Marsh Posté le 31-01-2006 à 13:25:31   

Reply

Marsh Posté le 31-01-2006 à 13:36:27    

Ou alors tu fais comme moi et tu attends la release 2 de windows 2003 server.
 
http://www.laboratoire-microsoft.o [...] gement-R2/
 
Jamais compris pourquoi ca n'existait pas avant ce truc ...

Reply

Marsh Posté le 31-01-2006 à 13:48:14    

En effet, je savais pas qu'une imprimante réseau été liée à l'utilisateur  :ange:  
 
Mais je préfère la laisser en réseau pour une raison d'audit. (A moins qu'il y ait une solution pour centraliser les logs d'impression  :sarcastic: )
 
En fait ca devient compliquer pour moi :
On est dans un établissement scolaire, et jusqu'a présent une personne peut imprimer uniquement dans la salle ou il se trouve.
(On a un type d'image Ghost de station par classe et les imprimantes sont en local).
 
Donc avec une solution "Imprimante Reseau" comment garder ce principe? Est-ce qu'on est obliger d'avoir toutes les imprimantes en permanence?
 
 
 
En tout cas vos réponses me sont d'une aide précieuse. Merci  :)

Reply

Marsh Posté le 31-01-2006 à 13:50:24    

jkley a écrit :

Ou alors tu fais comme moi et tu attends la release 2 de windows 2003 server.
 
http://www.laboratoire-microsoft.o [...] gement-R2/
 
Jamais compris pourquoi ca n'existait pas avant ce truc ...


Mais comment que c'est bien tout ça !!!!!!!! Ça c'est de l'info utile, merci !  :jap:

Reply

Marsh Posté le 31-01-2006 à 13:51:05    

Pour cela, il faut faire un script d'ouverture de session. Si tu fais bien ton script, tu dois être à même de remonter l'imprimante en question uniquement sur certains postes (en vérifiant le nom du PC dans le script par exemple)

Reply

Marsh Posté le 31-01-2006 à 13:54:39    

jkley a écrit :

Ou alors tu fais comme moi et tu attends la release 2 de windows 2003 server.
 
http://www.laboratoire-microsoft.o [...] gement-R2/
 
Jamais compris pourquoi ca n'existait pas avant ce truc ...


 
Excellent, merci pour l'info!!

Reply

Marsh Posté le 01-02-2006 à 13:21:16    

Wolfman a écrit :

Pour cela, il faut faire un script d'ouverture de session. Si tu fais bien ton script, tu dois être à même de remonter l'imprimante en question uniquement sur certains postes (en vérifiant le nom du PC dans le script par exemple)


 
Merci Wolfman,
J'essaie de faire un script alors  :ange:  
 
...mais j'ai un peu de mal, j'ai créé un thread dans programmation :
http://forum.hardware.fr/hardwaref [...] 4088-1.htm
 
 :)

Reply

Marsh Posté le 01-02-2006 à 16:12:34    

Qu'est-ce que tu veux faire exactement avec ce script ? Allouer à tel ou tel utilisateur telle ou telle imprimante en fonction de son appartenance a tel ou tel groupe dans Active Directory ?
 
Si oui, jette un coup d'oeil sur ce script VBS.
 
 
 
' Customer  :  
' Filename  : logon.vbs  
' Author    : Cédric Rathgeb  
' Date      : 2005-06-20  
' Version   : 2.1.3  
' Copyright : Public Domain  
' Warranty  : None  
'  
 
On Error Resume Next  
 
Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D  
BS = Chr(92) ' Backslash  
DBS = BS & BS ' Double Backslash  
 
Set wshNetwork = WScript.CreateObject("WScript.Network" )  
Set wshShell = WScript.CreateObject("WScript.Shell" )  
Set wshSysEnv = wshShell.Environment("SYSTEM" )  
sUser = LCase(wshShell.ExpandEnvironmentStrings("%USERNAME%" ))  
sComputer =  LCase(wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%" ))  
sServer = "monserveur1"  
sLDAPPath = "LDAP://dc=domain,dc=local"  
sGroup = GetPrimaryGroup(sUser, sLDAPPath)  
 
Select Case LCase(sGroup)  
  Case "juridique", "marketing", "secrétariat général"  
    sGroupUser = "état major" & BS & sGroup  
    sGroup = "état major"  
  Case "cave", "divers", "services aux locataires", "valeurs"  
    sGroupUser = "divers" & BS & sGroup  
    sGroup = "divers"  
  Case Else  
    sGroupUser = sGroup  
End Select  
 
' The pairs are "drive" and "share"  
aryShares   = Array(Array("T:", DBS & sServer & BS & "ClientApps" ), _  
                    Array("U:", DBS & sServer & BS & "utilisateurs$" & BS & sGroupUser & BS & sUser), _  
                    Array("V:", DBS & sServer & BS & "groupes$" & BS & sGroup & BS & "@commun" ), _  
                    Array("W:", DBS & sServer & BS & "groupes$" ), _  
                    Array("X:", DBS & sServer & BS & "commun$" ))  
' The pairs are "printers" and "default printer for computers"  
aryPrinters = Array(Array(DBS & sServer   & BS & "comptabilite_hp_laserjet_color_4600n", "apicella;laureau" ), _  
                    Array(DBS & sServer   & BS & "comptabilite_hp_laserjet_5", "andre" ), _  
                    Array(DBS & sServer   & BS & "couloir_hp_laserjet_4050n", "bchatelain;ecuyer;reception1;reserve;schmid" ), _  
                    Array(DBS & sServer   & BS & "couloir_hp_laserjet_5si", "" ), _  
                    Array(DBS & sServer   & BS & "couloir_oki_9200c", "" ), _  
                    Array(DBS & "golay"   & BS & "quai_hp_psc_2210", "" ), _  
                    Array(DBS & "magasin" & BS & "quai_hp_laserjet_3015", "magasin", "" ), _  
                    Array(DBS & "treand"  & BS & "quai_hp_laserjet_1012", "treand;lacotte", "" ), _  
                    Array(DBS & "arianne" & BS & "etatmajor_brother_hl_1230", "arianne;may", "" ), _  
                    Array(DBS & "benoist" & BS & "valeur_hp_980cxi", "benoist;flilipone" ))  
 
' Search account in Active Directory  
'   Return AD distinguished name or an empty string if not found  
Function GetADDistinguishedName(sAccount, sADPath)  
  Set oConnection = CreateObject("ADODB.Connection" )  
  oConnection.Open "Provider=ADsDSOObject;"  
  Set oCommand = CreateObject("ADODB.Command" )  
  oCommand.ActiveConnection = oConnection  
  oCommand.CommandText = "<" & sADPath & ">;(&(objectCategory=User)(samAccountName=" & sAccount & " ));samAccountName,distinguishedName;subtree"  
  Set oRecordSet = oCommand.Execute  
  If oRecordset.RecordCount = 0 Then  
    ' Not found !  
    GetADDistinguishedName = ""  
  Else  
    GetADDistinguishedName = oRecordset.Fields("distinguishedName" )  
  End If  
  oConnection.Close  
End Function  
 
' Get groups a user belongs to  
'   Return an array or empty  
Function GetADGroupsUserBelongsTo(sAccount, sADPath)  
  Set oUser = GetObject("LDAP://" & GetADDistinguishedName(sAccount, sADPath))  
  aryMemberOf = oUser.GetEx("memberOf" )  
  If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then  
    ' Not Fount !  
    GetADGroupsUserBelongsTo = Array()  
  Else  
    GetADGroupsUserBelongsTo = aryMemberOf  
  End If  
End Function  
 
' Get primary group for this user  
'    Return a string with groupname  
'    an empty string if not found  
Function GetPrimaryGroup(sAccount, sADPath)  
  Set oUser = GetObject("LDAP://" & GetADDistinguishedName(sAccount, sADPath))  
  iPrimaryGroupID = oUser.Get("primaryGroupID" )  
  If Not(Err.Number = E_ADS_PROPERTY_NOT_FOUND) Then  
    Set oConnection = CreateObject("ADODB.Connection" )  
    oConnection.Open "Provider=ADsDSOObject;"  
   
    Set oCommand = CreateObject("ADODB.Command" )  
    oCommand.ActiveConnection = oConnection  
    oCommand.CommandText = "<" & sADPath & ">;(objectCategory=Group);distinguishedName,primaryGroupToken;subtree"    
    Set oRecordSet = oCommand.Execute  
    Do Until oRecordset.EOF  
      If oRecordset.Fields("primaryGroupToken" ) = iPrimaryGroupID Then  
        sGroup = oRecordset.Fields("distinguishedName" )  
      End If  
      oRecordset.MoveNext  
    Loop  
    sGroup = Left(sGroup, InStr(sGroup, "," ) - 1)  
    GetPrimaryGroup = sGroup  
    oConnection.Close  
  Else  
    GetPrimaryGroup = ""  
  End If  
End Function  
 
' Disconnects all drives  
Sub DisconnectDrives()  
  ' Connect drives  
  Set colDrives = wshNetwork.EnumNetworkDrives  
  For i = 0 To colDrives.Count - 1 Step 2  
    wshNetwork.RemoveNetworkDrive colDrives(i)  
  Next  
End Sub  
 
' Map drive  
Sub MapDrive(sDrive, sShare)  
  wshNetwork.MapNetworkDrive sDrive, sShare  
End Sub  
 
' Disconnect all printers  
Sub DisconnectPrinters()  
  Set colPrinters = wshNetwork.EnumPrinterConnections  
  For i = 0 To colPrinters.Count - 1 Step 2  
    wshNetwork.RemovePrinterConnection colPrinters(i)  
  Next  
End Sub  
 
' Map printer  
Sub MapPrinter(sPrinter)  
  wshNetwork.AddWindowsPrinterConnection sPrinter  
End Sub  
 
' Set Default Printer  
Sub SetDefaultPrinter(sPrinter)  
  wshNetwork.SetDefaultPrinter sPrinter  
End Sub  
 
 
 
' Remove previous connections  
DisconnectDrives  
DisconnectPrinters  
 
' Connect shares to local drives  
For i = LBound(aryShares) to UBound(aryShares)  
  aryAux = aryShares(i)  
  MapDrive aryAux(0), aryAux(1)  
Next  
 
' Connect printers  
For i = LBound(aryPrinters) to UBound(aryPrinters)  
  aryAux = aryPrinters(i)  
  MapPrinter aryAux(0)  
  aryComputers = Split(aryAux(1), ";" )  
  For j = LBound(aryComputers) to UBound(aryComputers)  
    If sComputer = aryComputers(j) Then  
      SetDefaultPrinter(aryAux(0))  
    End If  
  Next  
Next  
 
' Copy Icons on User's Desktop  
Set oFSO = CreateObject("Scripting.FileSystemObject" )  
sSource = DBS & "monserveur1" & BS & "ClientApps" & BS & "icons" & BS & "*.*"  
sDestination = "C:" & BS & "documents and settings" & BS & sUser & BS & "bureau"  
oFSO.CopyFile sSource, sDestination, True  
Set oFSO = Nothing  
 
 
' Add default paths keys for Word and Excel XP & 2003  
wshShell.Run("regedit /s word_excel_paths.reg" )  
 
' Delete objects  
Set wshNetwork = Nothing  
Set wshShell   = Nothing  
Set wshSysEnv  = Nothing
 
 
 
Voilà, @+ !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed