sqlinsight-pro/tests
Søren Eggert Lundsteen Olsen 697d243658 Review 1.5: grant-windows-server.ps1 backs up, removes exactly what it gave, and never more than read
The grant script changes SCM and WMI security on customer servers. Before, a re-run
replaced every ACE of the account on a WMI namespace (also a customer's Deny), -Remove
took the account out of groups and ACEs it had before, only the SCM SDDL was backed up
(and never used), Remote Management Users also opened PowerShell Remoting, and
-EnableFirewall narrowed Windows' built-in rules for every other tool and was never undone.

- Checks everything before changing anything: elevation, the account resolves (broad
  groups refused), Deny ACEs stop the script, -EnableFirewall needs -AgentAddress.
- Backs up the original SDDLs (SCM, WMI namespaces, WinRM), group memberships and
  firewall rules before the first change; records what it added in a state file in an
  administrators-only folder; -Remove removes only that.
- SDDL handled with RawSecurityDescriptor (GetSD/SetSD, sc sdshow/sdset): exactly one
  ACE added in canonical order, verified before writing and after; aliases (NS) work.
- No Remote Management Users: -WinRM adds GENERIC_READ (no Execute) to WinRM's RootSDDL;
  DCOM is the default.
- Firewall: its own "SQLInsight Agent: ..." rules only from the agent's address,
  removed again with -Remove; Windows' rules untouched.
- -WhatIf, groups by SID, Danish messages, PowerShell 2.0 syntax.
- ServerGrantScript.For does not fill in an account that could end the PowerShell
  string (typographic quotes, control characters); tests run the SDDL logic in
  Windows PowerShell against real default SDDLs.
- docs/windows-servere.md: rights, safety net, firewall.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 15:31:49 +02:00
..
SQLInsight.Agent.Tests Repository and agent: Dynamics AX history (migration 0017), seeding, hub opt-in 2026-10-02 13:53:34 +02:00
SQLInsight.Collectors.Tests Review 1.5: SQL Scripts for Windows servers and synthetic checks follow main's structure and registry 2026-10-02 15:18:24 +02:00
SQLInsight.Community.Tests Docs: Windows-servere og syntetiske tjek (1.5) 2026-10-02 14:59:22 +02:00
SQLInsight.Connectivity.Tests Fase 2: Azure SQL Managed Instance, docs and rule catalog test 2026-09-29 08:23:40 +00:00
SQLInsight.Core.Tests Review 1.5: grant-windows-server.ps1 backs up, removes exactly what it gave, and never more than read 2026-10-02 15:31:49 +02:00
SQLInsight.IntegrationTests Web: Windows-servere and Syntetiske tjek pages, and the same in API v1 (scope config:write) 2026-10-02 14:58:52 +02:00
SQLInsight.Licensing.Tests Ship SEOSoft's license key k20261001; agent defaults to the real hub 2026-10-01 07:15:47 +02:00
SQLInsight.Notifications.Tests Fase 4: integration with Prometheus, Grafana, SCOM and scripts 2026-09-29 09:56:01 +00:00
SQLInsight.Rules.Tests Review 1.5: SQL Scripts for Windows servers and synthetic checks follow main's structure and registry 2026-10-02 15:18:24 +02:00
SQLInsight.Servers.Tests Review 1.5: grant-windows-server.ps1 backs up, removes exactly what it gave, and never more than read 2026-10-02 15:31:49 +02:00
SQLInsight.Updates.Tests Community-websted og Discourse-forum 2026-09-29 13:45:06 +00:00