Question montage d'imprimantes

Plus d'informations
il y a 7 ans 3 mois #23002 par Laurent
montage d'imprimantes a été créé par Laurent
Bonjour,

j'ai des utilisateurs qui sont nomades ou non.
Selon le site ou ils se connectent je dois leur installer l'imprimante correspondante au site.
Si l'utilisateur qui se connecte a déjà les imprimantes il ne doit rien se passer. Par contre, si il change de site on doit supprimer les imprimantes de l'ancien site et installer celles du nouveau site.

voici ce que j'ai déjà fait :

[code:1]
# Script d'installation des imprimantes

# on récupère la variable d'environnement site du PC
$site=(Get-ChildItem env:«»site).value

# on compare les imprimantes installées sur le poste et celle du site connecté

# 1 - on liste les imprimantes partagées du site
$imprimantes_site=Get-Printer -ComputerName $site

# 2 - on liste les imprimantes réseau installés sur le poste
$nomPC = (Get-WmiObject -Class Win32_ComputerSystem -Property Name).Name
$imprimantes_PC=Get-WMIObject -Class Win32_Printer -ComputerName $nompc | Where-Object -Property Location -EQ -Value $site

# 3 - on compare les résultats - on quitte si toutes les imprimantes sont montées


# on supprime les imprimantes installées hors site sur le poste


# on monte les imprimantes du site




# on défini PDF creator comme imprimante par défaut

(Get-WMIObject -Class Win32_Printer -Filter \"name='PDFCreator'\"«»).setdefaultprinter()
[/code:1]

Je suis bloqué à l'étape 3, je n'arrive pas a supprimer les imprimantes qui n'appartient pas au site connecté.
pouvez vous m'aider ? merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 2 mois #23009 par Philippe
Réponse de Philippe sur le sujet Re:montage d'imprimantes
salut squale76

Je suis bloqué à l'étape 3, je n'arrive pas a supprimer les imprimantes qui n'appartient pas au site connecté.
pouvez vous m'aider ? merci

pour répondre purement a ta question,
la manip est la suivante :
[code:1]if (-not ($imprimantes_PC | where {$_.Name -notin $imprimantes_site.name}) -and -not ($imprimantes_site | where {$_.Name -notin $imprimantes_PC.name})) {
exit
}
[/code:1]

mais vu la suite de ton script je supprimerai cette étape inutile

ton script m'intéresse et j'ai donc quelques questions si tu veut bien y répondre :
1) comment tu remplie la variable d'environnement $site ? comment tu sais que le site change !?
2) a tu un ordinateur pour chaque site avec les imprimantes de configuré qui servent de modèle ?
3) au vu du contenu du script je suppose que le script s'execute sur le poste. comment est t'il lancé ?
merci d'avance de prendre quelques minutes pour répondre à mes questions ! :)

j'ai modifier ton script. je l'ai testé sur mon PC sans erreur
voici les modifs :
- allègement de la recup de la variable environnement site
- suppression de l'utilisation du nom du PC puisse que l'on travail en local
- suppression du filtre sur l'attribut \"Location\" qui m'a semblé inutile
- rajout d'un filtre sur les imprimantes PDF et XPS pour ne pas avoir à les réinstallé à chaque fois
- et enfin j'ai complété ajout/suppression des imprimantes en fonction du site
[code:1]# Script d'installation des imprimantes

# on récupère la variable d'environnement site du PC
$site = $env:site

# on compare les imprimantes installées sur le poste et celle du site connecté
# 1 - on liste les imprimantes partagées du site
$imprimantes_site = Get-Printer -ComputerName $site

