Лучший отвечающий
Передать учетные данные по сети Powershell

Вопрос
-
Добрый день.
Мне необходимо запустить на удаленной машине процесс от имени другого пользователя(пользователя удаленной машины), код выглядит так:
Invoke-Command -ComputerName test-stepan -ScriptBlock{
param($cred)
Start-Process notepad -WorkingDirectory "C:\windows\system32\" -Credential $cred
} -ArgumentList $credПри выполнение данного кода получаю ошибку:
Не удается выполнить команду из-за следующей ошибки: Отказано в доступе.
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOp
erationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.C
ommands.StartProcessCommand
+ PSComputerName : test-stepanОшибки точно нет в учетных данных. Переменную $cred скрипт получает из функции, в которой имя пользователя подставляется, а пароль берется из файла, где хранится в зашифрованном виде. В чем тут подвох?
7 августа 2013 г. 9:44
Ответы
-
PowerShell Remoting имеет ограничения в безопасности, да и интерактивные процессы не поддерживает.
1) PsExec
psexec -h -u XXX -p Passw0rd1 notepad
2) Task Scheduler(если пользователь вошел в систему)
schtasks.exe /Create /RU XXX /RP Passw0rd1 /SC ONSTART /TN "Report" /TR notepad.exe
schtasks.exe /Run /TN "Report"
schtasks.exe /Delete /TN "Report"- Предложено в качестве ответа Alexander RusinovModerator 7 августа 2013 г. 15:25
- Помечено в качестве ответа SteFFun 9 августа 2013 г. 7:56
7 августа 2013 г. 12:58Отвечающий
Все ответы
-
PowerShell Remoting имеет ограничения в безопасности, да и интерактивные процессы не поддерживает.
1) PsExec
psexec -h -u XXX -p Passw0rd1 notepad
2) Task Scheduler(если пользователь вошел в систему)
schtasks.exe /Create /RU XXX /RP Passw0rd1 /SC ONSTART /TN "Report" /TR notepad.exe
schtasks.exe /Run /TN "Report"
schtasks.exe /Delete /TN "Report"- Предложено в качестве ответа Alexander RusinovModerator 7 августа 2013 г. 15:25
- Помечено в качестве ответа SteFFun 9 августа 2013 г. 7:56
7 августа 2013 г. 12:58Отвечающий -
Но странно, я передаю переменную $cred в сеанс удаленной машины, и в этом сеансе я вижу ее значение, она содержит все необходимые учетные данные. Так почему же она не работает? Если я, к примеру, запрошу учетные данные в интерактивном режиме из сеанса удаленной машины и затем введу их то все сработает.7 августа 2013 г. 13:18
-
Но странно, я передаю переменную $cred в сеанс удаленной машины, и в этом сеансе я вижу ее значение, она содержит все необходимые учетные данные. Так почему же она не работает? Если я, к примеру, запрошу учетные данные в интерактивном режиме из сеанса удаленной машины и затем введу их то все сработает.
Причем тут переменная $cred? Это ограничение безопасности PowerShell Remoting.- Предложено в качестве ответа Alexander RusinovModerator 7 августа 2013 г. 15:25
7 августа 2013 г. 13:27Отвечающий -
Сделал через PSexec, работает. Спасибо!9 августа 2013 г. 7:56