CO-CONV サポート

文章番号18-006

PowerShell スクリプトで端末に割り当てられているディスクを確認する方法について

公開
2018年07月18日
対象製品
  • CO-Store 3.X
  • Citrix Provisioning Services 7.9 ~

概要

本ドキュメントでは、PowerShell スクリプトにおいて端末に割り当てられているディスクを確認する方法について述べています。

また、「既存の割り当てを解除し、新たに指定したディスクを割り当てて何らかの作業してから、元の割り当てに戻す」という処理のサンプルスクリプトも用意しています。

詳細

現在のところ、CO-StoreApi では、端末に割り当てられているディスクを確認する API は存在しません。 端末に割り当てられているディスクを確認するには、Citrix Provisioning Services (以降、PVS と呼びます。) の PowerShell API と併用する必要があります。

PVS サーバーにおいて PVS PowerShell API を利用できるようにする手順は 【文章番号18-005】Citrix Provisioning Services における PowerShell API 有効化手順について を参照してください。

端末に割り当てられているディスクを確認するには、Get-PvsDeviceInfo コマンドレットを利用します。

以下は、端末 device1 に割り当てられているディスクを確認する例です。

PS> $device = Get-PvsDeviceInfo -DeviceName device1

Get-PvsDeviceInfo の返り値の .DiskLocatorName プロパティで、「端末が稼働中であれば利用しているディスク名」「端末が停止中であれば割り当てられているディスク名一覧 (, 区切り)」が確認できます。

具体的に取得した情報をどのように使うかは、以下のサンプルを参考にしてください。

サンプル

以下では、「既存の割り当てを解除し、新たに指定したディスクを割り当てて何らかの作業してから、元の割り当てに戻す」という処理をさせたい場合のサンプルを紹介します。

param (
    [string]$StoreName,
    [string]$DeviceName,
    [string]$Title,
    [int]$Version
)

$CSApi = "C:\Program Files\CO-CONV\CO-Store\Server\CO-StoreApi.exe"

Add-PSSnapIn -Name Citrix.Pvs.SnapIn

# 元の割り当て情報を確認する
$device = Get-PvsDeviceInfo -DeviceName $DeviceName

# 新しく指定したディスクを割り当てる (元の割り当てはすべて解除)
&$CSApi assign_device --store=$StoreName --device=$DeviceName --title=$Title --version=$Version --unassign-same-title --unassign-different-title --unassign-unmanaged-disk

# 何らかの作業を行う (端末起動など)
Write-Host "Doing Something..."
Write-Host "Done."

# 新しく指定したディスクの割り当てを解除する
&$CSApi unassign_device --store=$StoreName --device=$DeviceName --title=$Title --version=$Version

# 元の割り当てに戻す
foreach ($disk in ($device.DiskLocatorName -split ", ")) {
    if ($disk -match ".*\\(?<OldTitle>.*)@(?<OldVersion>\d+)") {
        &$CSApi assign_device --store=$StoreName --device=$DeviceName --title=$($Matches.OldTitle) --version=$($Matches.OldVersion)
    }
}

このサンプルスクリプトを Set-TempDisk.ps1 といった名前で保存し、

PS> .\Set-TempDisk.ps1 -StoreName ストア -DeviceName device1 -Title hoge -Version 12

などと実行すると、ディスク hoge のバージョン 12 に一時的に割り当て「何らかの作業を行う」に記述した処理を実行した後に、元の割り当てに戻すという動作をします。

(上記例では、"ストア" というストアにおいて、端末 "device1" の割り当てを行っています。)

補足

PVS PowerShell API をご利用の際には、必ず Citrix の公式マニュアル・ドキュメントをご確認ください。