PS Autres ...

Powershell : Création et utilisation d’un ScriptBlock

Une fonctionnalité intéressante de Powershell est le ScriptBlock, mais selon comment vous l’utilisez, ça marche ou pas comme vous le désirez … voici l’explication :

Si nous voulons executer un script powershell, nous pouvons utiliser :

$monPS1 = « C:scriptstoto.ps1"</p> <p class="codediv">powershell ."$monPS1"</p>
<p>Si on veut créer un ScriptBlock, on le fera de cette manière :</p>
<p class="codediv »>$MonScriptBlock = {powershell . »$monPS1 »}

Si on utilise la variable seule, il retourne un string:

PS > $MonScriptBlock

{powershell . »$monPS1″}

Pour récupérer la « valeur calculé », il faut utiliser la commande Invoke()  :

PS > $MonScriptBlock.Invoke()

powershell .« C:scriptstoto.ps1 »



Vous pouvez aisément vous servir de cette exemple pour lancer un job :

Start-Job -ScriptBlock $MonScriptBlock.Invoke()



Pour plus d’infos sur les membres de ScriptBlock, rendez vous sur cette page :

http://technet.microsoft.com/fr-fr/library/system.management.automation.scriptblock_members(en-us,VS.85).aspx

ou en faisant :

$MonScriptBlock | Get-Member

Name MemberType Definition
—- ———- ———-
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetNewClosure Method scriptblock GetNewClosure()
GetPowerShell Method powershell GetPowerShell(Params System.Object[] args)
GetSteppablePipeline Method System.Management.Automation.SteppablePipeline GetSteppablePipeline(), System.Management.Automation.SteppablePipeline GetSteppa…
GetType Method type GetType()
Invoke Method System.Collections.ObjectModel.Collection[psobject] Invoke(Params System.Object[] args)
InvokeReturnAsIs Method System.Object InvokeReturnAsIs(Params System.Object[] args)
ToString Method string ToString()
Attributes Property System.Collections.Generic.List`1[[System.Attribute, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e08…
File Property System.String File {get;}
IsFilter Property System.Boolean IsFilter {get;set;}
Module Property System.Management.Automation.PSModuleInfo Module {get;}
StartPosition Property System.Management.Automation.PSToken StartPosition {get;}
IsFilter Property System.Boolean IsFilter {get;set;} 
Module                                                             Property System.Management.Automation.PSModuleInfo Module {get;} 
StartPosition Property System.Management.Automation.PSToken StartPosition {get;}   
Click to comment

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Most Popular

To Top
Verified by MonsterInsights