ワークフローを使用してリモートコンピュータを管理する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
は、リモートコンピュータ上で動作する各スレッドからの更新を使用して、ホストコンピュータ上のログファイルを更新するなどのタスクです。