我已在系统上禁用 UAC,并且所有命令提示符都以提升权限启动(“管理员:...”)。即使我从“开始”菜单启动 cmd.exe,它仍以提升权限启动。
有没有办法以某种方式运行非提升的命令提示符?
我需要它,这样我就可以修复某些软件中的错误,除非以管理员身份运行,否则该软件无法正常工作。
答案1
Sysinternals 来救援了!不久前添加了一个选项,可以以受限用户身份运行命令。
Usage: psexec [\\computer[,computer2[,...] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,... ] cmd [arguments]
-d Don't wait for application to terminate. Only use this option for non-interactive applications.
-e Does not load the specified account's profile.
-f Copy the specified program to the remote system even if the file already exists on the remote system.
-i Run the program so that it interacts with the desktop of the specified session on the remote system. If no session is specified the process runs in the console session.
-l Run process as limited user (strips the Administrators group and allows only privileges assigned to the Users group). On Windows Vista the process runs with Low Integrity.
具体来说,我建议运行
psexec -i -d -l "your command here"
这将以交互方式运行命令(以便您可以看到结果),分离方式(因此命令行立即返回 - 不是严格必要的),并以受限用户身份运行。
答案2
您可以从计算机的管理员组中删除您的用户名,或者创建另一个没有管理员权限的帐户。
答案3
以下命令将在没有权限的情况下以受限用户身份运行程序。换句话说,完整性级别将是中等,而不是高或低。
psexec -u %USERDOMAIN%\%USERNAME% -p password command arguments
添加 -l 将以受限用户身份(即完整性级别低)运行该程序。
答案4
据我所知,你不能“取消”某个进程。
如果您从另一个应用程序(非提升的应用程序)启动 cmd.exe,它不应以管理员身份启动。