是否有相当于 Windows 的 SU

BIB*_*IBD 34 windows windows-server-2003 active-directory windows-xp

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

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

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit
Run Code Online (Sandbox Code Playgroud)

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

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

小智 20

我很确定没有支持的方法可以在没有该用户凭据的情况下以其他用户身份运行。这是一种不可否认的措施。有人不能说:“我没有做”,因为要么是他们做的,要么是有证书的人做的。第二,他们必须向另一个人提供凭据。

通常,当我以其他用户身份登录时,我如何做我需要做的事情是使用远程协助基本上 RDP 进入会话,并让他们授予我控制权。然后我在他们观看的时候做任何事情(大概,无论如何)。

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

  • 我理解他们想要做什么。我只是认为它比实际安全更安全。 (10认同)
  • 我相信这是正确的。而且,恕我直言,这是对 UNIX 世界的安全性*改进*。我喜欢这样的想法,即使没有我的密码,管理员也不能成为我。 (8认同)
  • 管理员可以通过重置密码来接管另一个用户。然后他们可以以您的身份登录。但是,如果您这样做,就会有证据线索。首先,用户密码已更改,以便他们知道。其次,会有审计日志(假设启用了审计)。 (3认同)
  • 这也是我通常的操作方式。然而,有一点我说“如果我是鲍勃,为鲍勃做这件事会容易得多”,但鲍勃一个小时前回家了。 (3认同)

小智 18

我注意到很多其他人提到 runas 命令的变体以及您需要如何知道用户密码,这真的,但我认为没有人安静地回答了这个问题。“想要整个桌面将成为用户的等等,而不仅仅是在 cmd 窗口中”。这是我的方法:

注意:稍后我将把第一个命令提示符称为 CP1 以消除混淆。

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

对于本地帐户

runas /profile /user:computernamehere\username cmd
Run Code Online (Sandbox Code Playgroud)

对于帐户

runas /profile /user:domainname\username cmd
Run Code Online (Sandbox Code Playgroud)

或者我喜欢的方式

runas /profile /user:username@domainname cmd
Run Code Online (Sandbox Code Playgroud)

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

打开 CP1 并输入:

taskkill /f /IM explorer.exe
Run Code Online (Sandbox Code Playgroud)

打开 CP2 并输入:

explorer.exe
Run Code Online (Sandbox Code Playgroud)

根据计算机,如果用户以前从未登录过,它可能会为用户创建配置文件。您可以稍后通过保持命令提示符窗口打开以供以后使用来节省自己的麻烦。

当你完成你的工作后,反过来做同样的事情。

在 CP2 类型中:

taskkill /f /IM explorer.exe
Run Code Online (Sandbox Code Playgroud)

打开 CP1 并输入:

explorer.exe
Run Code Online (Sandbox Code Playgroud)

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

希望这有帮助。

  • 那是某种深奥的魔法。 (3认同)

Eva*_*son 7

Windows 中没有内置机制来执行此操作。它可以完成,但是您将不得不编写一些东西来做您想做的事情,并且您可能不得不处理未记录的 API。

这里的海报之一,grawity,通过调用 CreateProcessAsUser() 是正确的,但是您需要首先使用未记录的本机 API zwCreateToken 创建一个令牌。如果你杀死了 Explorer 并使用 CreateProcessAsUser() 启动了一个新的 Explorer 实例,我相当肯定你会得到想要的。

Microsoft 不会使您想做的事情变得简单,因为这不是他们希望您使用 NT 的方式。如果您需要以用户身份登录以解决他们的问题,在大多数情况下,您会以次优方式进行处理。

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

如果您必须这样做,请查看 Code Project 上的 RunAsEx。该代码应该让您对需要做什么有一个很好的了解。我还没有尝试过这个程序,但看起来它以正确的方式处理所有事情。


Dou*_*xem 5

您可以在 Windows XP 及更高版本上使用以下命令:

RunAs.exe
Run Code Online (Sandbox Code Playgroud)

命令行选项在此处可用。

如果不知道用户密码,这将不起作用。由于安全标识符的加载方式,我认为 Windows 中没有办法在没有密码的用户帐户下进行操作。

  • 我相信 RunAs 程序仍然要求您知道用户的密码,我相信最初的问题是未知的 (3认同)