今回は、PowerCLI入門編としてPowerCLIのインストールをしてみます。
前提条件
PowerCLIをインストールする環境は以下の通りです。
- OS : Windows10 (20H2)
- CPU : 2C4T
- MEM : 8GB
- DISK : 500GB
- Powershell Version : 5.1.19041.610
PowerCLIインストールバージョン
2021年4月末現在、PowerCLIのインストールは、Powershellからインストールします。
昔はインストーラ形式で配布されていましたが、現在はPowershellのモジュールとして提供されています。
現在のカレントバージョンの確認については、Powershellより以下のコマンドで確認します。
PS > Find-Module -Name VMware.PowerCLI | ft -AutoSize -Wrap
Version Name Repository Description
------- ---- ---------- -----------
12.3.0.17860403 VMware.PowerCLI PSGallery This Windows PowerShell module contains VMware.PowerCLI
2021/4/30 時点のバージョンは[12.3.0.17860403]となります。
今回は、本バージョンをインストールしていきます。
Powershellの実行ポリシーの確認
PowerCLIを使用する場合、基本的な開発言語がPowershellとなります。
そのため、Powershellスクリプトが実行できるように実行ポリシーの確認と見直しを行います。
Powershellの実行ポリシーについては、以下のポリシーが存在します。
- Restricted : default(Powershellスクリプトの実行不可)
- AllSigned : 署名付きのスクリプトのみ実行可能
- RemoteSigned : 署名付き+ローカル上のスクリプトのみ実行可能
- Unrestricted : 署名付き+ローカル上のスクリプト+許可されたリモート上の署名なしスクリプトのみ実行可能
- Bypass : すべてのスクリプトが実行可能
Powershellの実行ポリシー変更については、クライアントOSのセキュリティレベルを下げることになるため、自社環境や顧客環境のセキュリティポリシーに合致する形で変更してください。
検証環境でのデバッグやPowershellの開発を行う際は、[RemoteSigned]程度が現実的かと思われます。(今回は、個人的な開発環境のため、Bypassに設定ています。)
現在の実行ポリシーを確認する場合、以下のコマンドで確認が可能です。
PS > Get-Executionpolicy
Restricted
Windows10のデフォルトでは、[Restricted]となっています。
これをRemoteSignedに変更する場合、以下のコマンドを実行します。
PS > Set-Executionpolicy RemoteSigned
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
PS >
PS > Get-Executionpolicy
RemoteSigned
PS >
コマンド実行時に実行ポリシーの変更確認が入るため、セキュリティのリスクを許容した上で、[Y]を入力します。
コマンドが正常に実行されたら、Get-Executionpolicy
コマンドを実行して、実行ポリシーが変更されたことを確認します。
PowerCLIのインストール
ここまで来たら、以下のコマンドを使用しPowerCLIのインストールを実行します。
PS > Install-Module -Name VMware.PowerCLI | ft -AutoSize -Wrap
信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSRepository コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
PackageManagement\Install-Package : 以下のコマンドは、このシステムで既に使用可能になっています: 'New-VcsOAuthSecurityContext'。このモジュール 'VMware.CloudServices' では既存のコマンドが上書きされる可能性があります。このモジュール 'VMware.CloudSer
vices' をインストールする場合は、-AllowClobber パラメーターを使用してください。
発生場所 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1809 文字:21
+ ... $null = PackageManagement\Install-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package]、Exception
+ FullyQualifiedErrorId : CommandAlreadyAvailable,Validate-ModuleCommandAlreadyAvailable,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage
モジュールをインストールする際に、[信頼されていないリポジトリ]と表示されますが、インストールをするため、[Y]を選択しています。
また、インストール時に一部パッケージがインストールされていたため、怒られました。
PowerCLIのインストール後、正常にパッケージがインストールされているかを確認します。
PS > Get-Module | ft -AutoSize -Wrap
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest 3.0.0.0 Microsoft.PowerShell.Security {ConvertFrom-SecureString, ConvertTo-SecureString, Get-Acl, Get-AuthenticodeSignature...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Binary 1.0.0.1 PackageManagement {Find-Package, Find-PackageProvider, Get-Package, Get-PackageProvider...}
Script 1.0.0.1 PowerShellGet {Find-Command, Find-DscResource, Find-Module, Find-RoleCapability...}
Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler, Get-PSReadLineOption, Remove-PSReadLineKeyHandler, Set-PSReadLineKeyHandler...}
Script 7.0.2.17839075 VMware.Vim
Script 12.3.0.17839331 VMware.VimAutomation.Cis.Core {Connect-CisServer, Disconnect-CisServer, Get-CisService}
Script 12.3.0.17838947 VMware.VimAutomation.Common {Get-PowerCLIContext, Get-Task, New-OAuthSecurityContext, Stop-Task...}
Script 12.3.0.17839688 VMware.VimAutomation.Core {Add-PassthroughDevice, Add-VirtualSwitchPhysicalNetworkAdapter, Add-VMHost, Add-VMHostNtpServer...}
Script 12.2.0.17531155 VMware.VimAutomation.Sdk {Get-ErrorReport, EnableParameterCompleters, Get-InstallPath, Get-PSVersion}
無事にVMware周りのモジュールがインストールされていました。
これでPowerCLIのインストールは完了です。
まとめ
今回は、PowerCLIの入門編ということで、Powershellの実行ポリシー周りとPowerCLIのインストールをしました。
これで、PowerCLIを使用して、vCenterに接続し仮想マシンの操作やvCenterの情報を取得することが可能になります。
次回は、Powershellの開発環境周りについて記事にできれば良いなと思います。
コメント