> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/product-docs/integracoes/windows/automacao.md).

# Automação

Requisitos para automação no DataDike PAM: como habilitar WinRM e OpenSSH nos ativos Windows e Linux para rotação de senhas e execução remota de comandos.

Necessário WINRM ou OpenSSH

## WinRM

Para **habilitar o WinRM (Windows Remote Management)** no Windows, siga um dos métodos abaixo — dependendo se você quer fazer isso via **linha de comando (PowerShell ou CMD)** ou via **interface gráfica**.

***

#### **Método 1 — via PowerShell**

Execute o PowerShell **como Administrador** e rode:

```powershell
Enable-PSRemoting -Force
```

Isso faz:

* Habilita o serviço **WinRM**.
* Cria uma **regra no Firewall** para permitir conexões remotas.
* Configura o listener HTTP padrão (`http://+:5985`).

***

#### **Método 2 — via CMD**

Abra o **Prompt de Comando (Administrador)** e execute:

```cmd
winrm quickconfig
```

Se o serviço estiver desativado, ele perguntará:

> WinRM is not set up to receive requests. Do you want to set it up?

Responda `y` e depois `y` novamente se ele perguntar sobre o firewall.

Isso:

* Inicia o serviço WinRM.
* Configura o listener HTTP padrão.
* Ajusta regras de firewall.

***

#### **Verificar status do WinRM**

```powershell
winrm enumerate winrm/config/listener
```

ou

```powershell
Get-Service WinRM
```

O status deve estar como:

```
Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Management)
```

***

#### **Habilitar acesso remoto de hosts específicos**

Se quiser permitir conexões de uma máquina específica:

```powershell
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "NOME_DO_HOST"
```

Ou permitir todos (menos seguro):

```powershell
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*"
```

***

#### **Firewall**

Certifique-se de que a porta **5985 (HTTP)** ou **5986 (HTTPS)** está liberada:

```powershell
netsh advfirewall firewall add rule name="WinRM" dir=in action=allow protocol=TCP localport=5985
```

***

Se quiser, posso te passar também o **comando Ansible** ou **Group Policy (GPO)** para habilitar WinRM automaticamente em várias máquinas.\
Quer que eu te mostre isso também?

***

## OpenSSH

<div align="left"><figure><img src="https://2253944601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFTstDFQSgSb2pWuuew1q%2Fuploads%2Fgit-blob-dd2953c2be176a9668f6cb260e288b668bb4521e%2FCaptura%20de%20Tela%202025-09-25%20a%CC%80s%2023.19.37.png?alt=media" alt="" width="563"><figcaption></figcaption></figure></div>

Powershell:

{% code overflow="wrap" %}

```
# Instalar OpenSSH Server
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Add-WindowsCapability –Online

# Iniciar e configurar o serviço para automático
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

# Resolver o IP atual do cliente.datadike.com (coloque o seu endereço)!
$RemoteHost = "cliente.datadike.com"
$RemoteIP = (Resolve-DnsName $RemoteHost -Type A | Select-Object -First 1 -ExpandProperty IPAddress)

Write-Host "IP resolvido para $RemoteHost: $RemoteIP"

# Criar regra de firewall restrita para o IP resolvido
New-NetFirewallRule -Name "sshd-$RemoteHost" `
    -DisplayName "OpenSSH Server (sshd) - $RemoteHost" `
    -Enabled True `
    -Direction Inbound `
    -Protocol TCP `
    -Action Allow `
    -LocalPort 22 `
    -RemoteAddress $RemoteIP

```

{% endcode %}

DISM:

```
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
```
