Adding new AFs New-HVGlobalEntitlement, Remove-HVGlobalEntitlement, Get-HVGlobalEntitlement
New-HVGlobalEntitlement: Creates a Global Entitlement. , Remove-HVGlobalEntitlement: Deletes a Global Entitlement., Get-HVGlobalEntitlement: Gets Global Entitlement(s).
This commit is contained in:
@@ -5377,7 +5377,7 @@ function Remove-HVPool {
|
|||||||
ConfirmImpact = 'High'
|
ConfirmImpact = 'High'
|
||||||
)]
|
)]
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory = $false,ParameterSetName = 'option')]
|
[Parameter(Mandatory = $true,ParameterSetName = 'option')]
|
||||||
[string] $poolName,
|
[string] $poolName,
|
||||||
|
|
||||||
# PoolObject
|
# PoolObject
|
||||||
@@ -5420,7 +5420,7 @@ function Remove-HVPool {
|
|||||||
Write-Error "No desktopsummarydata found with pool name: [$pool]"
|
Write-Error "No desktopsummarydata found with pool name: [$pool]"
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
} elseif ($PSCmdlet.MyInvocation.ExpectingInput) {
|
} elseif ($PSCmdlet.MyInvocation.ExpectingInput -or $Pool) {
|
||||||
foreach ($item in $pool) {
|
foreach ($item in $pool) {
|
||||||
if ($item.GetType().name -eq 'DesktopSummaryView') {
|
if ($item.GetType().name -eq 'DesktopSummaryView') {
|
||||||
$poolList += @{id = $item.id; name = $item.desktopSummaryData.name}
|
$poolList += @{id = $item.id; name = $item.desktopSummaryData.name}
|
||||||
@@ -8185,4 +8185,453 @@ PARAMETER Key
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Export-ModuleMember Add-HVDesktop,Add-HVRDSServer,Connect-HVEvent,Disconnect-HVEvent,Get-HVPoolSpec,Get-HVInternalName, Get-HVEvent,Get-HVFarm,Get-HVFarmSummary,Get-HVPool,Get-HVPoolSummary,Get-HVMachine,Get-HVMachineSummary,Get-HVQueryResult,Get-HVQueryFilter,New-HVFarm,New-HVPool,Remove-HVFarm,Remove-HVPool,Set-HVFarm,Set-HVPool,Start-HVFarm,Start-HVPool,New-HVEntitlement,Get-HVEntitlement,Remove-HVEntitlement, Set-HVMachine
|
function New-HVGlobalEntitlement {
|
||||||
|
|
||||||
|
<#
|
||||||
|
.Synopsis
|
||||||
|
Creates a Global Entitlement.
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
Global entitlements are used to route users to their resources across multiple pods.
|
||||||
|
These are persisted in a global ldap instance that is replicated across all pods in a linked mode view set.
|
||||||
|
|
||||||
|
.PARAMETER DisplayName
|
||||||
|
Display Name of Global Entitlement.
|
||||||
|
|
||||||
|
.PARAMETER Type
|
||||||
|
Specify whether to create desktop/app global entitlement
|
||||||
|
|
||||||
|
.PARAMETER Description
|
||||||
|
Description of Global Entitlement.
|
||||||
|
|
||||||
|
.PARAMETER Scope
|
||||||
|
Scope for this global entitlement. Visibility and Placement policies are defined by this value.
|
||||||
|
|
||||||
|
.PARAMETER Dedicated
|
||||||
|
Specifies whether dedicated/floating resources associated with this global entitlement.
|
||||||
|
|
||||||
|
.PARAMETER FromHome
|
||||||
|
This value defines the starting location for resource placement and search.
|
||||||
|
When true, a pod in the user's home site is used to start the search. When false, the current site is used.
|
||||||
|
|
||||||
|
.PARAMETER RequireHomeSite
|
||||||
|
This value determines whether we fail if a home site isn't defined for this global entitlement.
|
||||||
|
|
||||||
|
.PARAMETER MultipleSessionAutoClean
|
||||||
|
This value is used to determine if automatic session clean up is enabled.
|
||||||
|
This cannot be enabled when this Global Entitlement is associated with a Desktop that has dedicated user assignment.
|
||||||
|
|
||||||
|
.PARAMETER Enabled
|
||||||
|
If this Global Entitlement is enabled.
|
||||||
|
|
||||||
|
.PARAMETER SupportedDisplayProtocols
|
||||||
|
The set of supported display protocols for the global entitlement.
|
||||||
|
|
||||||
|
.PARAMETER DefaultDisplayProtocol
|
||||||
|
The default display protocol for the global entitlement.
|
||||||
|
|
||||||
|
.PARAMETER AllowUsersToChooseProtocol
|
||||||
|
Whether the users can choose the protocol used.
|
||||||
|
|
||||||
|
.PARAMETER AllowUsersToResetMachines
|
||||||
|
Whether users are allowed to reset/restart their machines.
|
||||||
|
|
||||||
|
.PARAMETER EnableHTMLAccess
|
||||||
|
If set to true, the desktops that are associated with this GlobalEntitlement must also have HTML Access enabled.
|
||||||
|
|
||||||
|
.PARAMETER HvServer
|
||||||
|
Reference to Horizon View Server. If the value is not passed or null then
|
||||||
|
first element from global:DefaultHVServers would be considered inplace of hvServer
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Creates new global application entitlement
|
||||||
|
New-HVGlobalEntitlement -DisplayName 'GE_APP' -Type APPLICATION_ENTITLEMENT
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Creates new global desktop entitlement
|
||||||
|
New-HVGlobalEntitlement -DisplayName 'GE_DESKTOP' -Type DESKTOP_ENTITLEMENT
|
||||||
|
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
Author : Praveen Mathamsetty.
|
||||||
|
Author email : pmathamsetty@vmware.com
|
||||||
|
Version : 1.1
|
||||||
|
|
||||||
|
===Tested Against Environment====
|
||||||
|
Horizon View Server Version : 7.0.2, 7.0.3
|
||||||
|
PowerCLI Version : PowerCLI 6.5
|
||||||
|
PowerShell Version : 5.0
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding(
|
||||||
|
SupportsShouldProcess = $true,
|
||||||
|
ConfirmImpact = 'High'
|
||||||
|
)]
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[String]
|
||||||
|
$DisplayName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[ValidateSet('DESKTOP_ENTITLEMENT','APPLICATION_ENTITLEMENT')]
|
||||||
|
[String]
|
||||||
|
$Type,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[String]
|
||||||
|
$Description,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateSet('LOCAL','SITE','ANY')]
|
||||||
|
[String]
|
||||||
|
$Scope = "ANY",
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$Dedicated,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$FromHome,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$RequireHomeSite,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$MultipleSessionAutoClean,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$Enabled,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateSet('RDP', 'PCOIP', 'BLAST')]
|
||||||
|
[String[]]
|
||||||
|
$SupportedDisplayProtocols = @("PCOIP","BLAST"),
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateSet("PCOIP",'RDP',"BLAST")]
|
||||||
|
[String]
|
||||||
|
$DefaultDisplayProtocol = 'PCOIP',
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$AllowUsersToChooseProtocol = $true,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$AllowUsersToResetMachines = $false,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[Boolean]
|
||||||
|
$EnableHTMLAccess = $false,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
$HvServer = $null
|
||||||
|
)
|
||||||
|
begin {
|
||||||
|
$services = Get-ViewAPIService -hvServer $hvServer
|
||||||
|
if ($null -eq $services) {
|
||||||
|
Write-Error "Could not retrieve ViewApi services from connection object"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
process {
|
||||||
|
$info = $services.PodFederation.PodFederation_get()
|
||||||
|
if ("ENABLED" -ne $info.localPodStatus.status) {
|
||||||
|
Write-Host "Multi-DataCenter-View/CPA is not enabled"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$confirmFlag = Get-HVConfirmFlag -keys $PsBoundParameters.Keys
|
||||||
|
if ($Type -eq 'DESKTOP_ENTITLEMENT') {
|
||||||
|
$GeService = New-Object VMware.HV.GlobalEntitlementService
|
||||||
|
$geBaseHelper = $GeService.getGlobalEntitlementBaseHelper()
|
||||||
|
$geBase = $geBaseHelper.getDataObject()
|
||||||
|
$geBase.Dedicated = $dedicated
|
||||||
|
$geBase.AllowUsersToResetMachines = $AllowUsersToResetMachines
|
||||||
|
} else {
|
||||||
|
$GeService = New-Object VMware.Hv.GlobalApplicationEntitlementService
|
||||||
|
$geBaseHelper = $GeService.getGlobalApplicationEntitlementBaseHelper()
|
||||||
|
$geBase = $geBaseHelper.getDataObject()
|
||||||
|
}
|
||||||
|
$geBase.DisplayName = $displayName
|
||||||
|
if ($description) {
|
||||||
|
$geBaseHelper.setDescription($Description)
|
||||||
|
}
|
||||||
|
$geBase.Scope = $Scope
|
||||||
|
$geBase.FromHome = $fromHome
|
||||||
|
$geBase.RequireHomeSite = $requireHomeSite
|
||||||
|
$geBase.MultipleSessionAutoClean = $multipleSessionAutoClean
|
||||||
|
$geBase.Enabled = $enabled
|
||||||
|
$geBase.DefaultDisplayProtocol = $defaultDisplayProtocol
|
||||||
|
$geBase.AllowUsersToChooseProtocol = $AllowUsersToChooseProtocol
|
||||||
|
$geBase.EnableHTMLAccess = $enableHTMLAccess
|
||||||
|
$geBase.SupportedDisplayProtocols = $supportedDisplayProtocols
|
||||||
|
Write-Host "Creating new global entitlement with DisplayName: " $DisplayName
|
||||||
|
if (!$confirmFlag -OR $pscmdlet.ShouldProcess($displayName)) {
|
||||||
|
if ($type -eq 'DESKTOP_ENTITLEMENT') {
|
||||||
|
$GeService.GlobalEntitlement_Create($services, $geBase)
|
||||||
|
} else {
|
||||||
|
$GeService.GlobalApplicationEntitlement_Create($services, $geBase)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end {
|
||||||
|
[System.gc]::collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function Find-HVGlobalEntitlement {
|
||||||
|
[CmdletBinding()]
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
$Param,
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[String]
|
||||||
|
$Type
|
||||||
|
)
|
||||||
|
|
||||||
|
# This translates the function arguments into the View API properties that must be queried
|
||||||
|
$GeSelectors = @{
|
||||||
|
'displayName' = 'base.displayName';
|
||||||
|
'description' = 'base.description';
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = $Param
|
||||||
|
|
||||||
|
$query_service_helper = New-Object VMware.Hv.QueryServiceService
|
||||||
|
$query = New-Object VMware.Hv.QueryDefinition
|
||||||
|
|
||||||
|
$wildCard = $false
|
||||||
|
#Only supports wild card '*'
|
||||||
|
if ($params['displayName'] -and $params['displayName'].contains('*')) {
|
||||||
|
$wildcard = $true
|
||||||
|
}
|
||||||
|
|
||||||
|
# build the query values
|
||||||
|
$query.queryEntityType = $Type
|
||||||
|
if (! $wildcard) {
|
||||||
|
[VMware.Hv.queryfilter[]]$filterSet = @()
|
||||||
|
foreach ($setting in $GeSelectors.Keys) {
|
||||||
|
if ($null -ne $params[$setting]) {
|
||||||
|
$equalsFilter = New-Object VMware.Hv.QueryFilterEquals
|
||||||
|
$equalsFilter.memberName = $GeSelectors[$setting]
|
||||||
|
$equalsFilter.value = $params[$setting]
|
||||||
|
$filterSet += $equalsFilter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($filterSet.Count -gt 0) {
|
||||||
|
$andFilter = New-Object VMware.Hv.QueryFilterAnd
|
||||||
|
$andFilter.Filters = $filterset
|
||||||
|
$query.Filter = $andFilter
|
||||||
|
}
|
||||||
|
$queryResults = $query_service_helper.QueryService_Query($services,$query)
|
||||||
|
$GeList = $queryResults.results
|
||||||
|
}
|
||||||
|
if ($wildcard -or [string]::IsNullOrEmpty($GeList)) {
|
||||||
|
$query.Filter = $null
|
||||||
|
$queryResults = $query_service_helper.QueryService_Query($services,$query)
|
||||||
|
$strFilterSet = @()
|
||||||
|
foreach ($setting in $GeSelectors.Keys) {
|
||||||
|
if ($null -ne $params[$setting]) {
|
||||||
|
if ($wildcard -and ($setting -eq 'displayName') ) {
|
||||||
|
$strFilterSet += '($_.' + $GeSelectors[$setting] + ' -like "' + $params[$setting] + '")'
|
||||||
|
} else {
|
||||||
|
$strFilterSet += '($_.' + $GeSelectors[$setting] + ' -eq "' + $params[$setting] + '")'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$whereClause = [string]::Join(' -and ', $strFilterSet)
|
||||||
|
$scriptBlock = [Scriptblock]::Create($whereClause)
|
||||||
|
$GeList = $queryResults.results | where $scriptBlock
|
||||||
|
}
|
||||||
|
Return $GeList
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-HVGlobalEntitlement {
|
||||||
|
|
||||||
|
<#
|
||||||
|
.Synopsis
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
Global entitlements are used to route users to their resources across multiple pods.
|
||||||
|
|
||||||
|
.PARAMETER DisplayName
|
||||||
|
Display Name of Global Entitlement.
|
||||||
|
|
||||||
|
.PARAMETER Description
|
||||||
|
Description of Global Entitlement.
|
||||||
|
|
||||||
|
.PARAMETER HvServer
|
||||||
|
Reference to Horizon View Server. If the value is not passed or null then
|
||||||
|
first element from global:DefaultHVServers would be considered inplace of hvServer
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Retrieves global application/desktop entitlement(s) with displayName 'GEAPP'
|
||||||
|
Get-HVGlobalEntitlement -DisplayName 'GEAPP'
|
||||||
|
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
Author : Praveen Mathamsetty.
|
||||||
|
Author email : pmathamsetty@vmware.com
|
||||||
|
Version : 1.1
|
||||||
|
|
||||||
|
===Tested Against Environment====
|
||||||
|
Horizon View Server Version : 7.0.2, 7.0.3
|
||||||
|
PowerCLI Version : PowerCLI 6.5
|
||||||
|
PowerShell Version : 5.0
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding(
|
||||||
|
SupportsShouldProcess = $true,
|
||||||
|
ConfirmImpact = 'High'
|
||||||
|
)]
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[String]
|
||||||
|
$DisplayName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[String]
|
||||||
|
$Description,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
$HvServer = $null
|
||||||
|
)
|
||||||
|
begin {
|
||||||
|
$services = Get-ViewAPIService -hvServer $hvServer
|
||||||
|
if ($null -eq $services) {
|
||||||
|
Write-Error "Could not retrieve ViewApi services from connection object"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
process {
|
||||||
|
$info = $services.PodFederation.PodFederation_get()
|
||||||
|
if ("ENABLED" -ne $info.localPodStatus.status) {
|
||||||
|
Write-Host "Multi-DataCenter-View/CPA is not enabled"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$result = @()
|
||||||
|
$result += Find-HVGlobalEntitlement -Param $psboundparameters -Type 'GlobalEntitlementSummaryView'
|
||||||
|
$result += Find-HVGlobalEntitlement -Param $psboundparameters -Type 'GlobalApplicationEntitlementInfo'
|
||||||
|
if (! $result) {
|
||||||
|
Write-Host "Get-HVGlobalEntitlement: No global entitlement Found with given search parameters"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return $result
|
||||||
|
}
|
||||||
|
end {
|
||||||
|
[System.gc]::collect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function Remove-HVGlobalEntitlement {
|
||||||
|
|
||||||
|
<#
|
||||||
|
.Synopsis
|
||||||
|
Deletes a Global Entitlement.
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
|
||||||
|
.PARAMETER DisplayName
|
||||||
|
Display Name of Global Entitlement.
|
||||||
|
|
||||||
|
.PARAMETER HvServer
|
||||||
|
Reference to Horizon View Server. If the value is not passed or null then
|
||||||
|
first element from global:DefaultHVServers would be considered inplace of hvServer
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Deletes global application/desktop entitlement with displayName 'GE_APP'
|
||||||
|
Remove-HVGlobalEntitlement -DisplayName 'GE_APP'
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Deletes global application/desktop entitlement(s), if displayName matches with 'GE_*'
|
||||||
|
Get-HVGlobalEntitlement -DisplayName 'GE_*' | Remove-HVGlobalEntitlement
|
||||||
|
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
Author : Praveen Mathamsetty.
|
||||||
|
Author email : pmathamsetty@vmware.com
|
||||||
|
Version : 1.1
|
||||||
|
|
||||||
|
===Tested Against Environment====
|
||||||
|
Horizon View Server Version : 7.0.2, 7.0.3
|
||||||
|
PowerCLI Version : PowerCLI 6.5
|
||||||
|
PowerShell Version : 5.0
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding(
|
||||||
|
SupportsShouldProcess = $true,
|
||||||
|
ConfirmImpact = 'High'
|
||||||
|
)]
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true, ParameterSetName = 'Default')]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[String]
|
||||||
|
$DisplayName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = 'pipeline')]
|
||||||
|
$GlobalEntitlement,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
$HvServer = $null
|
||||||
|
)
|
||||||
|
begin {
|
||||||
|
$services = Get-ViewAPIService -hvServer $hvServer
|
||||||
|
if ($null -eq $services) {
|
||||||
|
Write-Error "Could not retrieve ViewApi services from connection object"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
process {
|
||||||
|
$info = $services.PodFederation.PodFederation_get()
|
||||||
|
if ("ENABLED" -ne $info.localPodStatus.status) {
|
||||||
|
Write-Host "Multi-DataCenter-View/CPA is not enabled"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$confirmFlag = Get-HVConfirmFlag -keys $PsBoundParameters.Keys
|
||||||
|
$GeList = @()
|
||||||
|
if ($DisplayName) {
|
||||||
|
try {
|
||||||
|
$GeList = Get-HVGlobalEntitlement -DisplayName $DisplayName -hvServer $hvServer
|
||||||
|
} catch {
|
||||||
|
Write-Error "Make sure Get-HVGlobalEntitlement advanced function is loaded, $_"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} elseif ($PSCmdlet.MyInvocation.ExpectingInput -or $GlobalEntitlement) {
|
||||||
|
foreach ($item in $GlobalEntitlement) {
|
||||||
|
if (($item.GetType().name -ne 'GlobalEntitlementSummaryView') -and ($item.GetType().name -ne 'GlobalApplicationEntitlementInfo')) {
|
||||||
|
Write-Error "In pipeline did not get object of expected type GlobalApplicationEntitlementInfo/GlobalEntitlementSummaryView"
|
||||||
|
[System.gc]::collect()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$GeList += ,$item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($item in $GeList) {
|
||||||
|
Write-Host "Deleting global entitlement with DisplayName: " $item.base.displayName
|
||||||
|
if (!$confirmFlag -OR $pscmdlet.ShouldProcess($item.base.displayName)) {
|
||||||
|
if ($item.GetType().Name -eq 'GlobalEntitlementSummaryView') {
|
||||||
|
$services.GlobalEntitlement.GlobalEntitlement_Delete($item.id)
|
||||||
|
} else {
|
||||||
|
$services.GlobalApplicationEntitlement.GlobalApplicationEntitlement_Delete($item.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end {
|
||||||
|
[System.gc]::collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Export-ModuleMember Add-HVDesktop,Add-HVRDSServer,Connect-HVEvent,Disconnect-HVEvent,Get-HVPoolSpec,Get-HVInternalName, Get-HVEvent,Get-HVFarm,Get-HVFarmSummary,Get-HVPool,Get-HVPoolSummary,Get-HVMachine,Get-HVMachineSummary,Get-HVQueryResult,Get-HVQueryFilter,New-HVFarm,New-HVPool,Remove-HVFarm,Remove-HVPool,Set-HVFarm,Set-HVPool,Start-HVFarm,Start-HVPool,New-HVEntitlement,Get-HVEntitlement,Remove-HVEntitlement, Set-HVMachine, New-HVGlobalEntitlement, Remove-HVGlobalEntitlement, Get-HVGlobalEntitlement
|
||||||
|
|||||||
Reference in New Issue
Block a user