我正在寻找写一个pipe理脚本,将:
我可以通过vSphere的PowerCLI完成第一个项目,并且可以通过PowerShell“ Cmdlets ”完成最后Cmdlets 。 此外,我可以将这些Cmdlets放在*.ps1文件中,并从shell执行该文件。
最初的研究表明,PowerCLI只是包装/扩展了PowerShell,基本上只是由它自己的以vSphere为中心的Cmdlets 。 所以我想知道:我可以将PowerCLI“代码”( Cmdlets等)放在PS1文件中,以及其他PowerShell代码,并执行它像一个普通的PS1?
我可以将PowerCLI“代码”(Cmdlet等)与其他PowerShell代码一起放入PS1文件中,并像普通的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 ,不要在运行启动命令后closures。
-c ". \"C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1\"" 命令的-Command一个点是[注释path是escape-quoted]文件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 ...