Question A propos des runspaces sous PS v1
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 14 ans 11 mois #5537
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:A propos des runspaces sous PS v1
Dans la
dernière version
l'ajout de cmdlets,provider,etc est désormais possible dans une configuration de runspace :
[code:1]
$ConfigurationRS = New-RunspaceConfiguration
#Compléte une configuration de runspace avec différent éléments :
#Une fonction
(New-ScriptConfigurationEntry \"Write-Properties\"«»),
#Pscx
#Un cmdlet. On peut ne pas utiliser le nom complet : \"Write-Zip\"
(\"Pscx\Write-Zip\"|gcm|New-CmdletConfigurationEntry),
#Insére plusieurs cmdlets
#(gcm \"Write-[BGTZ]*\"|New-CmdletConfigurationEntry).GetEnumerator(),
#Un fichier de type, de format ou un assembly
($File=\"$pscx:Home\TypeData\FeedStore.ps1xml\";
New-DataFileConfigurationEntry $File $File -Type),
#Un provider
(Get-PSProvider \"FeedStore\"|New-ProviderConfigurationEntry)|
Add-ConfigurationEntry -Config $ConfigurationRS
$RSTest=New-RunSpace -InteractWithHost {
#Flux (RSS IE7 sous Windows XP) du dossier PowerShell
new-Psdrive -name PSfeed -Psprovider FeedStore -root Feed:«»PowerShell
dir PSfeed:|Out-Host
} $configurationRS
$RSTest.InvokeAsync($RSTest.Command)
[/code:1]
Ce qui permet d'exécuter une winform au sein d'un runspace avec le model de thread STA :
[code:1]
cd $AddLib.Scripts
cd ..\Demos\Convert-Form\DragAndDrop
$ConfigurationRS = New-RunspaceConfiguration
#Recopie le cmdlet d'un éditeur tier dans la configuration du Runspace
\"Invoke-Apartment\"|gcm|
New-CmdletConfigurationEntry|
Add-ConfigurationEntry -Config $ConfigurationRS
#Crée un runspace exécutant l'affichage de la forme
#la console reste disponible
$RSDrag=New-RunSpace -InteractWithHost {
# Invoke-Apartment -STA ...
Invoke-Apartment STA { #PSCX
.$Scriptname
write-host \"Call Show \"
$FrmMain.ShowDialog()
#Libération de la Form
$FrmMain.Dispose()
}
} $configurationRS
#Lors de la création du runspace à l'aide de la méthode New-Runspace,
#il n'est pas possible de passer des paramètres.
$RSDrag.Runspace.SessionStateProxy.SetVariable(\"ScriptName\", \"$pwd\RS-PSDrapAndDrop.ps1\"«»)
#Exécution du code des Runspaces
$RSDrag.InvokeAsync($RSDrag.Command)
#Pour cette démo on bloque la console
#afin de libérer les ressources en fin de démos
$Continuer=$True
Write-host \"On attend la fin d'exécution de la fenêtre.\"
#[System.Management.Automation.Runspaces.PipelineState]
While ($RSDrag.LastPipelineState -eq \"Running\"«»)
{
Sleep 1
}
WP $rsdrag
Write-host \"Clôt les runspaces\"
$RSDrag.Runspace.Close()
[/code:1]
[edit]
Programmatic Access via Remote PowerShell in Exchange Server 2010
Message édité par: Laurent Dardenne, à: 29/10/09 15:31<br><br>Message édité par: Laurent Dardenne, à: 4/11/09 14:45
[code:1]
$ConfigurationRS = New-RunspaceConfiguration
#Compléte une configuration de runspace avec différent éléments :
#Une fonction
(New-ScriptConfigurationEntry \"Write-Properties\"«»),
#Pscx
#Un cmdlet. On peut ne pas utiliser le nom complet : \"Write-Zip\"
(\"Pscx\Write-Zip\"|gcm|New-CmdletConfigurationEntry),
#Insére plusieurs cmdlets
#(gcm \"Write-[BGTZ]*\"|New-CmdletConfigurationEntry).GetEnumerator(),
#Un fichier de type, de format ou un assembly
($File=\"$pscx:Home\TypeData\FeedStore.ps1xml\";
New-DataFileConfigurationEntry $File $File -Type),
#Un provider
(Get-PSProvider \"FeedStore\"|New-ProviderConfigurationEntry)|
Add-ConfigurationEntry -Config $ConfigurationRS
$RSTest=New-RunSpace -InteractWithHost {
#Flux (RSS IE7 sous Windows XP) du dossier PowerShell
new-Psdrive -name PSfeed -Psprovider FeedStore -root Feed:«»PowerShell
dir PSfeed:|Out-Host
} $configurationRS
$RSTest.InvokeAsync($RSTest.Command)
[/code:1]
Ce qui permet d'exécuter une winform au sein d'un runspace avec le model de thread STA :
[code:1]
cd $AddLib.Scripts
cd ..\Demos\Convert-Form\DragAndDrop
$ConfigurationRS = New-RunspaceConfiguration
#Recopie le cmdlet d'un éditeur tier dans la configuration du Runspace
\"Invoke-Apartment\"|gcm|
New-CmdletConfigurationEntry|
Add-ConfigurationEntry -Config $ConfigurationRS
#Crée un runspace exécutant l'affichage de la forme
#la console reste disponible
$RSDrag=New-RunSpace -InteractWithHost {
# Invoke-Apartment -STA ...
Invoke-Apartment STA { #PSCX
.$Scriptname
write-host \"Call Show \"
$FrmMain.ShowDialog()
#Libération de la Form
$FrmMain.Dispose()
}
} $configurationRS
#Lors de la création du runspace à l'aide de la méthode New-Runspace,
#il n'est pas possible de passer des paramètres.
$RSDrag.Runspace.SessionStateProxy.SetVariable(\"ScriptName\", \"$pwd\RS-PSDrapAndDrop.ps1\"«»)
#Exécution du code des Runspaces
$RSDrag.InvokeAsync($RSDrag.Command)
#Pour cette démo on bloque la console
#afin de libérer les ressources en fin de démos
$Continuer=$True
Write-host \"On attend la fin d'exécution de la fenêtre.\"
#[System.Management.Automation.Runspaces.PipelineState]
While ($RSDrag.LastPipelineState -eq \"Running\"«»)
{
Sleep 1
}
WP $rsdrag
Write-host \"Clôt les runspaces\"
$RSDrag.Runspace.Close()
[/code:1]
[edit]
Programmatic Access via Remote PowerShell in Exchange Server 2010
Message édité par: Laurent Dardenne, à: 29/10/09 15:31<br><br>Message édité par: Laurent Dardenne, à: 4/11/09 14:45
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 12 ans 4 mois #11844
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:A propos des runspaces sous PS v1
Un article
intéressant sur le performances entre un PSJob (adaptation) et un RunSpace (natif).
Pour Powershell V2.<br><br>Message édité par: Laurent Dardenne, à: 19/05/12 14:15
Pour Powershell V2.<br><br>Message édité par: Laurent Dardenne, à: 19/05/12 14:15
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 12 ans 1 mois #12548
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:A propos des runspaces sous PS v1
Un complément, comment afficher la liste des fichiers de format ou de type chargés dans un runspace, par défaut la session PowerShell:
[code:1]
$host.Runspace.RunspaceConfiguration.Formats |
Select-Object -ExpandProperty FileName
$host.Runspace.RunspaceConfiguration.Types |
Select-Object -ExpandProperty FileName
[/code:1]
[edit]
Voir aussi deux fonctions dédiées ici .<br><br>Message édité par: Laurent Dardenne, à: 12/02/14 21:00
[code:1]
$host.Runspace.RunspaceConfiguration.Formats |
Select-Object -ExpandProperty FileName
$host.Runspace.RunspaceConfiguration.Types |
Select-Object -ExpandProperty FileName
[/code:1]
[edit]
Voir aussi deux fonctions dédiées ici .<br><br>Message édité par: Laurent Dardenne, à: 12/02/14 21:00
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.126 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- A propos des runspaces sous PS v1