# 2 - on liste les imprimantes réseau installés sur le poste
$imprimantes_PC = Get-Printer | where {$_.Name -notlike \"*PDF*\" -and $_.Name -notlike \"*XPS*\"}

# 3 - on supprime toutes les imprimantes qui ne font pas partie du site
$printerposte | where {$_.Name -notin $printersite.name} | Remove-Printer

# 4 - on rajoute toutes les imprimantes du site qui sont absentent
$printersite | where {$_.Name -notin $printerposte.name} | foreach {
Add-Printer -name $($_.Name) -drivername $($_.DriverName) -PortName $($_.PortName)
}


# on défini PDF creator comme imprimante par défaut
(Get-WMIObject -Class Win32_Printer -Filter \"name='PDFCreator'\").setdefaultprinter()
[/code:1]

Message édité par: 6ratgus, à: 26/01/17 15:30<br><br>Message édité par: 6ratgus, à: 26/01/17 16:19

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 2 mois #23036 par Laurent
Réponse de Laurent sur le sujet Re:montage d'imprimantes
merci pour ta réponse !

je vais répondre a tes questions :

1) comment tu remplie la variable d'environnement $site ? comment tu sais que le site change !?
la variable est poussée en gpo en fonction de l'adresse IP du poste. La GPO dit si tu es dans dans la plage 10.76.205.xxx tu es sur ROUEN, si es dans dans la plage 10.76.206.xxx tu es a Paris

2)a tu un ordinateur pour chaque site avec les imprimantes de configuré qui servent de modèle ?
j'ai un serveur d'impression Win2012 sur chaque site et c'est à partir de celui ci que je monte l'imprimante du site.
Le nom du serveur d'impression correspond à la variable site définie à la question précédente.

3)au vu du contenu du script je suppose que le script s’exécute sur le poste. comment est t'il lancé ?
Effectivement il va se lancer sur le poste soit en tache planifiée en ouverture de session, soit par noter outil de déploiement logiciel qui le lancera à l'ouverture de session.

Questions :

1/Ton script en partie 3 me supprime les imprimantes du site ou je suis déjà connecté alors je souhaite les supprimer uniquement si on est sur un site différent.

2/En partie 4 je souhaite installer toutes les imprimantes partagées du site ou on est connecté qui sont listées qu'on récupère dans la variable $imprimantes_site.

merci de ton aide !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 2 mois #23067 par Philippe
Réponse de Philippe sur le sujet Re:montage d'imprimantes
merci aussi pour tes reponses
derniere question : je suppose que ta gpo lance un script !? et si oui n'a tu pas de problème avec les ordinateurs portable en wifi pour les gpo script ?

1/Ton script en partie 3 me supprime les imprimantes du site ou je suis déjà connecté alors je souhaite les supprimer uniquement si on est sur un site différent.

normalement non mais ... ??? :blink:
normalement il supprime les imprimantes qui ne sont pas dans la liste $imprimantes_site
mais en te répondant je vois que les variables ne sont plus les mêmes entre la partie du haut et la partie bas :evil:

je te redonne le script avec le bon nommage des variables

2/En partie 4 je souhaite installer toutes les imprimantes partagées du site ou on est connecté qui sont listées qu'on récupère dans la variable $imprimantes_site.

c'est ce que le script doit faire si j'avais fini de renommé les variables :blush: désolé

voici la correction :
[code:1]# Script d'installation des imprimantes

# on récupère la variable d'environnement site du PC
$site = $env:«»site

# on compare les imprimantes installées sur le poste et celle du site connecté
# 1 - on liste les imprimantes partagées du site
$imprimantes_site = Get-Printer -ComputerName $site

# 2 - on liste les imprimantes réseau installés sur le poste
$imprimantes_PC = Get-Printer | where {$_.Name -notlike \&quot;*PDF*\&quot; -and $_.Name -notlike \&quot;*XPS*\&quot;}

# 3 - on supprime toutes les imprimantes qui ne font pas partie du site
$imprimantes_PC | where {$_.Name -notin $imprimantes_site.name} | Remove-Printer

# 4 - on rajoute toutes les imprimantes du site qui sont absentent
$imprimantes_site | where {$_.Name -notin $imprimantes_PC.name} | foreach {
Add-Printer -name $($_.Name) -drivername $($_.DriverName) -PortName $($_.PortName)
}

# on défini PDF creator comme imprimante par défaut
(Get-WMIObject -Class Win32_Printer -Filter \&quot;name='PDFCreator'\&quot;«»).setdefaultprinter()
[/code:1]<br><br>Message édité par: 6ratgus, à: 2/02/17 12:48

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.065 secondes
Propulsé par Kunena