PsExec访问被拒绝


11

psexec.exe用来在不同的安全上下文中运行程序。但是,程序已启动,但似乎未在指定的安全上下文中运行。

最小形式:

psexec -u wsadmin -p password cmd

如果在该窗口中键入内容,则启动一个新的cmd窗口 whoami

C:\Windows\system32>whoami
win-k1r7g38nlkt\wsadmin

C:\Windows\system32>net localgroup administrators
Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Administrator
wsadmin
The command completed successfully.

如您所见,我肯定是另一个用户。我可以确认此用户是“管理员组”的成员

C:\Windows\system32>mkdir test
Access is denied.

如果我对指定的用户使用runas,它将按预期工作。但是我需要在命令行中提供密码。

Answers:


10

在Windows Vista和更高版本上,如果启用了UAC,则启动程序psexec(即使从管理员帐户运行)启动的进程也必须设置其提升令牌才能获得全部特权。这可以通过-hpsexec命令行中传递属性来完成。因此,您可以将命令更改为:

psexec -h -u wsadmin -p password cmd

有关更多信息,请运行psexec /?

    -h    If the target system is Vista or higher, has the process
          run with the account's elevated token, if available.

9
不幸的是,这给了我“无法安装PSExec服务访问被拒绝”
Tuim 2013年

您是否还在提升的命令提示符下运行初始命令,还是将其用作本地运行方式?
nhinkle

原始命令运行“用户”安全上下文。出于特定原因,我无法使用运行方式。
Tuim

1
通过“开始”>“键入” PowerShell”>“右键单击” Windows PowerShell”>选择“以管理员身份运行”,然后运行psexec命令(包括该-h选项),使用“高架命令提示符”或“高架PowerShell提示符”
Underverse

@Underverse,是否可以从用户CMD使用psexec,而不是从管理员PS使用psexec?我想使用psexec准确地将CMD转换为管理上下文:)
Suncatcher

5

我花了时间找工作方式,以PsExec两者之间的Windows 7的计算机使用非管理员用户启动PsExec...禁用UAC( ,EnableLUA=0ConsentPromptBehaviorAdmin=0LocalAccountTokenFilterPolicy=1没有工作,关闭防火墙没有工作...

在这里,我找到了工作方式-感谢JelmerS :(来自PSexec的信息未使用提供的用户名和密码连接到计算机

这是因为在以其他用户身份执行命令之前,psexec仍然尝试使用ADMIN$本地凭据访问共享。根据该线程,您可以在执行psexec之前缓存凭据:

cmdkey.exe /add:MACHINE_NAME_HERE /user:MACHINE_NAME_HERE\Administrator /pass:PASSWORD_HERE 
psexec.exe \\MACHINE_NAME_HERE -i notepad
cmdkey.exe /delete:MACHINE_NAME_HERE

注意-如果您不想在命令行历史记录中输入密码,则可以只使用/ pass而不输入密码,然后系统会提示您输入密码。
编码员乔

1

我找到了解决方案:

事实证明,启用UAC后,psexec无法按预期方式工作。
无论何时HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA将其设置为0psexec都能按预期工作。


4
不需要更改注册表的另一种方法是将-h标志添加到psexec命令中。这告诉它使用提升的令牌运行命令,这等效于从上下文菜单中以“以管理员身份”启动进程。
nhinkle

5
设置EnableLUA0disables Admin Approval Mode,这基本上是UAC的核心。结果,UAC将被禁用。来源
VlastimilOvčáčík13年

对我来说,-h标志不起作用,并且禁用UAC令人不安,但是我找到了一个更好的选择
mTorres

0

这是对我有用的方法,它不能完全摆脱UAC,但可以为管理员关闭

计算机配置\ Windows设置\安全设置\本地策略\安全选项\用户帐户控制:以管理员批准模式运行所有管理员-已禁用


这并不是一个好主意。另外,与其他可用解决方案相比,这有何改进?
赛斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.