Question Powershell, variables et tâches planifiées

Plus d'informations
il y a 11 ans 3 semaines #19094 par Samuel
Bonjour,

Depuis un peu plus de 6 mois, j'utilise un script powershell pour connecter les imprimantes de mes utilisateurs dans leur session rdp sous 2012R2. Le script powershell est exécuté via gpo au démarrage de la session. Les utilisateurs se déplacent dans l'établissement, des imprimantes liées aux utilisateurs n'ont pas de sens, il faut les lier au client léger de façon à ce qu'ils aient les imprimantes les plus proches du lieu auquel ils se connectent.

Les client légers n'étant pas dans le domaine, je ne peux pas utiliser les gpo, voici ce que fait le script :
- il récupère le nom du client léger sur lequel le user est connecté ($env:clientname)
- il recherche dans un fichier xml les imprimantes liées à ce pc ainsi que celle par défaut
- il effectue les connexions des imprimantes (et surtout cette par défaut)

Ce script fonctionne à merveille mais son lancement a une limite car il ne se produit qu'à la création de la session de l'utilisateur. Mes utilisateurs se déconnectent (sans fermer la session, la session est déconnectée mais existante sur le serveur) et se reconnecte sur un autre poste. Le problème est qu'ils se retrouvent avec les imprimantes montées à l'autre bout du bâtiment.

J'ai donc crée une tâche planifiée déployée dans les environnements des utilisateurs pour que le script s'exécute au moment de la reconnexion.

Le problème est que lorsque le script se lance, $env:clientname ne retourne rien.

Lorsqu'avec la console mmc je lance la tâche planifiée manuellement, tout se passe bien.

Je suppose qu'au moment de l'exécution du script, la variable clientname n'est pas renseignée. Comment contourner ce problème ?

Merci

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

Plus d'informations
il y a 11 ans 3 semaines #19096 par Laurent Dardenne
samche écrit:

Comment contourner ce problème ?

Peut-être en utilisant $Env:Computername ?

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 3 semaines #19098 par Samuel
Bonjour,

Merci pour ce retour rapide.

$env:computername retourne le nom du serveur bureau à distance et non le nom du client.

Pour info, un Get-ChildItem Env: me donne bien le nom du client dans la variable CLIENTNAME à condition que j'exécute la commande dans une fenêtre powershell du client. Si je l'exécute, depuis le client, via la tâche planifiée, la variable clientname n'existe pas.<br><br>Message édité par: samche, à: 23/02/15 15:15

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

Plus d'informations
il y a 11 ans 3 semaines #19099 par Laurent Dardenne
samche écrit:

$env:computername retourne le nom du serveur bureau à distance et non le nom du client.

Un coup dans l'eau.

Un autre 'idée', étudier s'il est possible que le client s'abonne au changement d'état de sa session :silly:

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 3 semaines #19100 par Samuel
Je vais jeter un œil même si ça me parait un peu compliqué ;)

Comment se fait-il que les variables d'environnement ne soient pas les mêmes lorsqu'on exécute le script via une fenêtre powershell ou via une tache planifiée ?

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

Plus d'informations
il y a 11 ans 3 semaines #19101 par Laurent Dardenne
samche écrit:

même si ça me parait un peu compliqué ;)

Probable, mais pour ce type de scénario il faut du temps pour rechercher une solution. Il existe peut-être des utilitaires proposant ce type service.

samche écrit:

Comment se fait-il que les variables d'environnement ne soient pas les mêmes lorsqu'on exécute le script via une fenêtre powershell ou via une tache planifiée ?

Le contexte d'une tâche planifiée est différent . Enfin je pense que ton pb est liè.

Pourquoi ne pas proposer un script de reconfiguration déclenché par l'utilisateur ?<br><br>Message édité par: Laurent Dardenne, à: 23/02/15 16:12

Tutoriels PowerShell

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

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