Я надеюсь писать администраторский сценарий, который будет:
Я могу выполнить первый объект через PowerCLI vSphere, и я могу выполнить последние 2 объекта через PowerShell"Cmdlets
". Кроме того, я могу поместить их Cmdlets
внутри a *.ps1
файл и выполняет файл от оболочки.
Начальное исследование показывает, что PowerCLI просто переносит/расширяет PowerShell и в основном просто составлен собственный vSphere-центральный Cmdlets
. Таким образом, я задаюсь вопросом: я могу поместить PowerCLI "код" (Cmdlets
, и т.д.) в файле PS1, наряду с другим кодом PowerShell, и выполняют его как нормальный PS1?
Могу ли я поместить «код» 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
...