Чтобы использовать исправление, найденное в функции Service
, необходимо вернуть исправление в переменную.Функция будет выглядеть следующим образом:
Function Service
{
Write-Host "=================================="
Write-Host "Checking Service Installation"
Write-Host "=================================="
write-host "This will check if Hotfix KB979808 is installed." -ForegroundColor Black -BackgroundColor Cyan
write-host "This is required for Windows Server 2008 R2 Robocopying" -ForegroundColor Black -BackgroundColor Cyan
Write-Host ""
# This will return any output.
Get-HotFix -id KB979808 -ErrorAction SilentlyContinue
}
Тогда вызовы функции будут такими:
$hotfix = Service
if($hotfix) {
Robocopy
}
else {
# This will exit the script.
return
}
Функция Robocopy
не нуждается в $hotfix1
в качестве параметра, поскольку она не используетсяв любом месте функции.
Функция Robocopy
, вероятно, находится в цикле, поскольку вызов robocopy.exe такой же, как и у вашей функции Robocopy
;попробуйте добавить ".exe" в вызов robocopy.exe.Важно назвать функции, чтобы точно отражать их назначение.Service
может быть Get-HotFixKB979808
и Robocopy
может быть Start-MyRobocopy
Сказав все это, поскольку ваши функции выполняют очень специфические функции, они действительно не должны быть их собственными функциями.Вы можете изменить их, чтобы они были более пригодны для повторного использования, если они будут принимать параметры.