底部是 TLDR 版本。我想创建一个桌面快捷方式,这样就可以打开命令提示符,就像我使用了“以管理员身份运行”选项一样,但只需双击快捷方式,然后系统就会提示我输入要与硬编码用户名一起使用的密码。
我已经针对‘Active Directory 用户和计算机’完成了以下操作:
目标:C:\Windows\System32\runas.exe /netonly /user:adminusername@domain "mmc %SystemRoot%\system32\dsa.msc" 启动于:%windir%\System32
当我单击此快捷方式时,我会收到一个命令提示符,要求我输入我的管理员帐户密码,然后它会使用我的管理员帐户打开 AD 用户和计算机。
我尝试使用 cmd.exe 执行该命令,但它完全以该用户的身份运行,而不是我想要的以登录的非管理员用户身份运行,但具有在 UAC 提示中输入的管理员用户/密码授予的管理员权限。
我发现了一个类似的问题,但我看到的唯一真正回答这个问题的答案并没有实现我想要的功能(而且我认为也没有实现另一个问题的 OP 想要的功能)。https://stackoverflow.com/questions/5944180/how-do-you-run-a-command-as-an-administrator-from-the-windows-command-line#:~:text=84-,All,-you%20have%20to
那里的答案表明:
您所要做的就是使用 runas 命令以管理员身份运行您的程序(但有一个警告)。
runas /user:Administrator "cmdName 参数" 在我的例子中,这是: runas /user:Administrator "cmd.exe /C %CD%\installer.cmd %CD%"
我使用这个命令的问题是,它与在开始菜单的 cmd 中选择以管理员身份运行选项不同。如果您导航到 c:\users%username%\,上面的命令将返回 runas/admin 路径。如果您从开始菜单使用以管理员身份运行选项,该命令将返回已登录的非管理员用户的用户路径。此外,它似乎甚至没有以某种方式授予 cmd 管理员权限。当我从打开的窗口运行 net stop spooler 时,它给出了一个访问被拒绝的错误。
我知道我可以创建一个 cmd.exe 的快捷方式,然后在属性中选择以管理员身份运行,使其执行 UAC 提示。我想避免每次都输入用户名,并希望结果与我对 Active Directory 的快捷方式所做的相同,我只需要输入密码。
谢谢!
TLDR 版本:当我在开始菜单上的命令提示符选项中单击“以管理员身份运行”时,实际上执行了什么命令以使其以非管理员用户身份运行,但能够进行管理员级别的更改?
答案1
如果您想创建一个快捷方式以具有管理员权限打开命令提示符,而无需每次都提示输入用户名和密码,您可以按照以下步骤操作:
- 右键单击桌面或要创建快捷方式的文件夹。
- 选择“新建”,然后选择“快捷方式”。
- 在“键入项目的位置”字段中,输入以下命令:
%windir%\System32\cmd.exe /k %windir%\System32\runas.exe /用户:管理员/savecred "cmd.exe /k"
此命令打开命令提示符 (cmd.exe),并使用 runas.exe 以管理员权限 (/user:Administrator) 执行另一个 cmd.exe 实例。/savecred 标志告诉 runas.exe 保存输入的凭据,这样以后就不会再提示您输入这些凭据了。
点击下一步。”
输入快捷方式的名称,例如“Admin CMD”,然后单击“完成”。
现在,当您双击快捷方式时,它将以管理员权限打开命令提示符,而无需输入用户名和密码。请记住,第一次运行此快捷方式时,仍会提示您输入管理员密码,但此后,它应该会记住凭据。