Проблема делегирования Kerberos Копирование файлов на удаленный сеанс с функциональным уровнем домена 2008 R2

При запуске кода ниже, я могу поместить что-нибудь в блок внизу - я пытаюсь скопировать папку, чтобы запустить exe-файл из локальной папки и выполнить установку этого exe-файла во время удаленного сеанса на удаленные машины. Я получаю ошибки в доступе. Я прочитал, я не могу использовать командлеты делегирования Kerberos, которые предназначены только для уровня леса 2012 и выше. Текущий сайт имеет функциональный уровень домена 2008 R2. Есть ли другой способ добиться копирования файлов во время каждого удаленного сеанса на компьютеры, указанные в текстовом файле?

заранее спасибо

########################################

$Cred = Get-Credential DOMAIN\USER


$Computers = Get-Content C:\tab.txt | Where-Object { $_ } 

ForEach ($Computer in $Computers)
       #  {
       # if (Test-Connection -ComputerName $Computer -BufferSize 16 -Count 1 ` 
       -Quiet) 
        {

        # Creates a new remote PowerShell Session and script block - enter 
        the code you want to execute remotely from this block 

        $Session = New-PSSession $computer -Credential $cred

            Invoke-Command -Session $Session -ScriptBlock {


        Copy-Item -Path "\\print-server\pcclient\win\*" -Destination 
        "c:\pcclient" -Force -Recurse -Verbose
        # Start-Sleep -s 10  
        # Start-Process "\\Print-Server\PCClient\win\client-local-install.exe" -ArgumentList "/SILENT"   

        }

        }

        Remove-PSSession -Session $Session  

#}

1 ответ

Это потому, что вы находитесь на удаленной машине, пытаясь получить доступ к другому сетевому ресурсу. Когда вы подключаетесь к удаленному компьютеру в PowerShell, вы эффективно подключаетесь / аутентифицируетесь только к этому компьютеру, (если вы не укажете иначе) у него нет доступа к вашим учетным данным для доступа к сетевому ресурсу, поэтому подключение к сетевому ресурсу рассматривается как не прошедший проверку подлинности, следовательно, отказ.

Эта статья https://blogs.technet.microsoft.com/heyscriptingguy/2012/11/14/enable-powershell-second-hop-functionality-with-credssp/ хорошо описывает ее, по сути, вам нужно будет запустить ее локально (разрешить вашей машине передавать учетные данные):

Enable-WSManCredSSP -Role Client -DelegateComputer * -Force

На сервере запустите (чтобы сервер мог принять эти учетные данные):

Enable-WSManCredSSP -Role Server –Force

И обнови свой New-PSSession команда для:

$Session = New-PSSession $computer -Credential $cred -Authentication CredSSP

Если вы хотите, вы можете поделиться своими учетными данными только с определенными машинами или подмножествами домена, используя *.yourdomain.lan или что-то еще, если вы подключаетесь к нескольким машинам, тогда легче использовать -DelegateComputer *,

Другие вопросы по тегам