вызов определяемой пользователем функции внутри блока сценария в Powershell

Я хочу использовать функцию многопоточности в powershell, поэтому я рискнул использовать модуль Start-Job.

Ниже приведен сценарий, который я использую для выполнения блока кода на нескольких серверах.

function get-isSystemUp($server,$serviceName)
    {
        $state=$null;
        Write-Host "Server Info:" $server    $serviceName;
        if(Test-Connection -BufferSize 2 -Count 1 -ComputerName $server -Quiet ) {
            $services=Get-Service -ComputerName $server -Name $serviceName -EA Stop |Select-Object Name, Status
            if($services.Status -ieq "running"){
                $state=$true;
            }else{
                Write-Host "Service not running";
                $state=$false;
            }
        }else{
            Write-Host "Test connection not working";
            $state=$false;
        }


    return $state;
}  
$SQLDetail={
        Param([String]$FarmInstanceName,[String]$serverName,[String]$sqlInstanceName,[String]$serviceName) 
        Write-host "##########################################################"
        Write-host "###############Server parsed:$serverName##################"
        Write-host "##########################################################"
        #Creating SQL OBject for the server

        $systemState=get-isSystemUp -server $serverName -serviceName $serviceName
}
ForEach($dataread in $ServerList)  
{ 
    #$sqlInstanceName = $computername1
    $dataread = $dataread -split (",")
    $FarmInstanceName = $dataread[0]
    $serverName=$dataread[1]
    $sqlInstanceName = $dataread[2]
    $farms += @(  
            $FarmInstanceName
    )
    Start-Job -scriptblock $SQLDetail  -ArgumentList $FarmInstanceName,$serverName,$sqlInstanceName,$serviceName
}
Get-Job | Wait-Job 
$out = Get-Job | Receive-Job 
$out
Get-Job|Remove-Job

Приведенный выше код проверяет, запущен ли и работает ли сервер, а get-isSystemUp является определяемой пользователем функцией, а ниже приведена ошибка, которую я получаю, которая указывает, что функция get-isSystemUp не существует.

The term 'get-isSystemUp' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify 
that the path is correct and try again.
    + CategoryInfo          : ObjectNotFound: (get-isSystemUp:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
    + PSComputerName        : localhost

Не могли бы вы сообщить мне, как вызвать пользовательскую функцию внутри блока сценариев.


person SQLDoctor    schedule 24.08.2017    source источник
comment
stackoverflow.com/questions/7162090/ - или вы можете просто поместить функцию в блок скрипта.   -  person Thomas Glaser    schedule 24.08.2017
comment
@Raziel Разиэль Конечно, я попробую все вышеперечисленное и вернусь к вам.   -  person SQLDoctor    schedule 24.08.2017