Functions/Start-ExPerfwiz.ps1
Function Start-ExPerfwiz { <# .SYNOPSIS Starts a data collector set .DESCRIPTION Starts a data collector set on the local server or a remote server. .PARAMETER Name The Name of the Data Collector set to start Default Exchange_Perfwiz .PARAMETER Server Name of the remote server to start the data collector set on. Default LocalHost .OUTPUTS Logs all activity into $env:LOCALAPPDATA\ExPefwiz.log file .EXAMPLE Start the default data collector set on this server. Start-ExPerfwiz .EXAMPLE Start a collector set on another server. Start-ExPerfwiz -Name "My Collector Set" -Server RemoteServer-01 #> [cmdletbinding()] param ( [string] $Name = "Exchange_Perfwiz", [string] $Server = $env:ComputerName ) Write-Logfile -string ("Starting ExPerfwiz: " + $Server) # Check if we have an error and throw and error if needed. $i = 0 $repeat = $false do { # Start the experfwiz counter set [string]$logman = logman start -name $Name -s $Server # We know "unable to create the specified log file" can be worked around by incrementing the size and trying again # so incrementing the size and trying again. if ($logman | select-string "Unable to create the specified log file"){ Write-Warning "Starting Experfwiz Failed ... Incrementing size and trying again. [Attempt $i/3]" Write-Logfile "Retrying Start-Experfwiz" Step-ExPerfwizSize -Name $Name -Server $Server $i++ $repeat = $true } else {$repeat=$false} # Repeat up to three times } while ($repeat -and ($i -lt 3)) # If we have an error then we need to throw else continue If ($logman | select-string "Error:") { Write-Logfile "[ERROR] - Unable to Start Collector" Write-Logfile $logman Throw $logman } else { Write-Logfile "ExPerfwiz Started" } } |