vm.gowatana.jp

NEOにほんごVMware(仮)

Horizon を PowerCLI で操作してみる。(デスクトップ プール作成編)

PowerCLI と VMware.Hv.Helper モジュールを利用して、コマンド ラインからデスクトップ プールを作成してみます。

 

今回の内容です。

 

今回の環境

今回の Horizon 8 の環境も、下記からの一連の投稿で構築したものです。

 

今回の PowerCLI 実行環境は、下記のように準備してあります。

 

1. Horizon Connection Server と vCenter Server への接続

PowerShell(PowerCLI)コンソールを起動して、前回 と同様に、Horizon Connection Server に接続しておきます。

  • "192.168.80.41" は、このラボの Connection Server のアドレスです。
  • "EUC" は、このラボの AD ドメインの NetBIOS 名です。
Connect-HVServer "192.168.80.41" -Domain "EUC" -User "Administrator" -Password "VMware1!"

 

さらに、vCenter Server にも接続しておきます。これは、プールで vCenter インベントリのオブジェクトを指定するために必要になります。

  • lab-vc-81.euc.go-lab.jp は、このラボの vCenter のアドレスです。
Connect-VIServer "lab-vc-81.euc.go-lab.jp" -User "administrator@vsphere.local" -Password "VMware1!" -Force

 

2. フル クローン デスクトップ プールの作成

まずは、フル クローンのデスクトップ プールを作成してみます。

ここでは、下記の投稿で Horizon Console から作成したものに近いパラメータで作成します。

 

2-1. デスクトップ プールの作成(フル クローン)

フル クローンのプールを作成するには、New-HVPool コマンドレットに「-FullClone」オプションで実行します。今回も、仮想デスクトップは1台だけ(-MinimumCount 1 -SpareCount 1 -MaximumCount 1)しか展開しません。

New-HVPool -FullClone `
-Vcenter "lab-vc-81.euc.go-lab.jp" `
-UserAssignment DEDICATED `
-AutomaticAssignment:$true `
-Datacenter "Datacenter-81" `
-PoolName "test-win2019-pool-01" `
-PoolDisplayName "Test Win2019 Pool 01" `
-Enable:$true `
-EnableProvisioning:$true `
-NamingMethod PATTERN `
-NamingPattern "test-w2019-{n:fixed=2}" `
-MinimumCount 1 -SpareCount 1 -MaximumCount 1 `
-Template "win2019-template-01" `
-VmFolder "vdi-pools" `
-HostOrCluster "lab-cluster-81" `
-ResourcePool "lab-cluster-81" `
-Datastores "Datastore-Local-VMFS-31" `
-defaultDisplayProtocol BLAST `
-CustType SYS_PREP `
-ReusePreExistingAccounts:$true `
-SysPrepName "customspec-win2019-01"

 

下記のコマンド ラインで、デスクトップ プールのサマリ情報を確認できます。

Get-HVPoolSummary -PoolName "test-win2019-pool-01" | ft -AutoSize

 

実行すると、作成されたプールが下記のように確認できます。

PS C:\Users\user01> Get-HVPoolSummary -PoolName "test-win2019-pool-01" | ft -AutoSize

Name                 DisplayName          Type      Source         User Assignment Entitled Enabled Sessions
----                 -----------          ----      ------         --------------- -------- ------- --------
test-win2019-pool-01 Test Win2019 Pool 01 AUTOMATED VIRTUAL_CENTER DEDICATED       0        True           0

 

2-2. ログオン資格の割り当て

デスクトップ プールに、ログオン資格を割り当てます。

Get-HVPool -PoolName "test-win2019-pool-01" | New-HVEntitlement -User "Administrators@euc.go-lab.jp" -Type Group

コマンドを実行すると、下記のように資格が割り当てれます。

PS C:\Users\user01> Get-HVPool -PoolName "test-win2019-pool-01" | New-HVEntitlement -User "Administrators@euc.go-lab.jp" -Type Group
1  resource(s) will be entitled with UserOrGroup:  Administrators@euc.go-lab.jp

 

ちなみに、ユーザ名やグループ名が間違っている場合は、下記のように設定されません。

PS C:\Users\user01> Get-HVPool -PoolName "test-win2019-pool-01" | New-HVEntitlement -User "Administrator@euc.go-lab.jp" -Type Group
Unable to find specific user or group with given search parameters

 

Horizon Console でも、作成されたプールを確認できます。

 

