Windows 上是否有与 SU 相当的程序

Windows 上是否有与 SU 相当的程序

有没有办法(以管理员或管理员组成员身份登录时)伪装成非特权用户?特别是在 AD 环境中。

例如,在 Unix 世界中我可以执行以下操作(以 root 身份):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

我需要在用户帐户上测试/配置某些内容,但我不想知道他们的密码或重置密码。

编辑:
runas不会削减它。理想情况下,我的整个桌面将成为用户的,等等,而不仅仅是在 cmd 窗口中。

答案1

我非常肯定,没有一种支持以其他用户身份运行的方法,无需该用户的凭证。这是一种不可否认的措施。有人不能说:“我没有做过这件事”,因为要么是他们做的,要么是拥有他们凭证的人做的。而对于第二种情况,他们必须向对方提供凭证。

通常情况下,当我以其他用户身份登录时,我需要做的就是使用远程协助,通过 RDP 进入会话,并让他们授予我控制权。然后我在他们注视下做任何事情(至少是这样的)。

其他任何事情通常都可以通过 GPO/脚本来完成。

答案2

我注意到很多人提到了 runas 命令的变体,以及你需要知道用户密码,这是的,但我不认为有人能安静地回答这个问题。“想要所有的桌面将成为用户的,等等,而不仅仅是在 cmd 窗口中”。这是我的处理方式:

笔记:我将把这个第一个命令提示符称为 CP1,以消除以后的混淆。

在您的管理员帐户下,打开命令提示符

为了当地的帐户

runas /profile /user:computernamehere\username cmd

为了领域帐户

runas /profile /user:domainname\username cmd

或者我喜欢的方式

runas /profile /user:username@domainname cmd

笔记:将打开一个新的命令提示符(CP2),这是您尝试登录的用户。

打开 CP1 并输入:

taskkill /f /IM explorer.exe

打开 CP2 并输入:

explorer.exe

根据计算机的不同,如果用户以前从未登录过,它可能会为用户创建个人资料。您可以通过以下方式省去以后的麻烦:保持命令提示符窗口打开以供日后使用。

当你完成工作时,只需反向执行相同的操作即可。

在 CP2 中输入:

taskkill /f /IM explorer.exe

打开 CP1 并输入:

explorer.exe

您现在应该回到原来的管理员帐户。您可以点击 Windows 键并查找当前用户面板进行快速检查。

希望这有帮助。

答案3

Windows 中没有内置机制来执行此操作。虽然可以执行此操作,但您必须编写一些代码来执行您想要的操作,并且您可能不得不使用未记录的 API。

这里的一位发帖人,grawity,在调用 CreateProcessAsUser() 时说得对,但您需要先使用未记录的本机 API zwCreateToken 创建一个令牌。如果您关闭 Explorer 并使用 CreateProcessAsUser() 启动一个新的 Explorer 实例,我相当肯定您会得到您想要的。

Microsoft 不会让您轻松完成任务,因为这不是他们希望您使用 NT 的方式。如果您需要以用户身份登录才能解决他们的问题,那么在大多数情况下,您只能以次优方式进行操作。

您可以更改用户的注册表,而无需以用户身份登录(通过附加其注册表配置单元并以此方式进行操作)。您可以更改其用户配置文件中的文件,而无需以用户身份登录。如果您需要“以用户身份”进行“设置电子邮件”或其他此类活动,您应该编写脚本或利用内置功能(组策略管理模板、首选项等)来为您完成这些脏活。

如果你要做到这一点,请查看 Code Project 上的 RunAsEx。该代码应该能让您很好地了解需要做什么。我还没有尝试过这个程序,但它看起来一切都在以正确的方式进行。

答案4

(只是猜测。)如果您的帐户有SeCreateTokenPrivilege,您可以编写一个小程序来使用或类似的功能创建一个进程CreateProcessAsUser()......(但默认情况下即使是管理员也没有该权限。)

相关内容