通过 MMC 使用 PowerShell 执行管理员级别的 CMD 命令

通过 MMC 使用 PowerShell 执行管理员级别的 CMD 命令

我是 PowerShell 新手。我想在关闭计算机之前在关机时执行类似操作。我计划让 Windows MMC/本地组策略编辑器使用 PowerShell 脚本执行此操作。

cmd as admin
echo "SOME COMMAND"
echo "exit"

基本上,触发关机或重启事件后它应该:

  1. 以管理员身份打开 CMD(并在 UAC?时自动选择是)。

  2. 执行一些命令(会有很多)。

  3. 关闭 CMD,然后允许 Windows 10 关机/重启。

现在,我知道如何让 MMC 在关机命令完成之前添加要执行的 PowerShell 脚本。我只需要知道如何执行上述三个步骤的语法。

但要明确的是:

我的主要观点是能够以管理员身份打开 CMD,输入命令然后退出 CMD。PowerShell 通常无法以管理员身份正确执行一些特定命令,但 CMD 可以。这样,PowerShell 本身不需要管理员权限,只需临时运行 CMD。

在需要时,我不介意在 UAC 上单击“是”,因为我认为如果真的到了这个地步,我可能只需要使用 sendkeys{TAB}{TAB}{ENTER}或类似的东西。我似乎无法在互联网上找到如何启动 PowerShell 脚本以便保存它。不过,我在语法中看到了很多关于 sendkeys 的内容。在 Linux 中的 bash 中,它很简单:#!/bin/bash然后 presto insta-bash,但 Windows 在这方面似乎很落后。

如果有比 CMD > Echo “stuff” > 退出 CMD 更好的方法,请告诉我。我知道我想在每个 Echo “stuff” 中输入什么内容(或者说,如果我最终使用它,则输入 sendkeys),我只是不知道如何以管理员身份打开 CMD。

谢谢。

答案1

我实在不明白你在追求什么。

然而,PowerShell 的目标并不是 GUI 自动工具。您可以使用 SendKeys 实现其中的一些功能,就像通过 VBScript 一样。

但是,由于您是新手,因此您必须快速掌握 PowerShell,以确保您真正理解它以及何时和为何使用它。访问 YouTube 并搜索“Beginning PowerShell”,然后使用 SendKeys 在网上搜索 PowerShell ---例子---

至于您的用例:

基本上,触发关机或重启事件后它应该:

  1. 以管理员身份打开 CMD(并在 UAC?时自动选择是)。

启动 PowerShell 是一个 PowerShell 命令提示符。无需打开 cmd.exe 即可使用它。PowerShell 可以替代 cmd.exe 所做的一切。只有在您尝试运行提升权限的命令时,才需要接受 UAC。PowerShell 不会跳过 UAC,因为您必须提供管理员凭据。Windows 需要这样做。

  1. 执行一些命令(会有很多)。

只需使用您想要的命令编写脚本即可。

  1. 关闭 CMD,然后允许 Windows 10 关机/重启。

脚本完成后,PowerShell 将默认退出。除非你明确告诉它不要这样做。

您似乎想要的是注销和登录脚本。只需编写这些脚本并将其添加到登录/注销组或本地计算机策略设置中即可。

使用 PowerShell 和组策略来执行登录脚本

使用组策略部署 Windows PowerShell 登录脚本

*根据以下主题后续内容进行更新*

您似乎想要的是注销和登录脚本。只需编写这些脚本并将其添加到登录/注销组或本地计算机策略设置中即可。您可以为关机设置相同的内容。请记住,重新启动将导致登录操作。它也有一个策略设置。PowerShell 控制台将运行 cmd.exe 可以运行的任何命令。您必须正确调用它们。如果 UAC 是一个问题,那么请将其全部禁用。但这意味着您这样做会承担所有安全风险。

仅当您尝试运行提升权限的命令时才接受 UAC。PowerShell 不会跳过 UAC,因为您必须提供管理员凭据。Windows 要求这样做。

这就是 Start-Process -Verb RunAs 的用途,它有一个凭据开关,但您仍然必须提供该开关。因此,您仍然会收到提示。您可以将凭据保存到安全文件中以供重复使用,但必须在运行任何脚本之前执行此操作。

您可以自行承担风险尝试以下操作。

https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc162321(v=msdn.10)

https://github.com/sushihangover/SushiHangover-PowerShell/tree/master/modules/PSUserTools

(具体来说是名为 Start-ProcessAsAdministrator.ps1 的脚本)

相关内容