Question
Powershell et la session 0
- SUSINI Vincent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 14 ans 10 mois #9497
par SUSINI Vincent
Powershell et la session 0 a été créé par SUSINI Vincent
Bonjour,
Depuis quelques jours je rencontre d'importants problèmes liés au lancement de script powershell via un service.
Je ne peux pas utiliser l'utilisateur System (et la case à coche magique qui permet d'utiliser le bureau windows) et suis obliger de me servir d'utilisateurs de l'Active Directory.
J'ai eu de curieuses expériences avec des scripts qui fonctionnaient très bien lancé à la main, et qui ne fonctionnaient plus du tout (arrêt du script, pas de code retour) une fois lancée par le service (service démarré par le même utilisateur bien entendu).
En cherchant un peu j'ai remarquer qu'une partie du problème se situait dans ma fonction de décompression et plus précisément sur la méthode [code:1]shell.application.copyhere()[/code:1]
J'ai donc utilisé un logiciel tiers pour ne pas être bloqué, mais je suis cette fois stoppé lorsque j'essaye d'exécuter une requête oracle.
[code:1]
$private:f_tmp = [System.Reflection.Assembly]::LoadWithPartialName(\"System.Data.OracleClient\"«»)
$private:f_connectionString = \"Data Source=$f_instance;User Id=$f_user;Password=$f_pwd;Integrated Security=no\"
$private:f_connection = New-Object System.Data.OracleClient.OracleConnection($f_connectionString)
$private:f_command = new-Object System.Data.OracleClient.OracleCommand($f_Requete, $f_connection)
trap [System.Data.OracleClient.OracleException] { 'erreur de connection a la base'; continue}
$private:f_connection.Open()
[/code:1]
Précisément au moment ou j'utilise la méthode open.
Tout cela se passe sur un serveur W2k8 et j'ai découvert que les services lançaient leur scripts/opérations sous une session spéciale appelée session 0.
Je pensais que mon problème venait de là, la méthode copyhere fais appel a des interfaces graphiques, mais la méthode System.Data.OracleClient.OracleConnection.open() n'en utilise pas, je ne comprends donc pas pourquoi elle est bloquée.
Avez-vous déjà été confronté au même problème ? Comment l'avez vous résolu ?
Auriez-vous une solution dans mon cas ?
Merci pour votre aide
Depuis quelques jours je rencontre d'importants problèmes liés au lancement de script powershell via un service.
Je ne peux pas utiliser l'utilisateur System (et la case à coche magique qui permet d'utiliser le bureau windows) et suis obliger de me servir d'utilisateurs de l'Active Directory.
J'ai eu de curieuses expériences avec des scripts qui fonctionnaient très bien lancé à la main, et qui ne fonctionnaient plus du tout (arrêt du script, pas de code retour) une fois lancée par le service (service démarré par le même utilisateur bien entendu).
En cherchant un peu j'ai remarquer qu'une partie du problème se situait dans ma fonction de décompression et plus précisément sur la méthode [code:1]shell.application.copyhere()[/code:1]
J'ai donc utilisé un logiciel tiers pour ne pas être bloqué, mais je suis cette fois stoppé lorsque j'essaye d'exécuter une requête oracle.
[code:1]
$private:f_tmp = [System.Reflection.Assembly]::LoadWithPartialName(\"System.Data.OracleClient\"«»)
$private:f_connectionString = \"Data Source=$f_instance;User Id=$f_user;Password=$f_pwd;Integrated Security=no\"
$private:f_connection = New-Object System.Data.OracleClient.OracleConnection($f_connectionString)
$private:f_command = new-Object System.Data.OracleClient.OracleCommand($f_Requete, $f_connection)
trap [System.Data.OracleClient.OracleException] { 'erreur de connection a la base'; continue}
$private:f_connection.Open()
[/code:1]
Précisément au moment ou j'utilise la méthode open.
Tout cela se passe sur un serveur W2k8 et j'ai découvert que les services lançaient leur scripts/opérations sous une session spéciale appelée session 0.
Je pensais que mon problème venait de là, la méthode copyhere fais appel a des interfaces graphiques, mais la méthode System.Data.OracleClient.OracleConnection.open() n'en utilise pas, je ne comprends donc pas pourquoi elle est bloquée.
Avez-vous déjà été confronté au même problème ? Comment l'avez vous résolu ?
Auriez-vous une solution dans mon cas ?
Merci pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 14 ans 10 mois #9503
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Powershell et la session 0
Bonsoir,
La session 0 est la session réservée au mode console (soit physiquement sur le serveur, soit via le client TSE, en l'ayant exécuté avec le paramètre -console ou /admin, pour la dernière version du client).
Sur un serveur Windows, il est possible d'ouvrir jusqu'à 3 sessions RDP dont l'une correspond à la console : c'est la session 0 (si une personne se connecte en RDP au serveur, en session console / admin, la session est verrouillée sur l'écran physique du serveur).
Depuis 2008 ou 2008 R2, le nombre de sessions RDP est limité à 2 et il n'y a plus de notion de session RDP dite \"console\".
Je pense que ton programme a besoin d'être exécuté en mode console : il faut voir avec l'éditeur si ce n'est pas par hasard un pré requis... et si il peut réellement fonctionner en mode RDP.
En espérant t'avoir aidé
@ +
Matthew
La session 0 est la session réservée au mode console (soit physiquement sur le serveur, soit via le client TSE, en l'ayant exécuté avec le paramètre -console ou /admin, pour la dernière version du client).
Sur un serveur Windows, il est possible d'ouvrir jusqu'à 3 sessions RDP dont l'une correspond à la console : c'est la session 0 (si une personne se connecte en RDP au serveur, en session console / admin, la session est verrouillée sur l'écran physique du serveur).
Depuis 2008 ou 2008 R2, le nombre de sessions RDP est limité à 2 et il n'y a plus de notion de session RDP dite \"console\".
Je pense que ton programme a besoin d'être exécuté en mode console : il faut voir avec l'éditeur si ce n'est pas par hasard un pré requis... et si il peut réellement fonctionner en mode RDP.
En espérant t'avoir aidé
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- SUSINI Vincent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 14 ans 10 mois #9509
par SUSINI Vincent
Réponse de SUSINI Vincent sur le sujet Re:Powershell et la session 0
Merci pour le coup de main.
J'ai peur qu'il s'agisse en fait d'un problème de droits liés a l'UAC.
La demande étant urgente je modifie actuellement le fonctionnement pour passer par une tâche planifiée lancée sous système.
J'ai peur qu'il s'agisse en fait d'un problème de droits liés a l'UAC.
La demande étant urgente je modifie actuellement le fonctionnement pour passer par une tâche planifiée lancée sous système.
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 14 ans 10 mois #9510
par Matthew BETTON
You are welcome
Ca peut en effet causer de problèmes...
Il n'y a pas de mal à passer par une tâche planifiée pour exécuter un script PowerShell... C'est une solution parmi d'autres. Le planificateur de tâche fonctionne via un service qui permet les interactions avec le bureau ainsi que le démarrage en tant que \"NT AUTHORITY\SYSTEM\".
Peux tu nous dire quel service tu tentais d'utiliser au départ ? Un service développé \"maison\" ?
@ +
Matthew
Réponse de Matthew BETTON sur le sujet Re:Powershell et la session 0
Merci pour le coup de main.
You are welcome
J'ai peur qu'il s'agisse en fait d'un problème de droits liés a l'UAC.
Ca peut en effet causer de problèmes...
La demande étant urgente je modifie actuellement le fonctionnement pour passer par une tâche planifiée lancée sous système.
Il n'y a pas de mal à passer par une tâche planifiée pour exécuter un script PowerShell... C'est une solution parmi d'autres. Le planificateur de tâche fonctionne via un service qui permet les interactions avec le bureau ainsi que le démarrage en tant que \"NT AUTHORITY\SYSTEM\".
Peux tu nous dire quel service tu tentais d'utiliser au départ ? Un service développé \"maison\" ?
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.079 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Discussions générales
- Powershell et la session 0