进程的内置方法,要解决此情形中出现的问题就很困难。
如果没有针对此情形的解决方案,本文会让人感到非常沮丧。幸运的是,我的一个原始的提升 PowerToy 就为解决第二个问题提供了关键的切入点;而关于第一个问题,我已经找到了另一种解决办法。
这就证明了提升命令 PowerToy 可以与 runas 命令一起使用。上一个命令无法引发提升提示,但以下命令就可以:
runas /user:mydomain\admin
"elevate mmc.exe%windir%\system32\dsa.msc" |
这样,runas 就会以其他用户身份启动 elevate.cmd(从技术角度讲,正在启动的进程是 cmd.exe),而提升命令会使用提升提示启动 mmc.exe。
最后,我将此方法与针对 .exe 和 .msc 文件的文件关联结合使用,并提供了 HTML 应用程序用户界面以创建一个 PowerToy,使用该 PowerToy 即可创建通过右键单击菜单来启用的“以其他用户身份运行”选项。当选择“以其他用户身份运行”时,会出现如图 1 所示的 HTML 应用程序。

图 1 “以其他用户身份运行”工具
此处只需输入用户名和域(使用本地计算机上的帐户),选中“使用本地帐户”复选框。然后,您可以单击“运行”按钮以标准用户身份启动该应用程序,或者单击“以管理员身份运行”按钮使用提升权限启动该应用程序。单击上述任一按钮后,runas.exe 就会运行并提示您输入密码或智能卡 PIN。
此 PowerToy 要用到提升命令 PowerToy,所以需要首先安装它。然后右键单击 RunAs.inf 文件,选择“安装”,并批准提升。要卸载此工具,可使用“程序和功能”控制面板。
您会看到“管理工具”(如“计算机管理”)中的部分 .msc 文件快捷方式将使用此 PowerToy。但请注意,如果您使用 adminpak.msi 安装 Windows Server® 2003 管理工具,则创建的快捷方式不是 .msc 文件的标准快捷方式。此时将显示 Windows Installer 快捷方式,所以 Windows 资源管理器不会显示这些快捷方式的“以其他用户身份运行”选项。
对于这些快捷方式,您必须找到实际的 .msc 文件并且右键单击,或为 .msc 文件创建新的快捷方式。此外,runas 不适用于 Internet Explorer®,这是因为 Internet Explorer 针对 Windows Vista 中的保护模式进行了重新构建。
备注:在完成这些 PowerToy 后到发表本文前的这段时间里,Windows Sysinternals 发布了一个新工具,其功能与我的“以其他用户身份运行”PowerToy 非常相似。此工具称为 ShellRunas。
因为 Sysinternals 的员工已编写了具体的代码,所以您可能更倾向于使用此工具。我决定将我的方法保留在本文中,作为一个示例,借以展示如何借助脚本代码使用 HTML 应用程序实现此特殊任务以及通常的 shell 扩展。
以系统身份在此处打开 CMD 提示符和 PowerShell 提示符
需要在本地系统上下文中运行程序的情况有多种。例如,多个软件分发工具(如系统中心配置管理器 (SCCM))使用以本地系统身份运行的客户端代理完成任务时。
要在尝试使用 SCCM 等产品进行分发前测试以本地系统身份运行的软件安装程序的行为,使用以本地系统身份运行的命令提示符启动此安装程序将非常有帮助。因此,我决定创建自己的“以系统身份在此处打开 CMD 提示符”和“以系统身份在此处打开 PowerShell 提示符”PowerToy。
在使用 Windows XP 时,我经常使用命令 shell 脚本实现此类功能:
@echo off
sc create CmdAsSystem type= own type= interact
binPath= "cmd /c start cmd /k (cd c:\ ^& color ec ^&
title ***** SYSTEM *****)"
net start CmdAsSystem
sc delete CmdAsSystem |
但是,如果您尝试在 Windows Vista 上从提升命令提示符运行它,将出现以下错误消息,并且不会出现以系统身份运行的命令提示符: 本文章更多内容:<<上一页 - 1 - 2 - 3 - 4 - 下一页>> |