【问题标题】:Calling PowerShell script inside guest VM with PowerCLI Invoke-VMScript使用 PowerCLI Invoke-VMScript 在来宾 VM 中调用 PowerShell 脚本
【发布时间】:2017-08-02 14:27:20
【问题描述】:

在我的来宾 VM 中,我有一个 PowerShell 脚本,它可以进行一些自动化操作。但是,我正在尝试使用 PowerCLI(在 PowerShell 内部)从外部调用该 PowerShell 脚本。目前,我的脚本可以工作,但不是在来宾 VM 内“运行”PowerShell 脚本,而是将其作为文本文件打开。此外,在来宾 VM 内部,当我调用以下脚本时,会弹出一个交互式服务检测。我该如何解决这些问题?

add-pssnapin VMware.VimAutomation.Core 

Connect-VIServer 192.168.1.29 # connects to vCenter 

$vm = Get-VM -name 'CentOS 7'
$script = '"C:\Automation\StartServices.ps1"'
Invoke-VMScript -vm $vm -ScriptText $script -GuestUser 'user' - GuestPassword 'password' -ScriptType Powershell

【问题讨论】:

  • 你尝试在cent os上启动powershell脚本吗?

标签: powershell powercli vcenter


【解决方案1】:

$script 路径中使用单引号或双引号,但不能同时使用:

$script = 'C:\Automation\StartServices.ps1'

这似乎是唯一的问题。在我的 PowerCLI 环境中测试和工作。

【讨论】:

  • 这很有帮助,该脚本现在可以运行,但在我的来宾 VM 上,会弹出交互式服务检测屏幕并将自动化隔离在另一个环境中。我通过转到 services.msc 并禁用它来禁用交互式服务检测,但是当我运行脚本时,什么也没有发生(我希望一个程序会打开并且会发生一些点击)
  • @ennha1 Invoke-VMScript 不使用 UI 在前台运行应用程序/程序。它用于在后台远程执行脚本。你想达到什么目的?
  • 嗯。那时我可能有错误的印象。我有一个要运行的 PowerShell 脚本。然而,这个 PowerShell 脚本做了很多事情——打开一个程序,调用另一个宏函数来做一些点击。
  • @ennha1 我认为Invoke-VMScript 不可能。例如,如果您使用:Invoke-VMScript -ScriptText { Start-Process notepad.exe } -VM ... 一个进程将在后台启动,但记事本不会打开。您可以在远程机器上使用Get-Process notepad 确认这一点。
  • 我通过打开记事本或 calc.exe 尝试了该操作。所有这些程序都在后台打开(交互式显示出现的地方),所以它有点在自己的孤立环境中,而不是在前台。看起来对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
相关资源
最近更新 更多