IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

[Powershell] Impossible de récupérer un processus démarré


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 99
    Par défaut [Powershell] Impossible de récupérer un processus démarré
    Bonjour,

    J'aimerai récupérer un processus que je lance afin de pouvoir effectuer des actions dessus.
    Le plus simple d'après moi est de récupérer l'Id seulement ça ne fonctionne pas...
    Je récupère bien un Id mais je ne retrouve pas cet Id quand j'affiche la liste des processus.
    Et quand j'essaye une action sur le processus avec cet Id, ça ne fonctionne pas non plus.
    Auriez vous une idée ? Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    PS C:\Users\moi> $edgeProcess = Start-Process -FilePath "msedge" -PassThru -ArgumentList "-NewWindow"
    PS C:\Users\moi> $edgePID = $edgeProcess.Id
    PS C:\Users\moi> $edgePID 
    30912
    PS C:\Users\moi> Get-Process msedge
    
    Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
    -------  ------    -----      -----     ------     --  -- -----------
        700      23   227584     268564       8,48   1064   2 msedge
       1237      40   282196     178772       3,53   3068   2 msedge
       1709      70    81732      97080       3,80   4216   2 msedge
        347      26    20724      23784       1,05   9076   2 msedge
        236      17    17000       5012       0,05  10888   2 msedge
        304      18    22192       4324       0,16  14096   2 msedge
        322      18    23528       6200       0,27  22348   2 msedge
        285      19    12656       5428       0,08  25460   2 msedge
        188      12     5820       8272       0,00  25548   2 msedge
        219      16    11764       4452       0,16  27256   2 msedge
        389      21    68640      30120       8,31  28680   2 msedge
    
    
    PS C:\Users\moi> Stop-Process -Id $edgePID
    Stop-Process : Impossible de trouver un processus assorti de l'identificateur 30912.
    Au caractère Ligne:1 : 1
    + Stop-Process -Id $edgePID
    + ~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (30912:Int32) [Stop-Process], ProcessCommandException
        + FullyQualifiedErrorId : NoProcessFoundForGivenId,Microsoft.PowerShell.Commands.StopProcessCommand

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 841
    Par défaut

    Testez ce script :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Clear-Host
    $edgeProcess = Start-Process -FilePath "msedge" -PassThru -ArgumentList "-NewWindow"
    $edgePID = $($edgeProcess.Id)
    $edgePID
    # Faire une petite pause de 20 secondes puis on ferme ce Processus
    Start-Sleep 20
    Write-Host "Stopping this PID : $edgePID" -ForegroundColor Red
    Stop-Process -Id $edgePID

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 99
    Par défaut
    D'abord merci pour la réponse

    Alors j'obtiens toujours la même erreur avec ce script.

    En vrai ce n'est pas étonnant, car peu importe le temps que j'attends, je ne retrouve jamais l'ID récupéré lors du Start-Process quand je lance un Get-Process.

    En fait j'ai testé avec d'autres application (ex : notepadd++) et là ça fonctionne.

    Je me demande si ce n'est pas lié au fait que MS Edge démarre tout un tas de processus pour une seule instance du programme démarrée.
    L'Id du processus démarré à la base n'existerait alors plus au détriment de plusieurs Id issus de la division du premier process en plusieurs...

    Si c'est bien cela (vos avis ?), comment faire alors pour agir sur la fenêtre Edge ouverte à la base ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Bonjour,

    C'est ByDesign
    Edge se partage les processus, une fenêtre n'est donc pas égale à 1 process.

    Ton script doit fonctionner lorsque tu n'as pas encore de msedge en cours.

    Lorsque tu ouvre une deuxième fenêtre le ID principale msedge semble récupérer le "job".
    Tu remarques que quand tu ferme seulement une fenêtre, il n'y a aucun processus de fermé.

    Je ne suis pas sur que ce soit exactement ton besoin mais ferme tout simplement.
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Stop-Process -Name "msedge"

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 99
    Par défaut
    Salut,

    Encore merci pour la réponse

    En fait le Stop-Process c'est juste pour un test. Du coup l'option -Name avec le nom de process ne fonctionnera pas pour ce que je veux faire.

    Mon but est d'afficher plusieurs fenêtres Edge (affichant différentes url) à l'ouverture de session, organisée d'une certaine manière en terme de position.

    Pour le positionnement, j'ai un bout de script qui crée une fonction Set-Window qui prend en paramètre un Nom ou un Id de processus, des coordonnées x, y et des dimensions width, height.
    Le ciblage de la fenêtre à positionner se fait donc via le processus.
    Pour que ça fonctionne, il faut donc que je puisse "cibler" tel ou tel fenêtre, ce que visiblement je ne peux pas faire avec Edge


    Vous auriez une autre idée à tout hasard ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je ne sais pas, Edge semble si particulié dans son fonctionnement de fenêtre/process

Discussions similaires

  1. [PEAR][HTML_QuickForm] Impossible de récupérer les valeurs du formulaire
    Par Mainman dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/05/2007, 12h15
  2. [Outlook] Impossible de récupérer mes messages ...
    Par Rumeurs dans le forum Outlook
    Réponses: 4
    Dernier message: 13/04/2006, 19h05
  3. XMLHttpRequest : Impossible de récupérer les données
    Par laurent_ifips dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/11/2005, 13h28
  4. [HTML][PHP] Formulaire impossible de récupérer les variables
    Par Pfeffer dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 11/11/2005, 16h08
  5. Réponses: 1
    Dernier message: 05/07/2005, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo