From 08d925aad972c4ab39aee092238ac48660346e43 Mon Sep 17 00:00:00 2001 From: christian Date: Thu, 8 Oct 2026 14:16:13 -0400 Subject: [PATCH] windows-setup: say when Windows needs a restart before the SSH server exists Add-WindowsCapability can finish without registering the sshd service until the PC restarts; the script stopped with a raw Set-Service error. It now prints a RESULT block saying to restart and run it again. Co-Authored-By: Claude Opus 5.5 --- remote-access/windows-setup.ps1 | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/remote-access/windows-setup.ps1 b/remote-access/windows-setup.ps1 index 7addead..fc7577a 100644 --- a/remote-access/windows-setup.ps1 +++ b/remote-access/windows-setup.ps1 @@ -1,9 +1,12 @@ # Status panel remote access for NA Ingest - run ONCE on each Windows PC # (OBS PC, Lighting PC, Bible TV PC), logged in as the normal user. # -# 1. Start menu -> type PowerShell -> right-click -> Run as administrator -# 2. Paste this whole file and press Enter -# 3. Send the "RESULT" block it prints back to Claude +# 1. Save this file as C:\Users\\windows-setup.ps1 +# 2. Start menu -> type PowerShell -> right-click -> Run as administrator +# 3. Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (answer Y; once per PC) +# 4. Run it: & "$env:USERPROFILE\windows-setup.ps1" +# 5. Send the "RESULT" block it prints back to Claude. If it says RESTART THIS PC, +# restart, then repeat steps 2 and 4. # # It turns on Windows' built-in SSH server, lets NA Ingest log in with its key # (no password), and creates "start" tasks for the apps it finds (OBS, Resolume @@ -16,7 +19,21 @@ $notes = @() # 1. OpenSSH Server, started now and at every boot, allowed through the firewall $cap = Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Select-Object -First 1 -if ($cap.State -ne 'Installed') { Add-WindowsCapability -Online -Name $cap.Name | Out-Null } +if (-not $cap) { throw 'This Windows has no OpenSSH Server feature to install - send this message to Claude.' } +$restart = $false +if ($cap.State -ne 'Installed') { + Write-Host 'Installing the OpenSSH Server (Windows downloads it - this can take 10 minutes)...' + $restart = [bool](Add-WindowsCapability -Online -Name $cap.Name).RestartNeeded +} +if (-not (Get-Service sshd -ErrorAction SilentlyContinue)) { + $state = (Get-WindowsCapability -Online -Name $cap.Name).State + Write-Host '' + Write-Host '===== RESULT (send this to Claude) =====' + Write-Host ('pc=' + $env:COMPUTERNAME + ' sshd=missing openssh=' + $state + ' restart_needed=' + $restart) + Write-Host 'RESTART THIS PC, then run this script again.' + Write-Host '========================================' + return +} Set-Service -Name sshd -StartupType Automatic Start-Service sshd if (-not (Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue)) {