Merge pull request #213 from Magneet/master

adding functions
This commit is contained in:
Kyle Ruddy
2018-08-21 15:46:21 -04:00
committed by GitHub

View File

@@ -1761,8 +1761,8 @@ function Get-HVQueryResult {
Version : 1.1
===Tested Against Environment====
Horizon View Server Version : 7.0.2, 7.1.0
PowerCLI Version : PowerCLI 6.5, PowerCLI 6.5.1
Horizon View Server Version : 7.0.2, 7.1.0,7.4
PowerCLI Version : PowerCLI 6.5, PowerCLI 6.5.1, PowerCLI 10.1.1
PowerShell Version : 5.0
#>
@@ -1775,7 +1775,7 @@ function Get-HVQueryResult {
'FarmSummaryView','GlobalApplicationEntitlementInfo','GlobalEntitlementSummaryView',
'MachineNamesView','MachineSummaryView','PersistentDiskInfo','PodAssignmentInfo',
'RDSServerInfo','RDSServerSummaryView','RegisteredPhysicalMachineInfo','SampleInfo',
'SessionLocalSummaryView','TaskInfo','URLRedirectionInfo','UserHomeSiteInfo')]
'SessionLocalSummaryView','TaskInfo','URLRedirectionInfo','UserHomeSiteInfo','EventSummaryView','GlobalApplicationEntitlementInfo')]
[string]$EntityType,
[Parameter(Position = 1,Mandatory = $false)]
@@ -11093,4 +11093,251 @@ function New-HVHomeSite {
}
}
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, Set-HVApplicationIcon, Remove-HVApplicationIcon, Get-HVGlobalSettings, Set-HVGlobalSettings, Set-HVGlobalEntitlement, Get-HVResourceStructure, Get-hvlocalsession, Get-HVGlobalSession, Reset-HVMachine, Remove-HVMachine, Get-HVHealth, new-hvpodfederation, remove-hvpodfederation, get-hvpodfederation, register-hvpod, unregister-hvpod, set-hvpodfederation,get-hvsite,new-hvsite,set-hvsite,remove-hvsite,New-HVHomeSite,Get-HVHomeSite
function Set-HVEventDatabase {
<#
.Synopsis
Registers or changes a Horizon View Event database.
.DESCRIPTION
Registers or changes a Horizon View Event database
.PARAMETER ServerName
Name of the database server (Required)
.PARAMETER Databasetype
Database type, possible options: MYSQL,SQLSERVER,ORACLE. Defaults to SQLSERVER
.PARAMETER DatabasePort
Port number on the database server to which View will send events. Defaults to 1433.
.PARAMETER Databasename
Name of the Database (required)
.PARAMETER TablePrefix
Prefix to use for the Event Databse. Allowed characters are letters, numbers, and the characters @, $, #, _, and may not be longer than 6 characters.
.PARAMETER UserName
UserName to connect to the database (required)
.PARAMETER Password
Password of the user connecting to the database in Securestring format.
Can be created with: $password = Read-Host 'Domain Password' -AsSecureString
.PARAMETER eventtime
Time to show the events for. Possible options are ONE_WEEK, TWO_WEEKS, THREE_WEEKS, ONE_MONTH,TWO_MONTHS, THREE_MONTHS, SIX_MONTHS
.PARAMETER EventNewTime
Time in days to classify events for new. Range 1-3
.PARAMETER HvServer
Reference to Horizon View Server to query the virtual machines from. If the value is not passed or null then
first element from global:DefaultHVServers would be considered in-place of hvServer
.EXAMPLE
register-hveventdatabase -server SERVER@domain -database DATABASENAME -username USER@domain -password $password
.NOTES
Author : Wouter Kursten
Author email : wouter@retouw.nl
Version : 1.0
===Tested Against Environment====
Horizon View Server Version : 7.4
PowerCLI Version : PowerCLI 10
PowerShell Version : 5.0
#>
[CmdletBinding(
SupportsShouldProcess = $false,
ConfirmImpact = 'High'
)]
param(
[Parameter(Mandatory = $true)]
[string]
$ServerName,
[Parameter(Mandatory = $false)]
[string]
$DatabaseType = "SQLSERVER",
[Parameter(Mandatory = $false)]
[int]
$DatabasePort = 1433,
[Parameter(Mandatory = $true)]
[string]
$DatabaseName,
[Parameter(Mandatory = $false)]
[string][ValidateLength(1,6)]
$TablePrefix,
[Parameter(Mandatory = $true)]
[String]
$UserName,
[Parameter(Mandatory = $true)]
[securestring]
$password,
[Parameter(Mandatory = $false)]
[ValidateSet('ONE_WEEK','TWO_WEEKS','THREE_WEEKS','ONE_MONTH','TWO_MONTHS','THREE_MONTHS','SIX_MONTHS')]
[string]
$eventtime="TWO_WEEKS",
[Parameter(Mandatory = $false)]
[ValidateRange(1,3)]
[int]
$eventnewtime = 2,
[Parameter(Mandatory = $false)]
$HvServer = $null
)
$services = Get-ViewAPIService -hvServer $hvServer
if ($null -eq $services) {
Write-Error "Could not retrieve ViewApi services from connection object"
break
}
$temppw = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$PlainevdbPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($temppw)
$dbupassword = New-Object VMware.Hv.SecureString
$enc = [system.Text.Encoding]::UTF8
$dbupassword.Utf8String = $enc.GetBytes($PlainevdbPassword)
$eventservice=new-object vmware.hv.eventdatabaseservice
$eventservicehelper=$eventservice.getEventDatabaseInfoHelper()
$eventsettings=new-object VMware.Hv.EventDatabaseEventSettings
$eventdatabase=new-object VMware.Hv.EventDatabaseSettings
$eventsettings.ShowEventsForTime=$eventtime
$eventsettings.ClassifyEventsAsNewForDays=$eventnewtime
$eventdatabase.Server=$ServerName
$eventdatabase.type=$DatabaseType
$eventdatabase.port=$DatabasePort
$eventdatabase.name=$DatabaseName
$eventdatabase.username=$UserName
if($TablePrefix){
$eventdatabase.tablePrefix=$tableprefix
}
$eventdatabase.password=$dbupassword
$eventservicehelper.setDatabase($eventdatabase)
$eventservicehelper.setsettings($eventsettings)
$eventservice.update($services, $eventservicehelper)
[System.gc]::collect()
}
function Get-HVEventDatabase {
<#
.Synopsis
Retreives information about the configured Event Database
.DESCRIPTION
Collects information about the configured event database for aHorizon View pod
.PARAMETER HvServer
Reference to Horizon View Server to query the virtual machines from. If the value is not passed or null then
first element from global:DefaultHVServers would be considered in-place of hvServer
.EXAMPLE
Get-HVEventDatabase
.NOTES
Author : Wouter Kursten
Author email : wouter@retouw.nl
Version : 1.0
===Tested Against Environment====
Horizon View Server Version : 7.4
PowerCLI Version : PowerCLI 10
PowerShell Version : 5.0
#>
[CmdletBinding(
SupportsShouldProcess = $false,
ConfirmImpact = 'High'
)]
param(
[Parameter(Mandatory = $false)]
$HvServer = $null
)
$services = Get-ViewAPIService -hvServer $hvServer
if ($null -eq $services) {
Write-Error "Could not retrieve ViewApi services from connection object"
break
}
$eventdatabase=$services.EventDatabase.EventDatabase_Get()
if ($eventdatabase.eventdatabaseset -eq $False){
write-output "No Event Database configuration found"
}
elseif ($eventdatabase.eventdatabaseset -eq $true){
$Eventdatabaseoverview=@()
$Eventdatabaseoverview+=New-Object PSObject -Property @{"Servername" = $eventdatabase.Database.Server;
"Type" = $eventdatabase.Database.Type;
"DatabaseName" = $eventdatabase.Database.Name;
"UserName" = $eventdatabase.Database.UserName;
"TablePrefix" = $eventdatabase.Database.TablePrefix;
"ShowEventsForTime" = $eventdatabase.settings.ShowEventsForTime;
"ClassifyEventsAsNewForDays" = $eventdatabase.settings.ClassifyEventsAsNewForDays;
} | select-object Servername,Type,DatabaseName,UserName,TablePrefix,ShowEventsForTime,ClassifyEventsAsNewForDays
}
return $Eventdatabaseoverview
[System.gc]::collect()
}
function Clear-HVEventDatabase {
<#
.Synopsis
Clears configurationof the configured Event Database
.DESCRIPTION
Clears configurationof the configured Event Database
.PARAMETER HvServer
Reference to Horizon View Server to query the virtual machines from. If the value is not passed or null then
first element from global:DefaultHVServers would be considered in-place of hvServer
.EXAMPLE
Clear-HVEventDatabase
.NOTES
Author : Wouter Kursten
Author email : wouter@retouw.nl
Version : 1.0
===Tested Against Environment====
Horizon View Server Version : 7.4
PowerCLI Version : PowerCLI 10
PowerShell Version : 5.0
#>
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = 'High')]
param(
[Parameter(Mandatory = $false)]
$HvServer = $null
)
PROCESS {
$services = Get-ViewAPIService -hvServer $hvServer
if ($null -eq $services) {
Write-Error "Could not retrieve ViewApi services from connection object"
break
}
if ($pscmdlet.ShouldProcess($($msg))) {
$services.EventDatabase.EventDatabase_Clear()
}
[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, Set-HVApplicationIcon, Remove-HVApplicationIcon, Get-HVGlobalSettings, Set-HVGlobalSettings, Set-HVGlobalEntitlement, Get-HVResourceStructure, Get-HVLocalSession, Get-HVGlobalSession, Reset-HVMachine, Remove-HVMachine, Get-HVHealth, New-HVPodfederation, Remove-HVPodFederation, Get-HVPodFederation, Register-HVPod, Unregister-HVPod, Set-HVPodFederation,Get-HVSite,New-HVSite,Set-HVSite,Remove-HVSite,New-HVHomeSite,Get-HVHomeSite,Set-HVEventDatabase,Get-HVEventDatabase,Clear-HVEventDatabase