From 3031f60beb232459dd82f01a126ebc3e3b02bd40 Mon Sep 17 00:00:00 2001 From: Bryan Cerrati Date: Thu, 26 Jun 2025 13:31:15 -0400 Subject: [PATCH] Remote --- upgradechecker.ps1 | 4 +-- upgradechecker_remote.ps1 | 67 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 upgradechecker_remote.ps1 diff --git a/upgradechecker.ps1 b/upgradechecker.ps1 index aebe530..89a123b 100644 --- a/upgradechecker.ps1 +++ b/upgradechecker.ps1 @@ -62,7 +62,7 @@ Write-Host "Windows 11 Eligibility Check:" -ForegroundColor Cyan $results.GetEnumerator() | Sort-Object Name | Format-Table -AutoSize Write-Host "`nResult: " -NoNewline if ($eligible) { - Write-Host "YES – This machine is eligible for Windows 11." -ForegroundColor Green + Write-Host "YES: This machine is eligible for Windows 11." -ForegroundColor Green } else { - Write-Host "NO – This machine is NOT eligible for Windows 11." -ForegroundColor Red + Write-Host "NO: This machine is NOT eligible for Windows 11." -ForegroundColor Red } diff --git a/upgradechecker_remote.ps1 b/upgradechecker_remote.ps1 new file mode 100644 index 0000000..e3931c5 --- /dev/null +++ b/upgradechecker_remote.ps1 @@ -0,0 +1,67 @@ +$remoteComputer = "REMOTE-PC-NAME" + +Invoke-Command -ComputerName $remoteComputer -ScriptBlock { + $results = @{} + + # CPU Check (existence assumed OK for this test) + $cpu = Get-WmiObject Win32_Processor + $results["CPU Present"] = $true + + # RAM Check + $ram = [math]::Round((Get-WmiObject Win32_ComputerSystem).TotalPhysicalMemory / 1GB, 2) + $results["RAM >= 4GB"] = $ram -ge 4 + + # TPM Check + try { + $tpm = Get-WmiObject -Namespace "Root\CIMv2\Security\MicrosoftTpm" -Class Win32_Tpm -ErrorAction Stop + $results["TPM Present"] = $tpm.TpmPresent + $results["TPM Ready"] = $tpm.SpecVersion -match "2\.0" + } catch { + $results["TPM Present"] = $false + $results["TPM Ready"] = $false + } + + # Partition Style + try { + $disk = Get-Disk | Where-Object { $_.IsSystem -eq $true } + $results["Disk is GPT"] = $disk.PartitionStyle -eq 'GPT' + } catch { + $results["Disk is GPT"] = $false + } + + # Boot Mode + try { + $firmware = Get-WmiObject -Class Win32_ComputerSystem + $results["UEFI Boot"] = $firmware.BootupState -like "*UEFI*" + } catch { + $results["UEFI Boot"] = $false + } + + # Secure Boot (Optional) + try { + $sb = Confirm-SecureBootUEFI -ErrorAction Stop + $results["Secure Boot Enabled"] = $sb + } catch { + $results["Secure Boot Enabled"] = $false + } + + # Final Verdict + $eligible = $true + foreach ($check in $results.Keys) { + if ($results[$check] -ne $true) { + $eligible = $false + } + } + + # Output Summary + [PSCustomObject]@{ + ComputerName = $env:COMPUTERNAME + CPU = $cpu.Name + RAM_GB = $ram + TPM_Ready = $results["TPM Ready"] + UEFI = $results["UEFI Boot"] + GPT = $results["Disk is GPT"] + SecureBoot = $results["Secure Boot Enabled"] + Eligible = $eligible + } +}