PowerShell - [решено] invoke-command ошибка авторизации

Ответить
Аватара пользователя
Loki3D

PowerShell - [решено] invoke-command ошибка авторизации

Сообщение Loki3D »

На Computer1 выполняю скрипт.





Код:

Код: Выделить всё

$RS=new-pssession -computername 'Computer2'
invoke-command -session $RS -ScriptBlock {
  Get-ChildItem -Path '\\Computer3\c$\tmp'
}

на выходе получаю ошибку.



Код:

Код: Выделить всё

Access is denied
    + CategoryInfo          : PermissionDenied: (\\Computer3\C$\tmp:String) [Get-ChildItem], UnauthorizedAccessException
    + FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand
    + PSComputerName        : Computer2
Cannot find path '\\--\C$\BASE\TEST8\SERVER\AdminToolKit\Server' because it does not exist.
    + CategoryInfo          : ObjectNotFound: (\\Computer3\C$\tmp:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
    + PSComputerName        : Computer2

Учетная запись, под которой выполняется скрипт имеет права локального администратора на всех трех машинах.

Путь существует, и доступен.



пробовал добавлять авторизацию - не помогает.



Код:

Код: Выделить всё

$RS=new-pssession -computername 'Computer2' -Credential $myCred

Буду раз услышать любые версии и предложения Изображение
Аватара пользователя
DJ Mogarych

Re: PowerShell - [решено] invoke-command ошибка авторизации

Сообщение DJ Mogarych »

Попробуйте так:



Код:

Код: Выделить всё

invoke-command -computername 'Computer2' -ScriptBlock {
  Get-ChildItem -Path '\\Computer3\c$\tmp'
}
Аватара пользователя
Loki3D

Re: PowerShell - [решено] invoke-command ошибка авторизации

Сообщение Loki3D »

DJ Mogarych, к сожалению, та же самая ошибка
Аватара пользователя
Loki3D

Re: PowerShell - [решено] invoke-command ошибка авторизации

Сообщение Loki3D »

А путь точно должен быть в таком виде? Если вы открыли сессию, значит вы уже оказались в окружении 'Computer2'. Попробуйте с обычными путями:





Код:

Код: Выделить всё

$RS=new-pssession -computername 'Computer2'
invoke-command -session $RS -ScriptBlock { Get-ChildItem -Path 'C:\tmp'}
Аватара пользователя
Loki3D

Re: PowerShell - [решено] invoke-command ошибка авторизации

Сообщение Loki3D »

Foreigner, К сожалению для моей задачи требуется удаленый вызов кода на Computer2, где требуется обращение к файлам на Computer3
Аватара пользователя
YuS_2

Re: PowerShell - [решено] invoke-command ошибка авторизации

Сообщение YuS_2 »

Цитата Loki3D:



Буду раз услышать любые версии и предложения
PowerShell - [решено] invoke-command ошибка авторизации




Чтобы запускать команды на удаленной машине, надо быть уверенным, что все необходимые условия выполнены...


Цитата:



Перед выполнением Invoke-Command команд на удаленном компьютере прочитайте
about_Remote
.



Ну и
здесь
ещё есть подробные инструкции...
Аватара пользователя
Loki3D

Re: PowerShell - [решено] invoke-command ошибка авторизации

Сообщение Loki3D »

Я нашел решение.

Гуглится по PowerShell Second-Hop и Enable-WSMaCredSSP

Причина ошибки доступа изложена
Здесь
.

По соображениям безопаности Вашы учетные данные не наследуются и не делегируются при обращении с удаленной машины к другой удаленной машине.

Мой случай и его решение описаны
Здесь




Важно в открытии сесси обязательно передавать учетные данные и указать метод авторизации.



В итоге на Computer1 выполняем



Код:

Код: Выделить всё

Enable-WSManCredSSP -Role Client -DelegateComputer 'Computer2', 'Computer3' -Force

На Computer2 и Computer3

выплоняем



Код:

Код: Выделить всё

Enable-WSManCredSSP -Role Server -Force



Код:

Код: Выделить всё

$Pas=ConvertTo-SecureString 'password' -AsPlainText -Force
$cred=New-Object System.Management.Automation.PSCredential ('MyLogin', $Pas)
$RS=new-pssession -computername 'Computer2' -Credential $cred -Authentication Credssp
invoke-command -session $RS -ScriptBlock {
  Get-ChildItem -Path '\\Computer3\c$\tmp'
}
Ответить

Вернуться в «Скриптовые языки администрирования Windows»