Parameter design, error and exit-code handling, the AWS.Tools modules in production, and the cmdlets that only work on Windows.
Most PowerShell trouble is not syntax. It is a cmdlet that returns success
while $LASTEXITCODE says otherwise, a parameter list nobody can read six
months on, or an AWS.Tools call that behaves differently in CI than it did
at the prompt.
A 7 Days to Die dedicated server running the old world on a new Windows Server, its build and save files checked against the old one before players move.
Watch your script handle a real AccessDenied, raised with a throwaway role's temporary keys, without changing your own permissions or writing any data.
The analyzer's fix is safe only where code meant a null check; this function relied on the array filter in ways only empty and nearly empty inputs reveal.
Compare the buildid in the appmanifest with SteamCMD's app_info_print and run app_update only when they differ. Success! and exit code 0 prove nothing.
A copied restore such as xcopy /E keeps files the backup lacks. Rename the live Saves folder aside and move the archive's in; the old world stays beside it.
A 7 Days to Die server that starts on a clean Windows Server, with its saves where you choose and TCP 26900 and UDP 26900 to 26902 open in Windows Firewall.
Write-S3Object is wrong for repeat runs into a versioned bucket, which keeps every copy; sync is wrong when a restored file keeps its size and old timestamp.
The friction that moved Windows automation from VBScript's text to PowerShell's objects also moved cloud tooling from scripts to declarative templates.
Enabling SSH on Windows Server 2025 lets only Administrators and the OpenSSH Users group sign in. You turn it on with PowerShell, then choose who's in it.
Windows OpenSSH ignores an administrator's authorized_keys. Put the key in administrators_authorized_keys with the right ACL, scripted for a fresh server.