Powershell invoke-command рдмрд╛рдЯ SQL Server рдПрдЬреЗрдиреНрдЯрдорд╛ рдорд╛рди рдлрд┐рд░реНрддрд╛ рдЧрд░реНрджреИ

рдзреЗрд░реИ MS-SQL рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд░реЛ рдЖрдлреНрдиреИ рд╡рд┐рдзрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рдореИрд▓реЗ рдЯрд╛рдврд╛рдХреЛ рдХрд▓рд╣рд░реВрдорд╛ Powershell рдорд╛ рдорд╛рдирд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрдиреЗ рд╕рдВрдпрдиреНрддреНрд░рдХреЛ рдЕрдзреНрдпрдпрди рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рдмрд┐рддрд╛рдПрдБ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдЙрдкрдпреЛрдЧреА рдЫ рднрдиреЗ рдо рдЖрдлреИрд▓рд╛рдИ рд░рд┐рдорд╛рдЗрдиреНрдбрд░ рд▓реЗрдЦреНрджреИрдЫреБред рдЕрд░реВ рдХрд╕реИрд▓рд╛рдИред

рддреНрдпрд╕реЛрднрдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓рд┐рдкрд┐рдХреЛ рд╕рд╛рде рд╕реБрд░реВ рдЧрд░реМрдВ рд░ рдпрд╕рд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

$exitcode = $args[0]
Write-Host 'Out to host.'
Write-Output 'Out to output.'
Write-Host ('ExitCode: ' + $exitcode)
Write-Output $exitcode
$host.SetShouldExit($exitcode)

рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рдо рдирд┐рдореНрди CMD рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреБ, рдо рдпрд╕рд▓рд╛рдИ рд╣рд░реЗрдХ рдкрдЯрдХ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрд┐рди:

@Echo OFF
PowerShell .TestOutput1.ps1 1
ECHO ERRORLEVEL=%ERRORLEVEL%

рд╕реНрдХреНрд░рд┐рдирдорд╛ рд╣рд╛рдореА рдирд┐рдореНрди рджреЗрдЦреНрдиреЗрдЫреМрдВ:

Out to host.
Out to output.
ExitCode: 1
1
ERRORLEVEL=1


рдЕрдм WSMAN (рд░рд┐рдореЛрдЯрд▓реА) рдорд╛рд░реНрдлрдд рдПрдЙрдЯреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

Invoke-Command -ComputerName . -ScriptBlock { &'D:sqlagentTestOutput1.ps1' $args[0] } -ArgumentList $args[0]

рд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рдЫ:

Out to host.
Out to output.
ExitCode: 2
2
ERRORLEVEL=0

рдЙрддреНрдХреГрд╖реНрдЯ, рддреНрд░реБрдЯрд┐ рд╕реНрддрд░ рдХрддреИ рд╣рд░рд╛рдПрдХреЛ рдЫ, рддрд░ рд╣рд╛рдореАрд▓реЗ рд▓рд┐рдкрд┐рдмрд╛рдЯ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ! рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ:

$res=Invoke-Command -ComputerName . -ScriptBlock { &'D:sqlagentTestOutput1.ps1' $args[0] } -ArgumentList $args[0]

рдпреЛ рдЭрдиреИ рд░реЛрдЪрдХ рдЫред рдЖрдЙрдЯрдкреБрдЯрдорд╛ рд╕рдиреНрджреЗрд╢ рдХрддреИ рдЧрд╛рдпрдм рднрдПрдХреЛ рдЫ:

Out to host.
ExitCode: 2
ERRORLEVEL=0

