-
Notifications
You must be signed in to change notification settings - Fork 2
/
Script de implantação de conta de serviço gerenciado de grupo (gMSA).ps1
162 lines (64 loc) · 6.01 KB
/
Script de implantação de conta de serviço gerenciado de grupo (gMSA).ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
## Script de implantação de conta de serviço gerenciado de grupo (gMSA) - Créditos Gabriel Luiz - www.gabrielluiz.com ##
# Passo 1 - Crie sua chave raiz KDS.
# Antes de criar a chave KDS raiz, verfique se ela já foi criada como o comando abaixo:
Get-KdsRootKey
# Antes de criar uma gMSA, você precisa criar a chave KDS raiz. Esse passo é exigido apenas uma vez por domínio. Use o comando a seguir:
Add-KDSRootKey -EffectiveImmediately
# Observação: Mesmo você tendo especificado que a chave raiz deve entrar em vigor imediata mente, na verdade, ela demora 10 horas para se tornar efetiva, o que garante sua total implantação em todos os controladores do domínio.
# Dica. Para usar a chave imediatamente no ambiente de teste, você pode executar este comando:
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))
# Passo 2 - Crie uma GMSA e vincule-o a dois (ou mais) servidores Windows.
$server1 = Get-ADComputer ADDS
$server2 = Get-ADComputer DHCP-RAS
New-ADServiceAccount -name gmsa-conta -DNSHostName gmsa-conta.gabrielluiz.local -PrincipalsAllowedToRetrieveManagedPassword $server1,$server2
# Verifique se a conta de serviço gerenciado de grupo (gMSA) foi criada como o comando abaixo:
Get-ADServiceAccount -Identity gmsa-conta -Properties PrincipalsAllowedToRetrieveManagedPassword
# Passo 3 ( Opcional) - Adicionar ou remover computadores ao gMSA.
$server1 = Get-ADComputer ADDS
$server2 = Get-ADComputer DHCP-RAS
$server3 = Get-ADComputer ADDS2
Set-ADServiceAccount -Identity gmsa-conta-agendador -PrincipalsAllowedToRetrieveManagedPassword $server1,$server2,$server3
# Observação: No meu teste eu descobri que você não pode realmente adicionar ou remover computadores individuais ao gMSA sem inserir todos os computadores de volta na lista de membros.
# Passo 4 - Instalar a conta de serviço.
# Instala o RSAT-AD-Powershell.
Add-WindowsFeature RSAT-AD-PowerShell
# Instala a conta de serviço gerenciado de grupo (gMSA) no servidor.
Install-ADServiceAccount -Identity gmsa-conta
# Testa se a conta de serviço gerenciado de grupo (gMSA) foi instalada corretamente no servidor.
Test-ADServiceAccount gmsa-conta
<#
Observações:
Em servidores que não possui a função de ADDS instalado, exemplo, como um servidor que somente possui a função de DHCP instalado, necessário instalar o RSAT-AD-Powershell para execução do comando.
Ao executar o comando Test-ADServiceAccount o valor true significa que este servidor agora pode usar o gMSA. Se o valor for false, significa que ou o Servidor windows não foi adicionado à lista 'Principals' (usando 'New-ADServiceAccount' ou 'Set-ADServiceAccount') ou o comando 'Install-ADServiceAccount' não foi executado corretamente.
#>
# Passo 5 - Faça logon como um trabalho em lotes (Log on as a batch job).
<#
Observação:
Esta passo será demostrado em vídeo, pois se trata de uma configuração que deve ser feito por GPO para permitir que a conta de serviço gerenciado de grupo (gMSA) execute a tarefa no Agendador de Tarefas do Windows.
#>
# Passo 6 - Crie a tarefa no Agendador de Tarefas do Windows para ser executado com uma conta de serviço gerenciado de grupo (gMSA).
$action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-ExecutionPolicy Bypass C:\Tasks\cria-pastas-e-arquivos.ps1"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 2)
$principal = New-ScheduledTaskPrincipal -UserID gabrielluiz\gmsa-conta$ -LogonType Password -RunLevel highest
Register-ScheduledTask "Cria pasta e arquivos" –Action $action –Trigger $trigger –Principal $principal -Description "Tarefa de criação de pastas e arquivos."
# Passo 7 - Alterar a senha da conta de serviço gerenciado de grupo (gMSA).
# Forçar a conta de serviço gerenciado de grupo (gMSA) a alterar a senha:
Reset-ADServiceAccountPassword gmsa-conta
# Você pode então verificar a data da hora da última senha definida executando o comando:
Get-ADServiceAccount -Identity gmsa-conta -Properties passwordlastset
# Observação: O valor (data da hora da última senha definida) estará ao lado do campo 'PasswordLastSet':
# Você também pode verificar se o GMSA está fazendo login corretamente no servidor verificando o 'Último valor de login':
Get-ADServiceAccount -Identity gmsa-conta -Properties LastLogonDate
# Observação: Depois de forçar uma redefinição de senha da conta de serviço gerenciado de grupo (gMSA), eu iniciaria uma execução da tarefa no Agendador de Tarefas do Windows para garantir que não tem nenhuma falha de execução.
<#
Referências:
https://docs.microsoft.com/pt-br/windows-server/security/group-managed-service-accounts/getting-started-with-group-managed-service-accounts?WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/pt-br/windows-server/security/group-managed-service-accounts/group-managed-service-accounts-overview?WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/pt-br/previous-versions/windows/it-pro/windows-server-2008-r2-and-2008/ee617223(v=technet.10)?WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/en-us/powershell/module/activedirectory/new-adserviceaccount?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-adserviceaccount?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/en-us/powershell/module/activedirectory/install-adserviceaccount?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/en-us/powershell/module/activedirectory/test-adserviceaccount?view=windowsserver2022-ps&WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/pt-br/azure/active-directory/fundamentals/service-accounts-on-premises?WT.mc_id=WDIT-MVP-5003815
https://docs.microsoft.com/pt-br/windows/security/threat-protection/security-policy-settings/log-on-as-a-batch-job?WT.mc_id=WDIT-MVP-5003815
#>