Проблема делегирования 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 *
,