#XenApp_InfoFarm #CTXBLOG.fr #Version : 1.1 #21/01/2011 # -Delete Get-Content ($Path + $FileName)) | Foreach-Object {$_ -replace "False", "False"} | Set-Content ($Path + $FileName) # Replace by $XenAppReport = $XenAppReport.Replace("False", "False") # - Adding column Load Evaluator in "Server(s) Details" Report #Version : 1.2 #21/01/2011 # -Correction error code line 125 - {$OutputEnteteServ += @($Adm) by {$OutputEnteteServ += @($Servers) Set-executionpolicy RemoteSigned If ((Get-PSSnapin -Name "Citrix*" -ErrorAction SilentlyContinue | Measure-Object).count -eq 0) { Add-PSSnapin -Name "Citrix*"} #File functions . "C:\tools\scripts\powershell\XenApp_Check\Ctx_Functions.ps1" #Display progess bar 0 % Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 0 -Status "Informations recovery" -Id 1 #Gets the farm information $farm = Get-XAFarmConfiguration #Create html report $Path="c:\tools\" $FileName="XenApp_InfoFarm-" + $farm + ".html" $File = [System.IO.File]::CreateText($Path + $FileName) $Date = Get-Date $Version = "1.1" #Display progess bar 3 % Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 5 -Status "Informations recovery" -Id 1 #Variables XenApp $Zones = GET-XAZone | sort ZoneName $Zones_Count = (($Zones | Measure-Object).Count) Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 10 -Status "Informations Zone(s)recovery" -Id 1 #Display progess bar 5 % $LoadEvaluator = GET-XALoadEvaluator | sort LoadEvaluatorName $LoadEvalutaror_Count = (($LoadEvaluator | Measure-Object).Count) Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 15 -Status "Informations Load Evaluator(s) recovery" -Id 1 #Display progess bar 10 % $Policy = GET-XAPolicy | sort Priority $Policy_Count = (($Policy | Measure-Object).Count) Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 20 -Status "Informations Policy(s) recovery" -Id 1 #Display progess bar 15 % $Adm = Get-XAAdministrator $Adm_Count = (($Adm | Measure-Object).Count) Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 25 -Status "Informations Administrator(s) recovery" -Id 1 #Display progess bar 20 % $Applications = Get-XAApplication |sort FolderPath $Applications_Count = (($Applications | Measure-Object).Count) Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 55 -Status "Informations Application(s) recovery" -Id 1 #Display progess bar 55 % $Servers = Get-XAServer | sort FolderPath $Servers_Count = (($Servers | Measure-Object).Count) Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 95 -Status "Informations Server(s) recovery" -Id 1 #Display progess bar 90 % $XenAppReport = Get-CustomHTML "Farme Name : $Farm" $XenAppReport += Get-CustomHeaderClose $DsnPath = Get-Content "C:\Program Files\Citrix\Independent Management Architecture\mf20.dsn" foreach ($str in $DsnPath) {$1=$str.contains("DRIVER") ; $2=$str.contains("SERVER") ; if($1 -eq $True) {$DataStoreFile = $Str} ElseIF ($2 -eq $True) {$DataStoreServer = $Str} } # ---- General Summary Info ---- #Write-CustomOut "..Adding General Summary Info to the XenApp report" $CommentsSet = $Comments $Comments = $False $XenAppReport += Get-CustomHeader "General Details" "" $XenAppReport += Get-HTMLDetail "Datastore type" (@($DataStoreFile.Substring(7))) $XenAppReport += Get-HTMLDetail "Datastore Server" (@($DataStoreServer.Substring(7))) $XenAppReport += Get-HTMLDetail "Licence Server Name and port" (@($Farm.LicenseServerName + " ("+$Farm.LicenseServerPortNumber+")")) $XenAppReport += Get-HTMLDetail "Number of Servers:" (@($Servers_Count)) $XenAppReport += Get-HTMLDetail "Number of Applications:" (@($Applications_Count)) $XenAppReport += Get-HTMLDetail "Number of Zones:" (@($Zones_Count)) $XenAppReport += Get-HTMLDetail "Number of Load Evaluators:" (@($LoadEvalutaror_Count)) $XenAppReport += Get-HTMLDetail "Number of Policy:" (@($Policy_Count)) $XenAppReport += Get-HTMLDetail "Number of Administrators:" (@($Adm_Count)) $XenAppReport += Get-CustomHeaderClose #Write-CustomOut "..Adding Zones Details Info to the XenApp report" Foreach ($Zones in $Zones) {$OutputEnteteZone += @($Zones | Select @{N="Zone Name";E={if($Zones.ZoneName -eq $Null){"Error"}else{$Zones.ZoneName}}}, @{N="Zone Data Collector";E={if($Zones.DataCollector -eq $Null){"Error"}else{$Zones.DataCollector}}}) } $XenAppReport += Get-CustomHeader ("Zone(s) Details
Total : "+($Zones_Count)) $XenAppReport += Get-HTMLTable $OutputEnteteZone $XenAppReport += Get-CustomHeaderClose #Write-CustomOut "..Adding Load Evaluator Details Info to the XenApp report" Foreach ($LoadEvaluator in $LoadEvaluator) {$OutputEnteteLoad += @($LoadEvaluator | Select @{N="Load Evaluator Name";E={if($LoadEvaluator.LoadEvaluatorName -eq $Null){"Error"}else{$LoadEvaluator.LoadEvaluatorName}}}, @{N="Description";E={if($LoadEvaluator.Description -eq $Null){"No description"}else{$LoadEvaluator.Description}}}) } $XenAppReport += Get-CustomHeader ("Load Evaluator(s) Details
Total : "+($LoadEvalutaror_Count)) $XenAppReport += Get-HTMLTable $OutputEnteteLoad $XenAppReport += Get-CustomHeaderClose #Write-CustomOut "..Adding Policy Details Info to the XenApp report" Foreach ($Policy in $Policy) {$OutputEntetePolicy += @($Policy | Select @{N="Policy Name";E={if($Policy.Policyname -eq $Null){"Error"}else{$Policy.PolicyName}}}, @{N="Description";E={$Policy.Description}}, @{N="Priority";E={$Policy.Priority}}, @{N="Enabled";E={if($Policy.Enabled -eq $False){"False"}else{$Policy.Enabled}}} )} $XenAppReport += Get-CustomHeader ("Policy(s) Details
Total : "+($Policy_Count)) #$OutputEntetePolicy | Set-Content c:\process-report.txt $XenAppReport += Get-HTMLTable $OutputEntetePolicy $XenAppReport += Get-CustomHeaderClose #Write-CustomOut "..Adding Administrator Details Info to the XenApp report" Foreach ($Adm in $Adm) {$OutputEnteteAdm += @($Adm | Select @{N="Administrator Name";E={if($Adm.AdministratorName -eq $Null){"Error"}else{$Adm.AdministratorName}}}, @{N="Permissions";E={$Adm.AdministratorType}}, @{N="Enabled";E={if($Adm.Enabled -match "False"){"False"}else{$Adm.Enabled}}}) } $XenAppReport += Get-CustomHeader ("Administrator(s) Details
Total : "+($Adm_Count)) $XenAppReport += Get-HTMLTable $OutputEnteteAdm $XenAppReport += Get-CustomHeaderClose #Write-CustomOut "..Adding Applications Details Info to the XenApp report" Foreach ($Applications in $Applications) {$OutputEnteteApp += @($Applications | Select @{N="Application Name";E={if($Applications.DisplayName -eq $Null){"Error"}else{$Applications.DisplayName}}}, @{N="Description";E={$Applications.Description}}, @{N="Folder";E={$Applications.FolderPath}},@{N="Enabled";E={if($Applications.Enabled -match "False"){"False"}else{$Applications.Enabled}}}) } $XenAppReport += Get-CustomHeader ("Application(s) Details
Total : "+($Applications_Count)) $XenAppReport += Get-HTMLTable $OutputEnteteApp $XenAppReport += Get-CustomHeaderClose #Write-CustomOut "..Adding Servers Details Info to the XenApp report" Foreach ($Servers in $Servers) {$OutputEnteteServ += @($Servers | Select @{N="Servers Name";E={if($Servers.ServerName -eq $Null){"Error"}else{$Servers.ServerName}}}, @{N="IP";E={$Servers.IpAddresses}}, @{N="Folder";E={$Servers.FolderPath}}, @{N="Zone";E={$Servers.ZoneName}}, @{N="Logon Enabled";E={if($Servers.LogOnsEnabled -match "False"){"False"}else{$Servers.LogOnsEnabled}}}, @{N="Load Evaluator";E={Get-XALoadEvaluator -ServerName $Servers}}, @{N="XenApp Edition";E={$Servers.CitrixEditionString}}, @{N="Instal Date XenApp";E={$Servers.CitrixInstallDate}}) } $XenAppReport += Get-CustomHeader ("Server(s) Details
Total : "+($Servers_Count)) $XenAppReport += Get-HTMLTable $OutputEnteteServ $XenAppReport += Get-CustomHeaderClose $XenAppReport | out-file -encoding ASCII -filepath $file #Display progess bar 100 % Write-Progress -Activity "XenApp_InforFarm in Progress" -PercentComplete 100 -Status "Informations recovery" -Id 1 # ---- Time to build ---- $XenAppReport += Get-CustomHeader "Time to build" $executiontime = (get-date) - $date $XenAppReport += Get-HTMLDetail "Time in minutes:" (@([math]::round($executiontime.TotalMinutes,2))) $XenAppReport += Get-CustomHeaderClose $XenAppReport += Get-CustomHeader0Close $XenAppReport += Get-CustomHTMLClose $XenAppReport = $XenAppReport.Replace("False", "False") $File.WriteLine($XenAppReport) $File.close()