少し待ってデスクトップ プールの展開が完了したら、ログオン確認をしておきます。このプールにはドメイン Administrators グループに資格を付与してあるので、ドメイン Administrator ユーザで Horizon Client や Horizon HTML Access からログオンできるはずです。

 

2-3. デスクトップ プールの削除

ログオン確認ができたら、デスクトップ プールを削除しておきます。

  • -TerminateSession: 仮想デスクトップのセッションを終了します。
  • -DeleteFromDisk:仮想デスクトップの 仮想マシンを削除します。
Get-HVPool -PoolName "test-win2019-pool-01" | Remove-HVPool -TerminateSession -DeleteFromDisk

 

下記のように、削除できるはずです。

PS C:\Users\user01> Get-HVPool -PoolName "test-win2019-pool-01" | Remove-HVPool -TerminateSession -DeleteFromDisk
Terminating Sessions, it may take few seconds...
Deleting Pool:  test-win2019-pool-01

 

3. インスタント クローン デスクトップ プールの作成

まずは、フル クローンのデスクトップ プールを作成してみます。

ここでは、下記の投稿で Horizon Console から作成したものに近いパラメータで作成します。

 

3-1. デスクトップ プールの作成(インスタント クローン)

フル クローンのプールを作成するには、New-HVPool コマンドレットに「-FullClone」オプションで実行します。

  • 以前の投稿とは異なり、デスクトップへのユーザ割り当ては、専用ではなく、「フローティング」(-UserAssignment FLOATING)にしてあります。New-HVPool では指定が難しかったもので・・・
  • 今回も、仮想デスクトップは1台だけ(-MinimumCount 1 -SpareCount 1 -MaximumCount 1)しか展開しません。
  • ポートグループの割り当ては、クローン元に指定した仮想マシンのままにします。
New-HVPool -InstantClone `
-Vcenter "lab-vc-81.euc.go-lab.jp" `
-UserAssignment FLOATING `
-AutomaticAssignment:$true `
-Datacenter "Datacenter-81" `
-PoolName "test-win2019-pool-02" `
-PoolDisplayName "Test Win2019 Pool 02" `
-Enable:$true `
-EnableProvisioning:$true `
-NamingMethod PATTERN `
-NamingPattern "test-ic-{n:fixed=2}" `
-MinimumCount 1 -SpareCount 1 -MaximumCount 1 `
-ParentVM "win2019-template-02" `
-SnapshotVM "snapshot-for-ic-01" `
-VmFolder "vdi-pools" `
-HostOrCluster "lab-cluster-81" `
-ResourcePool "lab-cluster-81" `
-Datastores "Datastore-Local-VMFS-31" `
-defaultDisplayProtocol BLAST `
-NetBiosName "EUC" `
-AdContainer "CN=Computers" `
-ReusePreExistingAccounts:$true

 

下記のコマンド ラインで、デスクトップ プールのサマリ情報を確認できます。

Get-HVPoolSummary -PoolName "test-win2019-pool-02" | ft -AutoSize

 

実行すると、作成されたプールが下記のように確認できます。インスタント クローンのプールでは、Source が INSTANT_CLONE_ENGINE になります。

PS C:\Users\user01> Get-HVPoolSummary -PoolName "test-win2019-pool-02" | ft -AutoSize

Name                 DisplayName          Type      Source               User Assignment Entitled Enabled Sessions
----                 -----------          ----      ------               --------------- -------- ------- --------
test-win2019-pool-02 Test Win2019 Pool 02 AUTOMATED INSTANT_CLONE_ENGINE FLOATING        0        True           0

 

3-2. ログオン資格の割り当て

デスクトップ プールに、ログオン資格を割り当てます。

Get-HVPool -PoolName "test-win2019-pool-02" | New-HVEntitlement -User "Administrators@euc.go-lab.jp" -Type Group

 

少し待ってデスクトップ プールの展開が完了したら、ログオン確認をしておきます。このプールでも、ドメイン Administrator ユーザで Horizon Client や Horizon HTML Access からログオンできるはずです。

 

3-3. デスクトップ プールの削除

ログオン確認ができたら、デスクトップ プールを削除しておきます。

  • -TerminateSession: 仮想デスクトップのセッションを終了します。
  • -DeleteFromDisk:仮想デスクトップの 仮想マシンを削除します。
Get-HVPool -PoolName "test-win2019-pool-02" | Remove-HVPool -TerminateSession -DeleteFromDisk

 

以上、PowerCLI でデスクトップ プールを作成してみる話でした。