PowerShell Beispiele zu den Citrix Provisioning Services Cmdlets

Einige einfache Beispiele zu den PowerShell Cmdlets der Citrix Provisioning Services

# https://developer-docs.citrix.com/projects/provisioning-services-powershell-object-programming-guide/en/latest/#start-pvscreatedisk

# Registry module
Set-Location "C:\Program Files\Citrix\Provisioning Services Console"
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe Citrix.PVS.SnapIn.dll

# Import module
Import-Module "C:\Program Files\Citrix\Provisioning Services Console\Citrix.PVS.SnapIn.dll"

# List all vDisks off all sites
(Get-PvsDiskLocator).Name

# List of vDisks on a specific PVS server
(Get-PvsDiskLocator -ServerName 'W2K16PVS01').Name

# Test if a specific vDisk exists
if ((Get-PvsDiskLocator).Name -eq "MyDisk1") { write-host "vDisk found"}

# List all devices with all details
Get-PvsDevice 

# List all devices with some specific params
Get-PvsDevice | Select-Object Name,DeviceMAC,BootFrom,Active

# List details of a specific device
Get-PvsDevice -DeviceName 'PVSTARGET01'

# List assigned disks of a specific device
(Get-PvsDiskLocator -DeviceName 'PVSTARGET01').Name

# Remove a specific disk assignments from a specific device
Remove-PvsDiskLocatorFromDevice -DeviceName 'PVSTARGET01' -DiskLocatorName 'MyDisk1' -SiteName 'Site' -StoreName 'Store'

# Remove ALL disk assignments from a specific device
$Disks = (Get-PvsDiskLocator -DeviceName 'PVSTARGET01')
foreach ($Disk in $Disks)
{
    Write-host "Removing disk $($Disk.name) from device"
    Get-PvsDevice -Name 'PVSTARGET01' -Fields Guid | Remove-PvsDiskLocatorFromDevice -Name $Disk.DiskLocatorName -SiteName 'Site' -StoreName 'Store'
}

# Assign a disk to device
Add-PvsDiskLocatorToDevice -Name 'MyDisk1' -DeviceName 'PVSTARGET01' -SiteName 'Site' -StoreName 'Store'

# Create a new empty vdisk
Start-PvsCreateDisk -Name "MyDisk1" -Description "MyDescription1" -SiteName "Site" -StoreName "Store" -ServerName "W2K16PVS01" -Size 40000 -VHDX

# Change Disk mode (Note: WriteCacheType: 0 (Private), (other values are standard image) 1 (Cache on Server), 3 (Cache in Device RAM), 4 (Cache on Device Hard Disk), 6 (Device RAM Disk), 7 (Cache on Server, Persistent), or 9 (Cache in Device RAM with Overflow on Hard Disk).
Set-PvsDisk -Name 'MyDisk1' -StoreName 'Store' -SiteName 'Site' -WriteCacheType 9 -WriteCacheSize 512

# Create a new disk version
New-PvsDiskMaintenanceVersion -DiskLocatorName 'MyDisk1' -StoreName 'Store' -SiteName 'Site'

# Commit the changes made in the current Maintenance or a Test version. Promotes the Maintenance version or a Test version to a Testor new Production 
Invoke-PvsPromoteDiskVersion -DiskLocatorName 'MyDisk1' -StoreName 'Store' -SiteName 'Site' # Promote disk version (PRODUCTION)
Invoke-PvsPromoteDiskVersion -DiskLocatorName 'MyDisk1' -StoreName 'Store' -SiteName 'Site'  -Test # Promote disk version (TEST)

# Connect via PS Remoting from the golden master target system to the PVS server and create a new empty disk and assign this disk in preperation for a later image capture to this disk
$CredObject = New-Object System.Management.Automation.PsCredential("ServiceAccount@test.local", (ConvertTo-SecureString "Passw0rd" -AsPlainText -Force))
Invoke-Command -ComputerName "W2K16PVS01.test.local" -Credential $CredObject -ScriptBlock {

    # Import module    
    Set-Location "C:\Program Files\Citrix\Provisioning Services Console"
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe Citrix.PVS.SnapIn.dll
    Import-Module "C:\Program Files\Citrix\Provisioning Services Console\Citrix.PVS.SnapIn.dll"

    # Generate empty vDisk
    Start-PvsCreateDisk -Name "MyDiskName" -Description "MyDisk" -SiteName "Site" -StoreName "Store" -ServerName "W2K16PVS01" -Size 40000 -VHDX

    # Assign disk to device
    Add-PvsDiskLocatorToDevice -Name "MyDiskName" -DeviceName "PVSTARGET01" -SiteName "Site" -StoreName "Store"
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert