87 lines
2.8 KiB
Markdown
87 lines
2.8 KiB
Markdown
# MANUAL TÉCNICO - AUTOMAÇÃO E RELATÓRIOS COM POWERSHELL
|
|
|
|
**Código:** ITGENG 0030/26 | **Classificação:** CONFIDENCIAL
|
|
**Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}}
|
|
|
|
## 1. HISTÓRICO DE REVISÃO
|
|
|
|
| Data | Versão | Descrição | Autor |
|
|
| :--- | :--- | :--- | :--- |
|
|
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |
|
|
|
|
## 2. OBJETIVO
|
|
Centralizar scripts de manutenção, relatórios de auditoria e operações em massa para administradores de sistemas. **Elimine o trabalho manual repetitivo.**
|
|
|
|
## 3. RELATÓRIOS DE AUDITORIA
|
|
|
|
### 1. Usuários Inativos (Stale Users)
|
|
Encontra usuários que não logam há mais de 90 dias.
|
|
```powershell
|
|
$Dias = 90
|
|
Search-ADAccount -AccountInactive -TimeSpan ([timespan]::$Dias.00:00:00) -UsersOnly |
|
|
Select-Object Name, SamAccountName, LastLogonDate, Enabled |
|
|
Export-Csv "C:\Relatorios\Inativos.csv" -NoTypeInformation
|
|
```
|
|
|
|
### 2. Senhas Prestes a Expirar
|
|
Avise os usuários antes do bloqueio.
|
|
```powershell
|
|
Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties msDS-UserPasswordExpiryTimeComputed |
|
|
Select-Object Name, @{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
|
|
```
|
|
|
|
### 3. Membros do Grupo Domain Admins (Segurança)
|
|
Verifique quem tem a chave do reino.
|
|
```powershell
|
|
Get-ADGroupMember "Domain Admins" | Select-Object Name, SamAccountName, ObjectClass
|
|
```
|
|
|
|
---
|
|
|
|
## 4. OPERAÇÕES EM MASSA (BULK)
|
|
|
|
### Criação de Usuários via CSV
|
|
Arquivo `novos.csv` deve ter colunas: `Nome,Login,Cargo`.
|
|
|
|
```powershell
|
|
Import-Csv "C:\Temp\novos.csv" | ForEach-Object {
|
|
New-ADUser -Name $_.Nome `
|
|
-SamAccountName $_.Login `
|
|
-UserPrincipalName "$($_.Login)@empresa.local" `
|
|
-Title $_.Cargo `
|
|
-Path "OU=Usuarios,DC=empresa,DC=local" `
|
|
-AccountPassword (ConvertTo-SecureString "Mudar@123" -AsPlainText -Force) `
|
|
-ChangePasswordAtLogon $true `
|
|
-Enabled $true
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 5. MANUTENÇÃO DE SERVIDOR
|
|
|
|
### Limpeza de Disco (Logs Antigos)
|
|
Script para rodar no Task Scheduler semanalmente.
|
|
```powershell
|
|
$Path = "C:\inetpub\logs\LogFiles"
|
|
$Daysback = "-30"
|
|
Get-ChildItem $Path -Recurse -Force | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays($Daysback) } | Remove-Item -Force
|
|
```
|
|
|
|
### Verificar Serviços Parados (Automático)
|
|
```powershell
|
|
$ServicosCriticos = "DNS","Dhcp","LanmanServer"
|
|
foreach ($S in $ServicosCriticos) {
|
|
if ((Get-Service $S).Status -ne "Running") {
|
|
# Aqui voce poderia enviar um e-mail ou tentar iniciar
|
|
Start-Service $S
|
|
Write-Warning "Serviço $S foi reiniciado."
|
|
}
|
|
}
|
|
```
|
|
|
|
## 6. VALIDAÇÃO FINAL
|
|
- [ ] Os scripts rodam sem erros vermelhos?
|
|
- [ ] O CSV de saída é gerado corretamente?
|
|
- [ ] A execução em massa criou os usuários na OU certa?
|