Windows show-PC baseline (as the NA LiveStream PC) applied to NA Lighting, Bible TV and SC Lighting

- remote-access/windows-baseline.ps1: no driver updates, no restart while signed in, active hours 5-23, Game DVR off,
  Microsoft bundled apps removed, no sleep/hibernate/disk/USB power saving; never restarts or touches the NIC

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-21 16:44:30 -04:00
co-authored by Claude Opus 5.5
parent b1c44fd287
commit af4bfc868d
2 changed files with 60 additions and 0 deletions
+3
View File
@@ -407,6 +407,9 @@ To go back, pick 1.3.0 on the connection again.
## Windows PCs
`remote-access/windows-baseline.ps1` is the show-PC baseline (NA LiveStream, 2026-10-19; NA Lighting, Bible TV and SC Lighting, 2026-10-21): Windows Update installs no drivers and never restarts while the user is signed in (active hours 5 AM-11 PM too), Game DVR off, Microsoft's bundled apps removed, no sleep, hibernate, disk or USB power saving. It never restarts the PC or touches its network card. Run it as an administrator (copied to `C:\ProgramData\StatusPanel\`); safe to run again.
`remote-access/windows-setup.ps1` sets each PC up once (SSH for NA Ingest, start tasks, Wake-on-LAN). An app ticked "Run this program as an administrator" (OBS on the LiveStream PC) gets a start task that runs with highest privileges; otherwise Windows refuses to start it (error 0x800702E4). Windows restarts the SSH service and rtpMIDI by itself if they stop.
## Files
+57
View File
@@ -0,0 +1,57 @@
# windows-baseline.ps1 - the settings every show PC gets so Windows never breaks a service, as on the NA
# LiveStream PC (2026-10-19): Windows Update installs no drivers and never restarts while the user is signed
# in (active hours 5 AM - 11 PM as well); Game DVR off; Microsoft's bundled apps removed; no disk or USB power
# saving, no sleep. Nothing here restarts the PC or touches its network card. Run as an administrator; safe to
# run again. Prints what it set.
$ErrorActionPreference = 'SilentlyContinue'; $ProgressPreference = 'SilentlyContinue'
function K($p) { if (-not (Test-Path $p)) { New-Item $p -Force | Out-Null } }
# Windows Update: no drivers (the 10/15 NVIDIA driver broke a stream), no restarts while signed in.
$wu = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate'; $au = "$wu\AU"; K $wu; K $au
Set-ItemProperty $wu ExcludeWUDriversInQualityUpdate 1 -Type DWord
Set-ItemProperty $wu SetActiveHours 1 -Type DWord; Set-ItemProperty $wu ActiveHoursStart 5 -Type DWord; Set-ItemProperty $wu ActiveHoursEnd 23 -Type DWord
Set-ItemProperty $au NoAutoRebootWithLoggedOnUsers 1 -Type DWord
$ds = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching'; K $ds
Set-ItemProperty $ds SearchOrderConfig 0 -Type DWord; Set-ItemProperty $ds DontSearchWindowsUpdate 1 -Type DWord
$dm = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata'; K $dm; Set-ItemProperty $dm PreventDeviceMetadataFromNetwork 1 -Type DWord
Set-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching' SearchOrderConfig 0 -Type DWord
# Game DVR / Xbox capture off (machine policy and this user).
$gd = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR'; K $gd; Set-ItemProperty $gd AllowGameDVR 0 -Type DWord
K 'HKCU:\System\GameConfigStore'; Set-ItemProperty 'HKCU:\System\GameConfigStore' GameDVR_Enabled 0 -Type DWord
K 'HKCU:\Software\Microsoft\Windows\CurrentVersion\GameDVR'; Set-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\GameDVR' AppCaptureEnabled 0 -Type DWord
# Microsoft's bundled apps (for every user, and not reinstalled for new ones).
$bloat = 'Microsoft.XboxGameOverlay','Microsoft.XboxGamingOverlay','Microsoft.XboxSpeechToTextOverlay','Microsoft.Xbox.TCUI',
'Microsoft.XboxIdentityProvider','Microsoft.GamingApp','Microsoft.Edge.GameAssist','Microsoft.BingNews','Microsoft.BingWeather',
'Microsoft.BingSearch','Microsoft.MicrosoftSolitaireCollection','Clipchamp.Clipchamp','MicrosoftTeams','MSTeams','Microsoft.Copilot',
'Microsoft.OutlookForWindows','microsoft.windowscommunicationsapps','Microsoft.MicrosoftOfficeHub','Microsoft.People',
'Microsoft.YourPhone','MicrosoftWindows.CrossDevice','Microsoft.WindowsMaps','Microsoft.WindowsFeedbackHub','Microsoft.GetHelp',
'Microsoft.Getstarted','Microsoft.Todos','Microsoft.Whiteboard','Microsoft.MicrosoftJournal','Microsoft.Windows.DevHome',
'MicrosoftCorporationII.MicrosoftFamily','Microsoft.MixedReality.Portal','Microsoft.PowerAutomateDesktop','Microsoft.ZuneMusic',
'Microsoft.ZuneVideo','Microsoft.549981C3F5F10'
$prov = Get-AppxProvisionedPackage -Online
foreach ($x in $bloat) {
Get-AppxPackage -AllUsers -Name $x | Remove-AppxPackage -AllUsers
$prov | Where-Object DisplayName -eq $x | Remove-AppxProvisionedPackage -Online -AllUsers | Out-Null
}
# Power: never sleep or hibernate, disks never off, USB never suspended (DMX interfaces, capture cards).
foreach ($m in 'ac', 'dc') {
powercfg /change "standby-timeout-$m" 0; powercfg /change "hibernate-timeout-$m" 0; powercfg /change "disk-timeout-$m" 0
}
powercfg /setacvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setdcvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setactive SCHEME_CURRENT
# What it is now.
$q = { param($sub, $set) ((powercfg /query SCHEME_CURRENT $sub $set | Select-String 'Current AC' | Select-Object -First 1).Line -replace '.*: ','') }
$w = Get-ItemProperty $wu
'RESULT ' + $env:COMPUTERNAME
' updates: drivers excluded=' + $w.ExcludeWUDriversInQualityUpdate + ', active hours ' + $w.ActiveHoursStart + '-' + $w.ActiveHoursEnd +
', no restart while signed in=' + (Get-ItemProperty $au).NoAutoRebootWithLoggedOnUsers
' game DVR policy=' + (Get-ItemProperty $gd).AllowGameDVR + ', user=' + (Get-ItemProperty 'HKCU:\System\GameConfigStore').GameDVR_Enabled
' power: sleep=' + (& $q SUB_SLEEP STANDBYIDLE) + ' hibernate=' + (& $q SUB_SLEEP HIBERNATEIDLE) + ' disk=' + (& $q SUB_DISK DISKIDLE) +
' usb suspend=' + (& $q 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226)
' bundled apps left: ' + ((($bloat | Where-Object { Get-AppxPackage -AllUsers -Name $_ }) -join ', ') -replace '^$', 'none')
' ssh: ' + (Get-Service sshd).Status + ' / ' + (Get-Service sshd).StartType