我想从运行空间调用的模块中有一些函数,但它不起作用。我假设我必须以某种方式将模块发送到运行空间。
下面的示例工作正常。
$hash = [hashtable]::Synchronized(@{})
$hash.OutData
$runspace = [runspacefactory]::CreateRunspace()
$runspace.Open()
$runspace.SessionStateProxy.SetVariable('Hash',$hash)
$powershell = [powershell]::Create()
$powershell.Runspace = $runspace
$powershell.AddScript({
$hash.OutData = Get-Date
}) | Out-Null
$handle = $powershell.BeginInvoke()
While (-Not $handle.IsCompleted) {
Start-Sleep -Milliseconds 100
}
$powershell.EndInvoke($handle)
$runspace.Close()
$powershell.Dispose()
但是,如果我这样调用自己的函数,则 OutData 为空白。该功能在运行空间之外工作正常。
$powershell.AddScript({
$hash.OutData = Get-customData
}) | Out-Null
我需要做什么才能调用我的函数?