我在以管理员权限运行命令提示符时遇到一些问题。
我使用此命令以特定用户身份运行:
runas /user:DOMAIN\MYUSER cmd
该用户是本地组DOMAIN\MYUSER
的成员。DOMAIN\Domain Administrators
Administrators
但当我尝试运行时,net start/stop MyService
出现拒绝访问错误。有什么建议吗?
答案1
如果不知道要在什么操作系统上执行此操作,就很难知道。
如果您运行的是具有 UAC 的操作系统,我会先尝试运行提升的 CMD 提示符:
以管理员用户身份登录。单击“开始”,然后在搜索框中键入 CMD。右键单击 CMD.exe 并选择以管理员身份运行。现在尝试 Net Stop/Start,看看它是否有效。
如果可行,那么至少您可以缩小问题范围(即,这不应该是特定用户的权限问题)。如果不可行,那么您可能存在该用户的权限问题。
还可以尝试在事件查看器中查看是否报告了特定问题(例如,它可能会告诉您为什么无法停止/启动该服务)。
如果您从 Windows Server 2003 升级,那么您可能会发现 runas(右键单击以管理员身份运行)不起作用。有一篇 Microsoft 文章提供了一些解决此问题的方法 - 请参阅http://support.microsoft.com/kb/977513。
答案2
我在 Windows 7 Professional 上遇到了类似的问题。
当我在 PowerShell 中键入时,runas /user:UserAdmin cmd
它会要求我在 PowerShell 中输入密码,并且我得到一个命令提示符,其窗口标题为cmd (running as hostname\UserAdmin)
。当我尝试在此新提示中启动或停止服务时,net start MyService
我收到访问被拒绝错误。
但是,如果我使用命令start-process cmd -verb runas
,则会弹出图形 UAC 对话框并要求我输入凭据,然后打开一个命令提示符,其窗口标题为Administrator: C:\windows\system32\cmd.exe
...显然这是两件不同的事情,因为net start MyService
在这个上运行良好。
您可能能够使用后一种方法来运行脚本(使用 .PS1 PowerShell 脚本而不是简单的 .BAT 文件)
注意:UserAdmin
是属于管理员组成员的本地计算机用户帐户。
答案3
无论如何 - 当我将批处理文件作为计划任务运行时(我请求允许的最大权限)是可以的。它只是不适用于 runas->例如,无论如何我都没有在这里获得管理员权限。但计划任务就足够了 - 无论如何我都需要使其自动化。
答案4
我遇到了完全相同的问题。如果不“以管理员身份运行”,我无法启动/停止 win 服务。我以为我的 UAC 被禁用了(UAC 滑块处于“不通知”值),但使用滑块禁用 UAC 是不够的。使用 Regedit 禁用 UAC确保 UAC 确实被禁用(需要重新启动)。现在我的脚本无需使用 runas 命令即可运行。希望它能对某些人有所帮助。