警告:服务 CmdAsSystem 被配置为交互式服务,其服务不受支持。该服务可能无法正常起作用。
问题在于此脚本将尝试创建并启动一项交互式服务,但交互式服务由于 Windows Vista 中的会话 0 隔离而无法正常工作。
为解决此限制,我使用了 Sysinternals 开发的 Psexec 工具。此工具允许在系统上下文中启动进程。遗憾的是,多数 Sysinternals 工具都未提供安装程序。因此,我提供了一个 INF 文件(包含在代码下载中),用于将整个 Sysinternals 套件(包括 Psexec)安装到 Program Files\Sysinternals Suite 下。它还有另一个好处,即此 INF 文件将为套件的图形工具创建开始菜单快捷方式。
要安装套件,并解压到某个文件夹。将我的 INF 文件 (Install_SysinternalsSuite.inf) 复制到该文件夹,右键单击 Install_SysinternalsSuite.inf,然后选择“安装”。因为这些新的 PowerToy 使用提升命令 PowerToy,所以接下来要安装它。然后,您可以安装 CmdHereAsSystem.inf 和 PowerShellHereAsSystem.inf。安装好这些 PowerToy 后,在 Windows 资源管理器中右键单击文件和驱动器的项目,即可显示“以系统身份在此处打开 CMD 提示符”和“以系统身份在此处打开 PowerShell 提示符”选项,如图 2 所示。

图 2 “以系统身份在此处打开 CMD 提示符”和“以系统身份在此处打开 PowerShell 提示符”选项
图 3 显示了以系统身份运行的 CMD 提示符。我选择使用亮色来表示此提示符正在以系统身份运行,如果输入了错误的命令,将对系统执行异常(并且具有破坏性)的操作。

图 3 以系统身份运行 CMD 提示符必须小心谨慎
最后,这些 PowerToy 会向系统添加一些命令,以便在“运行”对话框或 CMD 提示符中启动这些提示符。例如,从“运行”对话框中执行以下命令将在 Windows 文件夹中以系统身份启动 CMD 提示符:
Windows PowerShell TM 的等效命令是 psassystem。您应该已经注意到,我还修改了在此处以管理员身份运行 CMD 和 PowerShell 提示符 PowerToy,分别为其安装了类似的命令 cmdasadmin 和 psasadmin。
提升小工具
我的大多数 PowerToy 都要求单击鼠标右键。但此更新还包含一个有用的小工具。这是一个 Windows 边栏小工具,我把它称为提升小工具(如图 4 所示)。它是一个拖放式工具,只需从定义了 runas 操作的 Windows 资源管理器中拖动可执行文件或脚本,它们就会以已提升状态启动。

图 4 拖放式提升小工具
如果您安装了我以前提供的提升 PowerToy,那么本次更新将适用于 Windows Script Host 脚本、Windows PowerShell 脚本、HTML 应用程序和 Windows Installer 包及修补程序(以及 Windows Vista 中默认定义了 runas 操作的可执行文件和命令外壳脚本)。此外,您还可以一次拖动多个项目(只尝试向此小工具拖动一个文件夹,观察会发生什么)。
要安装这个小工具,请双击 Elevation.gadget(包含在代码下载中)。若要查看这个小工具的代码,只需在文件名中添加 .cab 扩展名即可。这样您就可以提取 CAB 文件中的内容了。
结束语
本文的下载不仅包含新的 PowerToy,还包含以前的文章中介绍的 PowerToy。我对原来的一些 PowerToy 做了一点改动。例如,原始的“在此处以管理员身份运行 Windows PowerShell Prompt”和“提升 WSH 脚本”都安装了各自的 elevate.cmd 和 elevate.vbs 副本。因为一些新的 PowerToy 也依赖这些文件,所以我对这些工具进行了更改,要求安装提升命令 PowerToy(这样它们就可以共享该副本)。
一些其他的原始 PowerToy 也进行了细微的非功能性更改。在安装最新版本之前,请务必卸载旧版的 PowerToy。由于此工具集现已扩展为包含 17 个工具,所以我提供了一些命令壳脚本以安装和卸载整个工具集(分别为 InstallAllPowerToys.cmd 和 UninstallAllPowerToys.cmd)。您可以对其进行自定义,使其仅安装和卸载所需的工具。
本文章更多内容:<<上一页 - 1 - 2 - 3 - 4 - 下一页>> |