104 lines
5.6 KiB
PowerShell
104 lines
5.6 KiB
PowerShell
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
|
|
} |