Может vSphere PowerCLI cmdlets выполняться из файла PS1?

Я надеюсь писать администраторский сценарий, который будет:

  • Удалите VM из vSphere
  • Удалите запись DNS VM
  • Выпустите IP-адрес VM с нашим сервером Windows DHCP

Я могу выполнить первый объект через PowerCLI vSphere, и я могу выполнить последние 2 объекта через PowerShell"Cmdlets". Кроме того, я могу поместить их Cmdlets внутри a *.ps1 файл и выполняет файл от оболочки.

Начальное исследование показывает, что PowerCLI просто переносит/расширяет PowerShell и в основном просто составлен собственный vSphere-центральный Cmdlets. Таким образом, я задаюсь вопросом: я могу поместить PowerCLI "код" (Cmdlets, и т.д.) в файле PS1, наряду с другим кодом PowerShell, и выполняют его как нормальный PS1?

4
задан 25 February 2015 в 20:23
1 ответ

Могу ли я поместить «код» PowerCLI (командлеты и т. Д.) В файл PS1 вместе с другим кодом PowerShell и выполнить его, как обычный PS1?

Да. Но если вы хотите, чтобы он работал должным образом (например, при использовании консоли PowerCLI), вам необходимо инициализировать среду. Вы можете увидеть, как это делается, изучив ярлык «VMware vSphere PowerCLI.lnk», цель:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -psc "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -noe -c ". \"C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1\""

Разбивка на части:

  • C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe

Двоичный файл Powershell

  • -psc "C: \ Program Files (x86) \ VMware \ Infrastructure \ vSphere PowerCLI \ vim.psc1"

Сокращение от -PSConsole , которое загружает vim. указана консоль psc1.

  • -noe

Сокращение от -NoExit , не закрывать после выполнения команд запуска.

  • -c ". \" C: \ Program Files (x86) \ VMware \ Infrastructure \ vSphere PowerCLI \ Scripts \ Initialize-PowerCLIEnvironment.ps1 \ ""

Сокращение от -Command , в котором точки источников [путь примечания - escape-кавычки] файла Initialize-PowerCLIEnvironment.ps1 в сеанс.

Вы можете сжать это и поместить инициализацию в любой файл .ps1. Этот пример заглушки должен помочь вам начать работу.

# This is the main magic.
Add-PSSnapin VMware.VimAutomation.Core

# Dot source the PowerCLI init script
. 'C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1'

# We're up and running with "PowerCLI", do some VM stuff.
Connect-VIServer vcenter-01
Get-VM
...
11
ответ дан 3 December 2019 в 02:32

Теги

Похожие вопросы