У меня есть удаленный компьютер, на котором включен PS-Remoting, и я могу запускать команды и сценарии с моей клиентской / рабочей станции. Я хочу запускать определенные задачи от имени другого пользователя, другими словами, от имени другого пользователя, когда я подключаю удаленный сеанс.
Почему я это делаю?
Я использую Puppet-Bolt для удаленного выполнения, где я могу повторно использовать некоторые уже существующие кукольные модули. И этот инструмент болт использует WinRM.
Проблема, с которой я сталкиваюсь, заключается в том, что выполнение приведенной ниже команды непосредственно на удаленной машине работает нормально. Я использую утилиту для запуска реактивных мозгов.
# Executing this command directly on the remote machine's powershell prompt works.
C:\agent\tools\custom_runas.exe '-u:ad_domain\username' '-p:password' C:\Windows\System32\HOSTNAME.EXE
Если я выполню ту же команду через PS-RemoteSession (или), Invoke-Command снова выдаст мне ту же ошибку. Пользователь, которого я использую для подключения службы WinRM, является администратором.
PS C:\WINDOWS\system32> Invoke-Command -ComputerName $CName -Credential $Crdn -ScriptBlock { C:\agent\tools\custom_runas.exe '-u:ad_domain\username' '-p:password' C:\Windows\System32\HOSTNAME.EXE }
JetBrains RunAs x86 1.0.0.061
Copyright (C) 2017 JetBrains. All rights reserved.
Runs a process under the specified windows user account.
Argument(s): -u:ad_domain\username -p:***** C:\Windows\System32\HOSTNAME.EXE
Settings:
user_name: username
domain: ad_domain
working_directory: C:\Users\UserName\Documents
exit_code_base: -100000
integrity_level: auto
inheritance_mode: auto
show_mode: hide
self_testing: 0
executable: C:\Windows\System32\HOSTNAME.EXE
NotSpecified: (:String) [], RemoteException
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
+ PSComputerName : remotemachine
NotSpecified: (:) [], RemoteException
Error: Access is denied.
CreateProcessWithLogonW returns the Win32 error 0x00000005.
command_line_args:
Некоторые наблюдения, при запуске команды runas в сеансе PSRemoteSession не дожидается ввода пароля, и я также попытался использовать PsExec.exe отдельно от runas JetBrains, который также имеет такое же поведение.