================================================================================ QUICK CONNECTION REFERENCE - WinRM HTTPS ================================================================================ HOW TO CONNECT TO REMOTE PC FROM YOUR COMPUTER ================================================================================ METHOD 1: BASIC TEST (No Authentication Required) ================================================================================ Test if WinRM HTTPS is responding: Test-WSMan -ComputerName g9kn7pz3esf.logon.ds.ge.com -UseSSL -Port 5986 Replace "g9kn7pz3esf" with any PC hostname. Expected Output: wsmid : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd ProductVendor : Microsoft Corporation ProductVersion : OS: 0.0.0 SP: 0.0 Stack: 3.0 ================================================================================ METHOD 2: INTERACTIVE SESSION (Most Common) ================================================================================ Get an interactive PowerShell prompt on the remote PC: # Get credentials (will prompt) $cred = Get-Credential # Connect Enter-PSSession -ComputerName g9kn7pz3esf.logon.ds.ge.com ` -Credential $cred -UseSSL -Port 5986 Your prompt will change to show the remote computer name: [g9kn7pz3esf.logon.ds.ge.com]: PS C:\> Run commands normally. To exit: Exit-PSSession ================================================================================ METHOD 3: RUN SINGLE COMMAND (Quick Tasks) ================================================================================ Execute a command without entering interactive mode: # Get credentials first $cred = Get-Credential # Run command Invoke-Command -ComputerName g9kn7pz3esf.logon.ds.ge.com ` -Credential $cred -UseSSL -Port 5986 ` -ScriptBlock { hostname } Example - Get system info: Invoke-Command -ComputerName g9kn7pz3esf.logon.ds.ge.com ` -Credential $cred -UseSSL -Port 5986 ` -ScriptBlock { Get-ComputerInfo | Select-Object CsName, OsVersion, TotalPhysicalMemory } ================================================================================ METHOD 4: PERSISTENT SESSION (Multiple Commands) ================================================================================ Create a reusable connection: # Get credentials $cred = Get-Credential # Create session $session = New-PSSession -ComputerName g9kn7pz3esf.logon.ds.ge.com ` -Credential $cred -UseSSL -Port 5986 # Use session multiple times (faster than reconnecting) Invoke-Command -Session $session -ScriptBlock { Get-Service } Invoke-Command -Session $session -ScriptBlock { Get-Process } Invoke-Command -Session $session -ScriptBlock { ipconfig } # Close when done Remove-PSSession $session ================================================================================ CERTIFICATE TRUST ISSUE? (Self-Signed Certs) ================================================================================ If you get certificate errors, skip certificate validation (testing only): # Create session option $sessionOption = New-PSSessionOption -SkipCACheck -SkipCNCheck # Use with any connection method: Test-WSMan -ComputerName g9kn7pz3esf.logon.ds.ge.com -UseSSL -Port 5986 ` -SessionOption $sessionOption Enter-PSSession -ComputerName g9kn7pz3esf.logon.ds.ge.com ` -Credential $cred -UseSSL -Port 5986 -SessionOption $sessionOption Invoke-Command -ComputerName g9kn7pz3esf.logon.ds.ge.com ` -Credential $cred -UseSSL -Port 5986 -SessionOption $sessionOption ` -ScriptBlock { hostname } ================================================================================ CONNECTING TO MULTIPLE PCs ================================================================================ Test/connect to all shopfloor PCs: # List of hostnames $pcs = @("g1jjvh63esf", "g1jjxh63esf", "g9kn7pz3esf") # Get credentials once $cred = Get-Credential # Test all PCs foreach ($pc in $pcs) { $fqdn = "$pc.logon.ds.ge.com" Write-Host "Testing $fqdn..." -ForegroundColor Yellow try { Test-WSMan -ComputerName $fqdn -UseSSL -Port 5986 -ErrorAction Stop Write-Host " [OK] $fqdn is responding" -ForegroundColor Green } catch { Write-Host " [FAIL] $fqdn failed: $($_.Exception.Message)" -ForegroundColor Red } } ================================================================================ USEFUL REMOTE COMMANDS ================================================================================ Once connected (via Enter-PSSession or Invoke-Command), try these: System Information: hostname ipconfig Get-ComputerInfo systeminfo WinRM Status: Get-Service WinRM winrm enumerate winrm/config/listener Get-ChildItem Cert:\LocalMachine\My Services: Get-Service Get-Service WinRM | Select-Object Name, Status, StartType Processes: Get-Process Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Disk Space: Get-PSDrive -PSProvider FileSystem Event Logs: Get-EventLog -LogName System -Newest 10 ================================================================================ TROUBLESHOOTING ================================================================================ Cannot Reach PC: Test-Connection g9kn7pz3esf.logon.ds.ge.com Resolve-DnsName g9kn7pz3esf.logon.ds.ge.com Test-NetConnection -ComputerName g9kn7pz3esf.logon.ds.ge.com -Port 5986 Authentication Failed: # Try different username formats: Get-Credential -UserName "DOMAIN\username" Get-Credential -UserName ".\localadmin" Get-Credential -UserName "G9KN7PZ3ESF\username" Certificate Errors: # Use -SessionOption to skip validation (see above) # Or install certificate on your computer: Import-Certificate -FilePath "C:\path\to\cert.cer" ` -CertStoreLocation Cert:\LocalMachine\Root WinRM Client Settings (run as Administrator on YOUR computer): # Enable WinRM client Enable-PSRemoting -Force # Add to trusted hosts Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*.logon.ds.ge.com" -Force # View current settings Get-Item WSMan:\localhost\Client\TrustedHosts ================================================================================ COMPLETE TESTING SCRIPT ================================================================================ Save this as Test-RemotePC.ps1 and run it: param([string]$ComputerName) Write-Host "Testing $ComputerName..." -ForegroundColor Cyan # Test connectivity if (Test-Connection $ComputerName -Count 2 -Quiet) { Write-Host " [OK] PC is reachable" -ForegroundColor Green } else { Write-Host " [FAIL] Cannot reach PC" -ForegroundColor Red exit } # Test WinRM HTTPS $sessionOption = New-PSSessionOption -SkipCACheck -SkipCNCheck try { Test-WSMan -ComputerName $ComputerName -UseSSL -Port 5986 ` -SessionOption $sessionOption -ErrorAction Stop Write-Host " [OK] WinRM HTTPS is responding" -ForegroundColor Green } catch { Write-Host " [FAIL] WinRM HTTPS not responding" -ForegroundColor Red exit } # Test authenticated connection $cred = Get-Credential try { $result = Invoke-Command -ComputerName $ComputerName -Credential $cred ` -UseSSL -Port 5986 -SessionOption $sessionOption ` -ScriptBlock { hostname } -ErrorAction Stop Write-Host " [OK] Remote command succeeded: $result" -ForegroundColor Green } catch { Write-Host " [FAIL] Authentication failed" -ForegroundColor Red } Usage: .\Test-RemotePC.ps1 -ComputerName g9kn7pz3esf.logon.ds.ge.com ================================================================================ CREDENTIAL FORMATS ================================================================================ When prompted for credentials, use one of these formats: Domain Account: Username: DOMAIN\username Username: username@domain.com Local Account: Username: .\Administrator Username: .\localadmin Username: COMPUTERNAME\username ================================================================================ PORT INFORMATION ================================================================================ WinRM HTTPS: Port 5986 (configured by deployment scripts) WinRM HTTP: Port 5985 (still available, but unencrypted) Always use -UseSSL flag to ensure encrypted connection! ================================================================================ NEXT STEPS AFTER TESTING ================================================================================ 1. Test basic connectivity with Test-WSMan 2. Test authenticated connection with Enter-PSSession 3. Run a few remote commands to verify functionality 4. If all works, deploy to 3-5 more PCs 5. Test connectivity to all deployed PCs 6. Document any issues in deployment logs 7. Proceed with full production rollout (175 PCs) ================================================================================ FOR MORE DETAILS ================================================================================ See: TEST-REMOTE-CONNECTION-GUIDE.md (comprehensive testing guide) ================================================================================