AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 440209
Accepted
SeanKilleen
SeanKilleen
Asked: 2012-10-20 05:28:41 +0800 CST2012-10-20 05:28:41 +0800 CST 2012-10-20 05:28:41 +0800 CST

如何作为 VMWare 自定义规范的一部分运行提升的 powershell 脚本?

  • 772

背景/目标

我有一个正在部署的 VMWare 模板,我正在使用 VMWare 的“自定义规范”来执行许多 sysprep 任务。

我需要完成的最后一件事是按顺序静默安装多个应用程序。我有一个执行此操作的 PowerShell 脚本,但它仅在提升时有效。

VMWare 具有“运行一次”功能作为其定制规范的一部分。理想情况下,我想使用它以提升的方式调用 PowerShell 脚本,以便它在我以管理员身份首次登录时运行。

我试过的/问题

  • 我尝试从 Run Once 命令调用 PsExec -s,并让 PsExec 调用 powershell。不幸的是,PsExec 需要在提升的命令行中运行,所以这行不通。

问题

我突然想到这可能是不可能的。我想错了吗?我是否应该编写一个远程 PS1 并在创建的机器上运行它?这是可行的,但我想尽可能地尝试自动化,并消除除我之外可能想要部署的人的任何困惑。

vmware-esxi
  • 1 1 个回答
  • 4873 Views

1 个回答

  • Voted
  1. Best Answer
    Patrick
    2012-10-25T03:47:05+08:002012-10-25T03:47:05+08:00

    取自http://poshcode.org/695

    function elevate-process
    {
    $file, [string]$arguments = $args;
    $psi = new-object System.Diagnostics.ProcessStartInfo $file;
    $psi.Arguments = $arguments;
    $psi.Verb = "runas";
    [System.Diagnostics.Process]::Start($psi);
    }
    
    elevate-process [full path to your process here]
    

    @Tony Roth 说的。如果 VMware 自己的自定义进程以提升的权限运行,那么它的所有子进程也应该这样做,因此在那里启动 Powershell 脚本应该与关联的进程一起运行。

    如果不是,那么我不知道没有互动的提升方式。这就是高程系统的要点。上面的代码会将一个进程从非管理员提升到管理员用户空间,但是你必须点击过去的 UAC,我在我的构建中使用它。

    Startup 包含简单调用主脚本的 Elevate-Process 脚本。当机器在第一次启动后启动时,它会启动它,您单击 UAC 上的确定,它以管理员权限完成其余部分。

    作为替代方案,也许在您的初始构建中禁用 UAC,然后包含代码以在构建结束时重新启用它?

    这看起来会有所帮助,但请注意我还没有使用过它。

    • 1

相关问题

  • ESXi NAS 配置

  • 如何将 Acronis 生成的 vmdk 添加到 esxi?

  • 在 VMWare ESX 和 ESXi 之间进行选择 [关闭]

  • 将(大)虚拟机从 ESXi 3.5 转换为 Hyper-V Server 2008 R2

  • VMWare:ESX 还是 3i?我需要COS吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve