function Get-SDKSupport() { <# .SYNOPSIS Gets system information and all SDK/Alkami installed packages along with the Windows Experience Index #> [CmdletBinding()] param () $transcriptFilename = "Alkami.SDK.Support.$(Get-Date -Format "yyyyMMddhhmm").txt" $transcriptPath = Join-Path -Path (Get-OrbLogsPath) -ChildPath $transcriptFilename Start-Transcript -Path $transcriptPath "`nComputer Info:" | Out-Default -Transcript | Out-Null $diskInfo = Get-PhysicalDisk $sysInfo = systemInfo $processorInfo = Get-CimInstance -ComputerName Localhost -Class CIM_Processor -ErrorAction Stop | Select-Object $hotFixes = Get-HotFix Write-Host "Generating Experience Index. This will take a while but it is still working, promise." $perfIndex = winsat formal $perfIndexReport = get-wmiobject -class win32_winsat "`tHardware Information:" | Out-Default -Transcript | Out-Null "`t`tDisk:" | Out-Default -Transcript | Out-Null "`t`t`tType: $($diskInfo.MediaType)" | Out-Default -Transcript | Out-Null "`t`t`tName: $($diskInfo.FriendlyName)" | Out-Default -Transcript | Out-Null "`t`t`tManufacturer: $(($diskInfo.CimInstanceProperties | Where-Object -Property Name -eq 'Manufacturer' | Select-Object -Property Value).Value)" | Out-Default -Transcript | Out-Null "`t`t`tModel: $($diskInfo.Model)" | Out-Default -Transcript | Out-Null "`t`t`tStatus: $($diskInfo.HealthStatus)" | Out-Default -Transcript | Out-Null "`n`t`tProcessor:" | Out-Default -Transcript | Out-Null "`t`t`tManufacturer: $($processorInfo.Manufacturer)" | Out-Default -Transcript | Out-Null "`t`t`tName: $($processorInfo.Name)" | Out-Default -Transcript | Out-Null "`t`t`tNumber Of Cores: $($processorInfo.NumberOfCores)" | Out-Default -Transcript | Out-Null "`t`t`tNumber Of LogicalProcessors: $($processorInfo.NumberOfLogicalProcessors)" | Out-Default -Transcript | Out-Null "`t`t`tCurrent Clock Speed: $($processorInfo.CurrentClockSpeed)" | Out-Default -Transcript | Out-Null "`t`t`tMax Clock Speed: $($processorInfo.MaxClockSpeed)" | Out-Default -Transcript | Out-Null "`t`t`tThread Count: $($processorInfo.ThreadCount)" | Out-Default -Transcript | Out-Null "`n`t`tMemory:" | Out-Default -Transcript | Out-Null "`t`t`tTotal Physical Memory: $((($sysInfo | Select-String 'Total Physical Memory:').ToString().Split(':'))[1].Trim())" | Out-Default -Transcript | Out-Null "`t`t`tAvailable Physical Memory: $((($sysInfo | Select-String 'Available Physical Memory:').ToString().Split(':'))[1].Trim())" | Out-Default -Transcript | Out-Null "`n`t`tOperating System Information:" | Out-Default -Transcript | Out-Null "`t`t`tName: $((($sysInfo | Select-String 'OS Name:').ToString().Split(':'))[1].Trim())" | Out-Default -Transcript | Out-Null "`t`t`tVersion: $(((ConvertTo-Json ($sysInfo | Select-String 'OS Version:')[0]) | ConvertFrom-Json).Line.Split(':')[1].Trim())" | Out-Default -Transcript | Out-Null "`t`t`tHotFix's Installed:" | Out-Default -Transcript | Out-Null foreach ($hotfix in $hotFixes) { "`t`t`t$($hotfix.HotFixID)" | Out-Default -Transcript | Out-Null } "`nWindows Experience Index:" | Out-Default -Transcript | Out-Null "`tOverall Experience: $($perfIndexReport.WinSPRLevel)" | Out-Default -Transcript | Out-Null "`tCPU: $($perfIndexReport.CPUScore)" | Out-Default -Transcript | Out-Null "`tDisk: $($perfIndexReport.DiskScore)" | Out-Default -Transcript | Out-Null "`tMemory: $($perfIndexReport.MemoryScore)" | Out-Default -Transcript | Out-Null "`tGraphics: $($perfIndexReport.GraphicsScore)" | Out-Default -Transcript | Out-Null "`tDirect 3D: $($perfIndexReport.D3DScore)" | Out-Default -Transcript | Out-Null "`nInstalled Packages:" | Out-Default -Transcript | Out-Null # Get installed packages $allLocallyInstalledPackages = (choco list -lr) foreach ($package in $allLocallyInstalledPackages) { if ($package.IndexOf('|') -eq -1) { continue } $splits = $package -split '\|' $id = $splits[0] $version = $splits[1] "`t$id $version" | Out-Default -Transcript | Out-Null } # Get Installed Alkami services and their current state $alkamiServices = Get-Service | Where-Object {($_.Name -match "Alkami.+") -or ($_.Name -match "redis-+")} "`nAlkami Services:" | Out-Default -Transcript | Out-Null "`tStatus:`t`tName:" | Out-Default -Transcript | Out-Null foreach ($service in $alkamiServices) { "`t$($service.Status)`t`t$($service.Name)" | Out-Default -Transcript | Out-Null } # Get Installed software # Get all installed Visual Studio instances "`nVisual Studio Instances:" | Out-Default -Transcript | Out-Null $vsInstances = Get-CimInstance MSFT_VSInstance foreach ($vsInstance in $vsInstances) { "`t$($vsInstance.ElementName) Version:$($vsInstance.Version) is installed." | Out-Default -Transcript | Out-Null } # Get all installed MS SQL instances "`nMicrosoft SQL Server Instances:" | Out-Default -Transcript | Out-Null $sqlInstances = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances foreach ($sqlInstance in $sqlInstances) { $instanceName = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$sqlInstance "`tInstance Name: $($sqlInstance)" | Out-Default -Transcript | Out-Null "`tEdition: $((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instanceName\Setup").Edition)" | Out-Default -Transcript | Out-Null "`tVersion: $((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instanceName\Setup").Version)" | Out-Default -Transcript | Out-Null "`tPatch Level: $((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instanceName\Setup").PatchLevel)`n" | Out-Default -Transcript | Out-Null } "`n" Stop-Transcript }