Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] invoke-command ошибка авторизации

Ответить
Настройки темы
PowerShell - [решено] invoke-command ошибка авторизации

Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 11

Профиль | Отправить PM | Цитировать


На 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
Буду раз услышать любые версии и предложения

-------
sory 4 my rus


Отправлено: 19:19, 16-11-2022

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Попробуйте так:
Код: Выделить весь код
invoke-command -computername 'Computer2' -ScriptBlock {
  Get-ChildItem -Path '\\Computer3\c$\tmp'
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 19:45, 16-11-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 11

Профиль | Отправить PM | Цитировать


DJ Mogarych, к сожалению, та же самая ошибка

-------
sory 4 my rus


Отправлено: 20:58, 16-11-2022 | #3


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


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

Код: Выделить весь код
$RS=new-pssession -computername 'Computer2'
invoke-command -session $RS -ScriptBlock { Get-ChildItem -Path 'C:\tmp'}

Отправлено: 00:29, 17-11-2022 | #4


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 11

Профиль | Отправить PM | Цитировать


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

-------
sory 4 my rus


Отправлено: 10:45, 17-11-2022 | #5


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата Loki3D:
Буду раз услышать любые версии и предложения »
Чтобы запускать команды на удаленной машине, надо быть уверенным, что все необходимые условия выполнены...
Цитата:
Перед выполнением Invoke-Command команд на удаленном компьютере прочитайте about_Remote.
Ну и здесь ещё есть подробные инструкции...

-------
scio me nihil scire. Ѫ


Отправлено: 14:28, 17-11-2022 | #6


Аватара для Loki3D

Старожил


Сообщения: 362
Благодарности: 11

Профиль | Отправить PM | Цитировать


Я нашел решение.
Гуглится по 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'
}

-------
sory 4 my rus

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:43, 17-11-2022 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] invoke-command ошибка авторизации

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [блог] Игнорирование проверки сертификата для Invoke-WebRequest/Invoke-RestMethod Kazun Скриптовые языки администрирования Windows 0 07-09-2017 05:30
2008 R2 - Ошибка авторизации через LDAP каталоги. nerevan Windows Server 2008/2008 R2 0 16-11-2012 11:45
Debian/Ubuntu - Ошибка авторизации в CUPS NordWest Общий по Linux 4 06-10-2009 19:43
Ошибка - Ошибка MCI command handling catamount Microsoft Windows 2000/XP 6 17-06-2009 19:20
MS Exchange 2000 - Ошибка #5.3.3 smtp;500 5.3.3 Unrecognized command Pescadero Microsoft Exchange Server 0 19-09-2005 14:46




 
Переход