我有一台启用PS-Remoting的远程计算机,并且能够从客户端/工作站运行命令和脚本。我想以不同的用户身份来运行某些任务,换句话说,就是我连接远程会话时不是同一用户。
我为什么要这样做? 我正在使用puppet-bolt进行远程执行,在这里我可以重用一些已经存在的puppet模块。这个螺栓工具使用WinRM。
我面临的问题是,直接在远程计算机上执行以下命令可以正常工作。我正在使用jetbrains runas实用程序。
# 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执行相同的命令(或),调用命令再次给我同样的错误。我用来连接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:
一些观察结果表明,在PSRemoteSession会话上运行“ runas”命令不会等待输入密码,我还尝试使用PsExec.exe来代替JetBrains runas,这也具有相同的行为。