Powershell, Keberos Double Hop, удаленный ScheduledJob - PullRequest
0 голосов
/ 31 августа 2018

У меня типичная ошибка Keberos Double Hop. Я столкнулся с этим с простым кодом.

Я хотел перезапустить несколько серверов с удаленным рабочим столом с одного центрального сервера. Однако серверы, которые должны быть перезапущены, хранятся в файле csv на центральном сервере с их временем перезапуска. Как только я вызываю, я делаю первый прыжок со вторым прыжком, который мне нужен, чтобы прочитать csv, происходящий сразу после.

Я нашёл обходной путь, используя 2 сценария сплита. Но там я получаю ошибку

Invoke-Command: файл \ svkev01 \ C $ \ CSV \ Run2.ps1 не может быть загружен потому что вы решили не запускать это программное обеспечение сейчас.

Я изменил GPO Global для разрешения на чтение и запуск каждого скрипта Также я попытался с Политикой, неограниченной в Выполнении сценария, но это ничего не изменило. Поэтому мне нужна ваша помощь

Код для воспроизведения:

Первая попытка (проблема двойного прыжка)

$listofserver = Import-Csv -Path "\\centralserver\servertorestart.csv" -UseCulture

Foreach ($server in $listofserver) 
{
    $servername = $server.name
    #hop 1
    Invoke-Command -ComputerName $servername -ScriptBlock{
    #hop 2
        $listofserver = Import-Csv -Path "\\centralserver\servertorestart.csv" -UseCulture 
        $servername = $server.name 
        [datetime]$tasktime = $server.time 
        $T = New-JobTrigger -Once -At $tasktime 
        Register-ScheduledJob -Name "Scheduled Server Restart" -Trigger $T -ScriptBlock{ 
            Restart-Computer -ComputerName $servername 
            write-host "Server $servername restarded" 
        }
     }
}

Dual Scripts (именуется ошибкой массаж)

Сценарий 1

Set-ExecutionPolicy unrestricted
$listofserver = Import-Csv -Path "\\centralserver\servertorestart.csv" -UseCulture
$servern = $listofserver.name
$s = New-PSSession -ComputerName $servern -Credential Domain\Administrator
Foreach ($server in $listofserver) 
{
    #hop 1
    Invoke-Command -Session $s -FilePath "\\centralserver\Run2.ps1"
}

Сценарий 2

Set-ExecutionPolicy unrestricted
$listofserver = Import-Csv -Path "\\centralserver\servertorestart.csv" -UseCulture

Foreach ($server in $listofserver) 
{
    $servername = $server.name 
    [datetime]$tasktime = $server.time 
    $T = New-JobTrigger -Once -At $tasktime

    Register-ScheduledJob -Name "Scheduled Server Restart" -Trigger $T -ScriptBlock{ 
        Restart-Computer -ComputerName $servername -Force 
        write-host "Server $servername restarded"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...