рдЕрдм, рдПрдХ рд▓рд┐рд░рд┐рдХрд▓ рдбрд┐рдЧреНрд░реЗрд╢рдирдХреЛ рд░реВрдкрдорд╛, рдо рдиреЛрдЯ рдЧрд░реНрдиреЗрдЫреБ рдХрд┐ рдпрджрд┐ Powershell рдкреНрд░рдХрд╛рд░реНрдп рднрд┐рддреНрд░ рддрдкрд╛рдИрд▓реЗ рд▓реЗрдЦрди-рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛ рдХреБрдиреИ рдкрдирд┐ рдЪрд░рд▓рд╛рдИ рдЕрд╕рд╛рдЗрди рдирдЧрд░реАрдХрди рдХреЗрд╡рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓реЗрдЦреНрдиреБрд╣реБрдиреНрдЫ (рд░ рдпрд╕рд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рдЪреНрдпрд╛рдирд▓рдорд╛ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫ), рддреНрдпрд╕рдкрдЫрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдЪрд▓реНрджрд╛ рдкрдирд┐, рд╕реНрдХреНрд░рд┐рдирдорд╛ рдХреЗрд╣реА рджреЗрдЦрд┐рдиреЗрдЫреИрди! рдпреЛ рдкрд╛рд╡рд░рд╢реЗрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╣реЛ - рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдЖрдлреНрдиреИ рдЖрдЙрдЯрдкреБрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЫ, рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдПрд░реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ рдпрд╕рдорд╛ рдЬрд╛рдиреЗ рд╕рдмреИ рдХреБрд░рд╛рд▓рд╛рдИ рдкреНрд░рдХрд╛рд░реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдкрд░рд┐рдгрд╛рдо рдорд╛рдирд┐рдиреНрдЫ, рд░рд┐рдЯрд░реНрди рдЕрдкрд░реЗрдЯрд░рд▓реЗ рд╕рдорд╛рдирдорд╛ рдлрд┐рд░реНрддрд╛ рдорд╛рди рдердкреНрдЫред рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЕрдиреНрддрд┐рдо рддрддреНрд╡рдХреЛ рд░реВрдкрдорд╛ рд░ рдХрд▓рд┐рдЩ рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдирд┐рдпрдиреНрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдирд┐рдореНрди рд▓рд┐рдкрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

Function Write-Log {
  Param( [Parameter(Mandatory=$false, ValueFromPipeline=$true)] [String[]] $OutString = "`r`n" )
  Write-Output ("Function: "+$OutString)
  Return "ReturnValue"
}
Write-Output ("Main: "+"ParameterValue")
$res = Write-Log "ParameterValue"
$res.GetType()
$res.Length
$res | Foreach-Object { Write-Host ("Main: "+$_) }

рд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рдЫ:

Main: ParameterValue

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array
2
Main: Function: ParameterValue
Main: ReturnValue

рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░реНрдп (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдбреА) рд╕рдБрдЧ рдкрдирд┐ рдЖрдлреНрдиреИ рдЖрдЙрдЯрдкреБрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЫ, рд░ рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рд╕реАрдПрдордбреАрдмрд╛рдЯ рдкрд╣рд┐рд▓реЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдБрдЫреМрдВ, рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ рдлрд╛рдЗрд▓рдорд╛ рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдЧрд░реНрджреИ,

PowerShell .TestOutput1.ps1 1 > TestOutput1.txt

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╕реНрдХреНрд░рд┐рдирдорд╛ рджреЗрдЦреНрдиреЗрдЫреМрдВ

ERRORLEVEL=1

рд░ рдлрд╛рдЗрд▓рдорд╛

Out to host.
Out to output.
ExitCode: 1
1

рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдкрд╛рд╡рд░рд╢реЗрд▓рдмрд╛рдЯ рдпрд╕реНрддреИ рдХрд▓ рдЧрд░реНрдЫреМрдВ

PS D:sqlagent> .TestOutput1.ps1 1 > TestOutput1.txt

рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рд╕реНрдХреНрд░рд┐рдирдорд╛ рд╣реБрдиреЗрдЫ

Out to host.
ExitCode: 1

рд░ рдлрд╛рдЗрд▓рдорд╛

Out to output.
1

рдпреЛ рд╣реБрдиреНрдЫ рдХрд┐рдирднрдиреЗ CMD рд▓реЗ рдкрд╛рд╡рд░рд╢реЗрд▓ рд▓рдиреНрдЪ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐рдорд╛, рджреБрдИ рдереНрд░реЗрдбрд╣рд░реВ (рд╣реЛрд╕реНрдЯ рд░ рдЖрдЙрдЯрдкреБрдЯ) рдорд┐рдХреНрд╕ рдЧрд░реНрджрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ CMD рд▓рд╛рдИ рджрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдХреЛ рд╕рдмреИ рдХреБрд░рд╛ рдлрд╛рдЗрд▓рдорд╛ рдкрдард╛рдЙрдБрджрдЫ, рд░ рдкрд╛рд╡рд░рд╢реЗрд▓рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреЗ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреА рджреБрдИ рдереНрд░реЗрдбрд╣рд░реВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН, рд░ рдкреНрд░рддреАрдХ рд░рд┐рдбрд┐рд░реЗрдХреНрдЯрд▓реЗ рдорд╛рддреНрд░ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдЫред

