Private/Setup/Set-Parameters.ps1


<#PSScriptInfo
 
.VERSION 1.0.1
 
.GUID c7ea71fa-ee5a-4a79-9b88-8dc528714142
 
.AUTHOR Pierre Smit
 
.COMPANYNAME
 
.COPYRIGHT
 
.TAGS Citrix
 
.LICENSEURI
 
.PROJECTURI
 
.ICONURI
 
.EXTERNALMODULEDEPENDENCIES
 
.REQUIREDSCRIPTS
 
.EXTERNALSCRIPTDEPENDENCIES
 
.RELEASENOTES
Created [24/05/2019_19:23]
Updated [06/06/2019_19:24]
 
.PRIVATEDATA
 
#>
 



<#
 
.DESCRIPTION
Citrix XenDesktop HTML Health Check Report
 
#>


Param()


#Requires -RunAsAdministrator

cls
[string]$ScriptPath = $PSScriptRoot
Set-Location $ScriptPath

Write-Host 'Installing needed Modules' -ForegroundColor Cyan
if ((Get-PSRepository -Name PSGallery).InstallationPolicy -notlike 'Trusted') { Set-PSRepository -Name PSGallery -InstallationPolicy Trusted }
if ([bool](Get-Module -Name PSWriteColor) -eq $false) { Install-Module -Name PSWriteColor -RequiredVersion 0.85 -Repository PSGallery -Scope AllUsers -AllowClobber -SkipPublisherCheck }

Write-Color -Text 'Installing BetterCredentials Module' -Color DarkCyan -ShowTime
if ([bool](Get-Module -Name BetterCredentials) -eq $false) { Install-Module -Name BetterCredentials -RequiredVersion 4.5 -Repository PSGallery -Scope AllUsers -AllowClobber -SkipPublisherCheck }

Write-Color -Text 'Installing ImportExcel Module' -Color DarkCyan -ShowTime
if ([bool](Get-Module -Name ImportExcel) -eq $false) { Install-Module -Name ImportExcel -RequiredVersion 6.0.0 -Repository PSGallery -Scope AllUsers -AllowClobber -SkipPublisherCheck }

Write-Color -Text 'Installing PSWriteHTML Module' -Color DarkCyan -ShowTime
if ([bool](Get-Module -Name PSWriteHTML) -eq $false) { Install-Module -Name PSWriteHTML -RequiredVersion 0.0.32 -Repository PSGallery -Scope AllUsers -AllowClobber -SkipPublisherCheck }

Write-Color -Text 'Installing Anybox Module' -Color DarkCyan -ShowTime
if ([bool](Get-Module -Name Anybox) -eq $false) { Install-Module -Name Anybox -Repository PSGallery -Scope AllUsers -AllowClobber -SkipPublisherCheck }

Write-Color -Text 'Installing CTXHealthCheck Module' -Color DarkCyan -ShowTime
Install-Module -Name CTXHealthCheck -Repository PSGallery -Scope AllUsers -AllowClobber

Import-Module PSWriteColor
Import-Module BetterCredentials

Write-Color -Text "Script Root Folder - $ScriptPath" -Color Cyan -ShowTime
[string]$setupemail = Read-Host -Prompt 'Would you like to setup SMTP Emails (y/n)'

if ($setupemail[0] -like 'y') {
    $smtpClientCredentials = Find-Credential | where target -Like "*Healthcheck_smtp" | Get-Credential -Store
if ($smtpClientCredentials -eq $null) {
    $Account = BetterCredentials\Get-Credential -Message "smtp login for HealthChecks email"
    Set-Credential -Credential $Account -Target "Healthcheck_smtp" -Persistence LocalComputer -Description "Account used for ctx health checks" -Verbose
}

[xml]$TempParm = Get-Content .\Parameters-Template.xml -Verbose
}
else {
    [xml]$TempParm = Get-Content .\Parameters-TemplateNoEmail.xml -Verbose
}

Write-Color -Text 'Setting up credentials' -Color DarkCyan -ShowTime
$CTXAdmin = Find-Credential | where target -Like "*Healthcheck" | Get-Credential -Store
if ($CTXAdmin -eq $null) {
    $AdminAccount = BetterCredentials\Get-Credential -Message "Admin Account: DOMAIN\Username for CTX HealthChecks"
    Set-Credential -Credential $AdminAccount -Target "Healthcheck" -Persistence LocalComputer -Description "Account used for ctx health checks" -Verbose
}


Write-Color -Text 'Setting up Parameters.xml' -Color DarkCyan -ShowTime

$TempParm.settings.Variables.Variable | foreach {
    [string]$getnew = Read-Host $_.'#comment'
    $_.value = $getnew
}
$global:ParametersFolder = $TempParm.settings.Variables.Variable[5].Value.ToString()
$xmlfile = New-Item -Path $ParametersFolder  -Name Parameters.xml -ItemType File -Force -Verbose
$TempParm.Save($xmlfile.FullName)


Write-Color -Text '_________________________________________' -Color Green
Write-Color -Text 'Setup Complete' -Color green -ShowTime
Write-Color -Text 'Run Test-Parameters.ps1 to check settings' -Color green -ShowTime -LinesBefore 1