PowerShell - Check system readiness for Thinscale Management Server
Prerequisites for installing Thinscale Management Server
Script Events:
- Discover OS version
- Discover .NET Core and .NET Framework versions
- Discover IIS version
- Discover RAM size
- Discover Free Disk Space
Results Example:
Usage:
1. Right-click and choose Save As to download the Check-SystemReadyness.ps1 : 1717056370337-Check-SystemReadyness.ps1
2. Run the command:
Script:
Script
Write-Host "Checking system compatibility for installation of Thinscale Management Server..." -ForegroundColor Yellow
Write-Host ""
#find OS
$Version = (Get-WmiObject -Class win32_operatingsystem).Caption
if (($Version -like "*Windows Server 2019*") -or ($Version -like "*windows Server 2016*") -or ($Version -like "*windows Server 2012*")){
Write-Host "OS: " $Version ": COMPATIBLE" -ForegroundColor Green
}
else {
Write-Host "OS: " $Version ": NOT COMPATIBLE - minimum OS requirement: Windows Server 2012" -ForegroundColor Red}
#Find net Core
$NetC = (Get-WmiObject -Class win32_Product | where {$_.name -like '*.net core runtime - *(x64*'})
if (($NetC.Name -like '*2.2*') -and ($NetC.Name -notlike '*3*')){
Write-Host ".NET Core:" $NetC.name "- COMPATIBLE" -ForegroundColor Green
}
else {
Write-Host ".NET Core:" $NetC.name ": NOT COMPATIBLE - .Net Core version requirement is 2.2" -ForegroundColor Red}
#Find net framework
$Framework = (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | Get-ItemProperty -name Version -EA 0 |
Where {($_.PSChildName -eq 'Full') -and ($_.Version -like '4.8*')}).Version
if ($Framework -like '*4.8*'){
Write-Host ".NET Framework:" $Framework "- COMPATIBLE" -ForegroundColor Green
}
else {
Write-Host ".NET Framework:" $Framework ": NOT COMPATIBLE - .Net Framework version requirement is 4.8" -ForegroundColor Red}
#Find IIS 8
if ($Version -like "*Windows Server*"){
$IIS = (Get-ChildItem -Path "$env:SystemRoot\system32\inetsrv\InetMgr.exe").ProductVersion
if (($IIS -like '8*') -or ($IIS -like '9*') -or ($IIS -like '10*')){
Write-Host "IIS Version:" $IIS "- COMPATIBLE" -ForegroundColor Green
}
else {
Write-Host "IIS Version:" $IIS ": NOT COMPATIBLE - minimm IIS version requirement is 8" -ForegroundColor Red}
}
else {
Write-Host "IIS Version:" $IIS ": NOT FOUND" -ForegroundColor Red
}
#Find RAM
$RAM = (Get-WmiObject -Class Win32_computersystem | select @{n="Memory";e={[math]::round($_.TotalPhysicalMemory/1GB, 2)}}).Memory
if ($RAM -ge '3'){
Write-Host "RAM:" $RAM "GB - COMPATIBLE" -ForegroundColor Green
}
else {
Write-Host "RAM:" $RAM "GB - NOT COMPATIBLE - minimum RAM requirement is 3GB!" -ForegroundColor Red}
#Find DiskSpace
$FreeSpace = (Get-WmiObject win32_logicaldisk | where {$_.DeviceID -eq 'C:'} | Select @{n="FreeSpace";e={[math]::truncate($_.freespace / 1GB)}}).FreeSpace
if ($FreeSpace -ge '1'){
Write-Host "Free Disk Space:" $FreeSpace "GB - COMPATIBLE" -ForegroundColor Green
}
else {
Write-Host "Free Disk Space:" $FreeSpace "GB - NOT COMPATIBLE - minimum disk space requirement is 1GB!" -ForegroundColor Red}
Delete