Files
2026-09-15 18:53:28 +02:00

134 lines
3.5 KiB
Markdown

# Windows, WinRM and Active Directory
## Service account
The standard service account is:
``` text
svc_bf-ansible
```
For an AD domain, the configured identity is normally the UPN:
``` text
svc_bf-ansible@<ad_dns_domain>
```
The normal domain-account Vault variable is:
``` yaml
vault_windows_ansible_password: "..."
```
The shared-local-account Vault variable is:
``` yaml
vault_windows_local_ansible_password: "..."
```
## Windows credential models
New Windows hosts can use:
1. Domain service account
2. Shared local service account
3. Host-specific local service account
Local credential choices are host-specific overrides and must not
rewrite `group_vars/windows/main.yml` for every Windows machine.
## Domain account creation
AIM can create/repair the domain service identity and add it to the
appropriate built-in Administrators context used by the current design.
It does not make the account a Domain Admin.
Administrative bootstrap credentials should only be requested where
genuinely required.
## Member-server access
AIM can grant the existing domain service identity local Administrators
membership on selected member servers. Domain Controllers are
rejected/skipped for this workflow.
## Domain WinRM GPO rollout
The rollout uses one prepared, already-manageable Domain Controller as
its administration point.
The managed objects are:
``` text
AD group: GG_bitformer_Ansible_Admins
GPO: bitformer - Ansible WinRM
Task: bitformer - Configure Ansible WinRM
```
The GPO configures the local Administrators membership, deploys the
WinRM setup payload/scheduled task, configures HTTPS WinRM and firewall
access, and verifies the resulting state.
### Multiple target OUs
A single GPO should be linked to multiple selected OUs rather than
creating a separate GPO for Servers, Clients, etc.
Example:
``` text
bitformer - Ansible WinRM
├── OU=Servers,DC=intra,DC=company,DC=de
└── OU=Clients,DC=intra,DC=company,DC=de
```
The OU selector should therefore support multi-selection.
GPO link management is **additive and idempotent**:
- Selected OU already linked: keep/repair as appropriate.
- Selected OU not linked: create the link.
- Unselected OU: do nothing.
Selecting only `Servers` on a later run must **not** imply that an
existing `Clients` link should be removed.
Link removal should be an explicit operation if/when AIM implements it.
### Child OUs
AIM links the GPO to the selected OU. It should not create redundant
links on every descendant OU merely to emulate inheritance. Normal Group
Policy inheritance handles descendants unless AD policy configuration
changes that behavior.
### Domain Controllers
The Domain Controllers OU must remain unavailable/rejected for the
normal member-machine WinRM rollout.
## WinRM payload
The payload ensures WinRM is running, configures/reuses a suitable
certificate or creates a self-signed Server Authentication certificate,
creates the HTTPS listener, allows TCP/5986 and verifies the final
state.
The scheduled task runs immediately after registration and can retry
periodically. After successful verification it disables itself.
## Troubleshooting
Useful client-side checks include:
``` powershell
gpupdate /force
gpresult /h C:\Temp\gpresult.html
Get-Service WinRM
winrm enumerate winrm/config/listener
Get-ScheduledTask -TaskName "bitformer - Configure Ansible WinRM"
```
Also inspect Group Policy operational logs and Task Scheduler events
when Group Policy Preferences reports a task import failure.