Question A propos des runspaces sous PS v1

Plus d'informations
il y a 14 ans 5 mois #5537 par Laurent Dardenne
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

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 10 mois #11844 par Laurent Dardenne
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

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 8 mois #12548 par Laurent Dardenne
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

Tutoriels PowerShell

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

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