рдореБрдЦреНрдп рд╡рд┐рд╖рдпрдорд╛ рдлрд░реНрдХреЗрд░, рд╣рд╛рдореАрд▓рд╛рдИ рдпрд╛рдж рдЧрд░реМрдВ рдХрд┐ рдкрд╛рд╡рд░рд╢реЗрд▓ рднрд┐рддреНрд░рдХреЛ .NET рд╡рд╕реНрддреБ рдореЛрдбреЗрд▓ рдПрдХ рдХрдореНрдкреНрдпреБрдЯрд░ (рдПрдЙрдЯрд╛ рдУрдПрд╕) рднрд┐рддреНрд░ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ; WSMAN рдорд╛рд░реНрдлрдд рдЯрд╛рдврд╛рдмрд╛рдЯ рдХреЛрдб рдЪрд▓рд╛рдЙрдБрджрд╛, рд╡рд╕реНрддреБрд╣рд░реВ XML рд╕рд┐рд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдорд╛рд░реНрдлрдд рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдердк рдЪрд╛рд╕реЛ рд▓реНрдпрд╛рдЙрдБрдЫред рдЕрдиреБрд╕рдиреНрдзрд╛рдиред рдирд┐рдореНрди рдХреЛрдб рдЪрд▓рд╛рдПрд░ рд╣рд╛рдореНрд░рд╛ рдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЬрд╛рд░реА рд░рд╛рдЦреМрдВ:

$res=Invoke-Command -ComputerName . -ScriptBlock { &'D:sqlagentTestOutput1.ps1' $args[0] } -ArgumentList $args[0]
$res.GetType()
$host.SetShouldExit($res)

рд░ рдпреЛ рд╣рд╛рдореАрд╕рдБрдЧ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдЫ:

Out to host.

ExitCode: 3

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[]                                 System.Array
╨Э╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨┐╤А╨╡╨╛╨▒╤А╨░╨╖╨╛╨▓╨░╤В╤М ╨░╤А╨│╤Г╨╝╨╡╨╜╤В "exitCode", ╤Б╨╛ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡╨╝: "System.Object[]", ╨┤╨╗╤П "SetShouldExit" ╨▓ ╤В╨╕╨┐ "System.Int32": "╨Э╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨┐╤А╨╡╨╛╨▒╤А╨░╨╖╨╛╨▓╨░╤В╤М ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡ "System.Object[]" ╤В╨╕╨┐╨░ "System.Object[]" ╨▓ ╤В╨╕╨┐ "System
.Int32"."
D:sqlagentTestOutput3.ps1:3 ╨╖╨╜╨░╨║:1
+ $host.SetShouldExit($res)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

ERRORLEVEL=0

рдЙрддреНрдХреГрд╖реНрдЯ рдкрд░рд┐рдгрд╛рдо! рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ Invoke-Command рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрджрд╛, рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВрд▓рд╛рдИ рджреБрдИ рдереНрд░реЗрдб (рд╣реЛрд╕реНрдЯ рд░ рдЖрдЙрдЯрдкреБрдЯ) рдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдлрд▓рддрд╛рдХреЛ рдЖрд╢рд╛ рджрд┐рдиреНрдЫред рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдордорд╛ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рдорд╛рди рдЫреЛрдбреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореАрд▓реЗ рдЯрд╛рдврд╛рдмрд╛рдЯ рдЪрд▓рд╛рдЙрдиреЗ рдкрд╣рд┐рд▓реЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗрдЫреМрдВ:

$exitcode = $args[0]
Write-Host 'Out to host.'
#Write-Output 'Out to output.'
Write-Host ('ExitCode: ' + $exitcode)
Write-Output $exitcode
$host.SetShouldExit($exitcode)

рдпрд╕рд▓рд╛рдИ рдпрд╕рд░реА рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

$res=Invoke-Command -ComputerName . -ScriptBlock { &'D:sqlagentTestOutput1.ps1' $args[0] } -ArgumentList $args[0]
$host.SetShouldExit($res)

рд░... рд╣реЛ, рдпреЛ рд╡рд┐рдЬрдп рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ!

Out to host.
ExitCode: 4

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Int32                                    System.ValueType


ERRORLEVEL=4

