2016-07-11 17 views
0

ワークフローを使用してリモートコンピュータを管理するPowershellスクリプトでは、ワークフローの内外から呼び出す必要がある一連の関数があります。私はのInlineScriptに渡すモジュールを定義するが、ダイナミックモジュール「SharedFunctions」 Powershell 4.0のワークフロー内で関数を呼び出す

#Script Only Functions 
function funct1 {} 
function funct2 {} 

#Script and Workflow Functions 
New-Module SharedFunctions { 
    function sharedFunct1 {} 
    function sharedFunct2 {} 
} -Name SharedFunctions | Import-Module 

#Workflow 
workflow w1 { 
    Param([string[]] $computerList) 

    foreach -parallel($computer in $computerList){ 
     #Shared Function out of Inline Script 
     sharedFunct1 


     InlineScript{ 
      #Shared Function inside InlineScript 
      sharedFunct2 
      #Do stuff 
     } -PSRequiredModules "SharedFunctions" 
    } 
} 

<# Local Script #> 
funct1  
sharedFunct1 
w1 

は私が

The specified module 'SharedFunctions' was not loaded because no valid module file was found in any module directory. 
    + CategoryInfo   : ResourceUnavailable: (FunctionModule:String) [Import-Module], FileNotFoundException 
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand 
    + PSComputerName  : [localhost] 

は、私はモジュールという読みのエラーメッセージが表示されますを見つけることができませんインラインスクリプト以下の方法を使用して試してみましたワークフロー内にインポートすることができます。これはダイナミックモジュールでは不可能ですか?ワークフロー内から共有関数を呼び出すにはどうすればよいですか? sharedFunct1は、リモートコンピュータ上で動作する各スレッドからの更新を使用して、ホストコンピュータ上のログファイルを更新するなどのタスクです。

答えて

0

モジュールをインポートすることはメモリからではなくファイルからのみ行うことができます。誰もがワークフローに動的モジュールをインポートする方法を知っているので、もし私が1つのファイルだけに固執するprefereうしかし

<# MODULE.PSM1 #>  
#Script and Workflow Functions   
function sharedFunct1 {} 
function sharedFunct2 {} 

- ファイル1 - -

<# MAIN.PS1 #> 
function funct1 {} 
function funct2 {} 

#Workflow 
workflow w1 { 

    Param([string[]] $computerList) 

    $modDir = "Some Directory" 
    Import-Module $$modDir 

    foreach -parallel($computer in $computerList){ 
     #Shared Function out of Inline Script 
     sharedFunct1 


     InlineScript{ 
      #Import module in each Inline Script 
      Import-Module $using:$modDir 

      #Shared Function inside InlineScript 
      sharedFunct2 
      #Do stuff 
     } 
    } 
} 

<# Local Script #> 
funct1  
sharedFunct1 
w1 

ファイル2をこれはトリックを行っているようです私はそれを見たいと思う。

関連する問題