У меня есть несколько функций в модуле, которые я хотел бы вызвать из области выполнения, но они не работают. Я предполагаю, что мне как-то нужно отправить модуль в пространство выполнения.
Пример ниже работает нормально.
$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
Что мне нужно сделать, чтобы вызвать мою функцию?