рдХреЗ рднрдпреЛ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВред рд╣рд╛рдореАрд▓реЗ рдкрд╛рд╡рд░рд╢реЗрд▓рд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдмреЛрд▓рд╛рдпреМрдВ, рдЬрд╕рд▓реЗ рд░рд┐рдореЛрдЯ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рдкрд╛рд╡рд░рд╢реЗрд▓ рднрдирд┐рдиреНрдЫ рд░ рддреНрдпрд╣рд╛рдБ рд╣рд╛рдореНрд░реЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНтАНрдпреЛред рд░рд┐рдореЛрдЯ рдореЗрд╕рд┐рдирдмрд╛рдЯ рджреБрдИ рд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ (рд╣реЛрд╕реНрдЯ рд░ рдЖрдЙрдЯрдкреБрдЯ) рдХреНрд░рдордмрджреНрдз рдЧрд░рд┐рдпреЛ рд░ рдлрд┐рд░реНрддрд╛ рдкрд╛рд╕ рдЧрд░рд┐рдпреЛ, рдЬрдмрдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдо, рдпрд╕рдорд╛ рдПрдХрд▓ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╛рди рднрдПрдХреЛ, Int32 рдЯрд╛рдЗрдкрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдпреЛ рд░ рдкреНрд░рд╛рдкреНрдд рдкрдХреНрд╖рдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдпреЛ, рд░ рдкреНрд░рд╛рдкреНрдд рдкрдХреНрд╖рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреЛред рдХрд▓рд░ рдкрд╛рд╡рд░рд╢реЗрд▓рдХреЛ рдирд┐рдХрд╛рд╕ рдХреЛрдбрдХреЛ рд░реВрдкрдорд╛ред

рд░ рдЕрдиреНрддрд┐рдо рдЬрд╛рдБрдЪрдХреЛ рд░реВрдкрдорд╛, рдирд┐рдореНрди рдкрд╛рдардХреЛ рд╕рд╛рде "рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо (cmdexec)" рдЯрд╛рдЗрдкрдХреЛ рд╕рд╛рде SQL рд╕рд░реНрднрд░рдорд╛ рдПрдХ-рдЪрд░рдг рдХрд╛рд░реНрдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ:

PowerShell -NonInteractive -NoProfile "$res=Invoke-Command -ComputerName BACKUPSERVER -ConfigurationName SQLAgent -ScriptBlock {&'D:sqlagentTestOutput1.ps1' 6}; $host.SetShouldExit($res)"

рд╣реБрд░реНрд░реЗ! рдХрд╛рд░реНрдп рддреНрд░реБрдЯрд┐ рд╕рдВрдЧ рдкреВрд░рд╛ рднрдпреЛ, рд▓рдЧ рдорд╛ рдкрд╛рда:

╨Т╤Л╨┐╨╛╨╗╨╜╤П╨╡╤В╤Б╤П ╨╛╤В ╨╕╨╝╨╡╨╜╨╕ ╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╨╡╨╗╤П: DOMAINagentuser. Out to host. ExitCode: 6.  ╨Ъ╨╛╨┤ ╨╖╨░╨▓╨╡╤А╤И╨╡╨╜╨╕╤П ╨┐╤А╨╛╤Ж╨╡╤Б╤Б╨░ 6.  ╨и╨░╨│ ╨╖╨░╨▓╨╡╤А╤И╨╕╨╗╤Б╤П ╤Б ╨╛╤И╨╕╨▒╨║╨╛╨╣.

рдирд┐рд╖реНрдХрд░реНрд╖:

  • рд░рд╛рдИрдЯ-рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ рдмрд┐рдирд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпреЛ рдХреЛрдбрд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдЕрдиреНрдпрддреНрд░ рд╕рд╛рд░реНрджрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдирддрд┐рдЬрд╛ рдЖрдЙрди рд╕рдХреНрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛рдорд╛ рд╕рдЪреЗрдд рд░рд╣рдиреБрд╣реЛрд╕реНред
  • рдореНрдпрд╛рдиреБрдЕрд▓ рдкреНрд░рдХреНрд╖реЗрдкрдгрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛрдЗрди, рддрд░ рддрдкрд╛рдЗрдБрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рди рд╕рдВрдпрдиреНрддреНрд░рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА WINRM рдорд╛рд░реНрдлрдд рд░рд┐рдореЛрдЯ рдХрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН/рдХреНрдпрд╛рдЪ рдорд╛рд░реНрдлрдд рдореНрдпрд╛рдиреБрдЕрд▓ рддреНрд░реБрдЯрд┐ рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдЩ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рдХреБрдиреИ рдкрдирд┐ рд╡рд┐рдХрд╛рд╕рдорд╛, рдпреЛ рд▓рд┐рдкрд┐рд▓реЗ рдареНрдпрд╛рдХреНрдХреИ рдПрдХ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░рдХреЛ рдорд╛рди рдкрдард╛рдЙрдБрдЫ рднрдиреНрдиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХреНрд▓рд╛рд╕рд┐рдХ рддреНрд░реБрдЯрд┐ рд╕реНрддрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпреЛ рдорд╛рди рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реБрдиреБрдкрд░реНрдЫред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди