Question Connaitre process fenêtre powershell

Plus d'informations
il y a 14 ans 11 mois #9765 par brutosaure
Bonjour,

j'aimerais savoir si il est possible dans le cas ou j'ai plusieurs fenêtre PowerShell, de connaitre le processus qui est lié à chaque fenêtre.
Afin par exemple de pouvoir stopper le processus de celle que je veux.
Car si je fais un get-process -Name powershell, j'ai tout mes processus powershell, mais je ne sais pas dire que tel processus serait lié à tel fenêtre.

En fait j'aimerais créer un script qui sauvegarde mon historique avec cette commande
[code:1]Register-EngineEvent PowerShell.Exiting -Action {Save-History} –Supportevent[/code:1]

Le seul prob avec ca, c'est que je dois fermer ma fenêtre avec la commande exit et non avec la croix de la fenêtre, car dans ce cas, ce n'est pas powershell qui recoit l'event.

J'ai testé dans script \"closeWithHistory.ps1\" avec le code suivant

[code:1]Register-EngineEvent PowerShell.Exiting -Action {Save-History} –Supportevent[/code:1]
suivit de
[code:1]exit[/code:1]

Mais ma fenêtre reste ouverte.
Je me disais donc, que si j'arrive à savoir quel processus id est lié à ma ou mes fenêtres powershell, je pourrais utiliser, la commande stop-process -id xxxx

En espérant que celle-ci soit l'équivalent d'un exit et non d'un close avec la croix.

D'avance merci

Message édité par: brutosaure, à: 9/06/11 10:42

Message édité par: brutosaure, à: 9/06/11 10:46<br><br>Message édité par: brutosaure, à: 9/06/11 14:30

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

Plus d'informations
il y a 14 ans 11 mois #9772 par xyz
brutosaure écrit:

j'aimerais savoir si il est possible dans le cas ou j'ai plusieurs fenêtre PowerShell, de connaitre le processus qui est lié à chaque fenêtre.

Si la console à un nom unique peut être avec ceci :
[code:1]
$signature = @\&quot;
using System;
using System.Text;
using System.Runtime.InteropServices;
namespace Win32Functions {
public static class Win32GetWindowText{
[DllImport(\&quot;user32.dll\&quot;, SetLastError = true, CharSet = CharSet.Auto)]
public static extern int GetWindowText ( IntPtr hWnd, [Out] StringBuilder lpString, int nMaxCount );
}
}
\&quot;@
$GetWindowText = Add-Type $signature -passThru

$stringBuilder = new-object System.Text.StringBuilder(256)
Get-Process -name Powershell|Foreach {
[void]$GetWindowText::GetWindowText($_.MainWindowHandle,$stringBuilder, $stringBuilder.Capacity)
$stringBuilder.ToString()
}
#from social.msdn.microsoft.com/forums/en-US/w...8-b70a-468cfd195ced/
[/code:1]
On peut changer le nom avec :
[code:1]
function HostTitre {Param ([string]$Titre=\&quot;PowerShell\&quot;«»); $host.UI.RawUI.WindowTitle=$Titre }
[/code:1]
Par manque de temps je ne suis allé plus loin dans les tests, ceci peut donc ne pas être une solution.
brutosaure écrit:

En fait j'aimerais créer un script qui sauvegarde mon historique avec cette commande

J'ai déjà lu un blog qui proposait une solution sur ce sujet, peut être sur ceux des MVP Joel Bennett(huddledmasses) ou Oisin Grehan ( nivot ink).

As-tu essayé avec un autre event, celui du process par exemple ?
[code:1]
$p= get-process -Name powershell
$p[0]|gm -membertype event
#Exited
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 14 ans 11 mois #9794 par brutosaure
Merci Laurent pour ta réponse, je suis occupé à creuser du côté de la gestion des Event et pour ce faire, je lis ton tuto ;-)

laurent-dardenne.developpez.com/articles...rShell-version-2.pdf <br><br>Message édité par: brutosaure, à: 15/06/11 13:03

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

Plus d'informations
il y a 14 ans 11 mois #9803 par xyz
brutosaure écrit:

je lis ton tuto

Bonne lecture.
Sinon sur ce :
Laurent Dardenne écrit:

As-tu essayé avec un autre event, celui du process par exemple ?

Je t'ai dit une ânnerie :silly:
Pas sûr que ce soit possible dans un prg console, car il n'y a pas de file de messages permettant de trapper les messages Windows (WM_Close/WM_Quit).

Autre approche, utiliser un timer pour une sauvegarde périodique de l'historique, bon ça a un petit côtè bricole...

Tutoriels PowerShell

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

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