Active Directory — Informações do Domínio
DC
Get-ADDomainExibe informações completas do domínio ADGet-ADDomainController -Filter *Lista todos os Domain Controllers do domínioGet-ADForestInformações da floresta AD (sites, domínios, esquema)netdom query fsmoExibe todos os detentores de funções FSMOGet-ADDomainController -Discover -NextClosestSiteDescobre o DC mais próximo por siterepadmin /showreplStatus de replicação entre DCsrepadmin /replsummaryResumo de replicação AD (erros e sucessos)repadmin /syncall /AdePForça sincronização completa de todos os DCsdcdiag /test:replications /vDiagnóstico detalhado de replicação do DCdcdiag /s:DCNAME /vDiagnóstico completo de um DC específiconltest /dclist:DOMINIOLista DCs de um domínio específico via Netlogonnltest /sc_verify:DOMINIOVerifica o canal seguro do Netlogonw32tm /query /statusStatus de sincronização de tempo NTPw32tm /resync /forceForça ressincronização de tempo com servidor NTP
Group Policy (GPO)
DC
Get-GPO -AllLista todas as GPOs do domínioGet-GPO -Name "NomeGPO" | Get-GPOReport -ReportType HTML -Path C:\gpo.htmlExporta relatório HTML de uma GPO específicagpupdate /forceForça atualização de todas as GPOs imediatamentegpresult /rResultante de política aplicada ao usuário/máquina atualgpresult /h C:\gpo_report.html /fExporta RSoP completo em HTMLInvoke-GPUpdate -Computer "PC01" -ForceForça gpupdate remotamente em uma estaçãoGet-GPInheritance -Target "OU=Estacoes,DC=corp,DC=local"Exibe herança de GPO de uma OUNew-GPO -Name "Nova_GPO" | New-GPLink -Target "OU=TI,DC=corp,DC=local"Cria e vincula GPO a uma OUBackup-GPO -All -Path C:\GPO_BackupFaz backup de todas as GPOs do domínioRestore-GPO -Name "NomeGPO" -Path C:\GPO_BackupRestaura GPO a partir de backup
Serviços AD DS / SYSVOL / DNS
DC
Get-Service NTDS,NETLOGON,DNS,W32Time | Select Name,StatusStatus dos serviços críticos do DCRestart-Service NTDS -ForceReinicia o serviço AD DS (use com cuidado)net stop netlogon && net start netlogonReinicia Netlogon para liberar bloqueios de SYSVOLGet-ADReplicationFailure -Scope SiteExibe falhas de replicação por site ADGet-DnsServerZoneLista todas as zonas DNS do servidorGet-DnsServerResourceRecord -ZoneName "corp.local" -RRType ALista registros A de uma zona DNSAdd-DnsServerResourceRecordA -Name "server01" -ZoneName "corp.local" -IPv4Address "192.168.1.10"Adiciona registro A no DNSGet-SmbShareLista compartilhamentos SMB do servidorGet-SmbSessionSessões SMB ativas no servidor
Gerenciamento de Usuários AD
Usuários
Get-ADUser -Filter * -Properties * | Select Name,SamAccountName,Enabled,LastLogonDateLista todos usuários com último logonGet-ADUser -Identity "joao.silva" -Properties *Exibe todos os atributos de um usuárioNew-ADUser -Name "João Silva" -SamAccountName "joao.silva" -UserPrincipalName "joao.silva@corp.local" -Path "OU=TI,DC=corp,DC=local" -AccountPassword (Read-Host -AsSecureString) -Enabled $trueCria novo usuário AD interativamenteSet-ADAccountPassword -Identity "joao.silva" -Reset -NewPassword (ConvertTo-SecureString "Senha@123" -AsPlainText -Force)Redefine senha de usuárioUnlock-ADAccount -Identity "joao.silva"Desbloqueia conta de usuárioEnable-ADAccount -Identity "joao.silva"Habilita conta desativadaDisable-ADAccount -Identity "joao.silva"Desativa conta de usuárioRemove-ADUser -Identity "joao.silva" -Confirm:$falseRemove usuário AD sem confirmaçãoSet-ADUser -Identity "joao.silva" -Title "Analista TI" -Department "TI" -Office "SP"Atualiza atributos do usuárioMove-ADObject -Identity "CN=João Silva,OU=Usuarios,DC=corp,DC=local" -TargetPath "OU=TI,DC=corp,DC=local"Move objeto entre OUsGet-ADUser -Filter {PasswordNeverExpires -eq $true} | Select NameLista usuários com senha que nunca expiraSearch-ADAccount -LockedOut | Select Name,SamAccountName,LockedOutLista todas as contas bloqueadasSearch-ADAccount -AccountDisabled | Select NameLista contas desativadasSearch-ADAccount -PasswordExpired | Select NameLista contas com senha expirada
Grupos AD
Usuários
Get-ADGroup -Filter * | Select Name,GroupScope,GroupCategoryLista todos os grupos ADGet-ADGroupMember -Identity "GRP_TI" -Recursive | Select NameLista membros de um grupo (recursivo)Add-ADGroupMember -Identity "GRP_TI" -Members "joao.silva","maria.santos"Adiciona membros a um grupoRemove-ADGroupMember -Identity "GRP_TI" -Members "joao.silva" -Confirm:$falseRemove membro de grupo sem confirmaçãoGet-ADPrincipalGroupMembership -Identity "joao.silva" | Select NameGrupos que um usuário pertenceNew-ADGroup -Name "GRP_Financeiro" -GroupScope Global -GroupCategory Security -Path "OU=Grupos,DC=corp,DC=local"Cria novo grupo de segurançaGet-ADGroup -Filter {GroupScope -eq "DomainLocal"} | Select NameFiltra grupos por escopo
OUs e Estrutura AD
Usuários
Get-ADOrganizationalUnit -Filter * | Select Name,DistinguishedNameLista todas as OUs do domínioNew-ADOrganizationalUnit -Name "Estacoes" -Path "DC=corp,DC=local"Cria nova OU no caminho especificadoGet-ADComputer -Filter * -Properties * | Select Name,LastLogonDate,OperatingSystemLista computadores com SO e último logonGet-ADComputer -Filter {LastLogonDate -lt (Get-Date).AddDays(-90)} | Select NameComputadores sem logon há mais de 90 diasAdd-Computer -DomainName "corp.local" -RestartIngressa computador no domínioRemove-Computer -UnjoinDomainCredential (Get-Credential) -Restart -ForceRemove computador do domínioTest-ComputerSecureChannel -RepairVerifica e repara canal seguro com domínio
Sistema e Hardware
Admin
Get-ComputerInfoInformações completas do sistema (OS, hardware, domínio)systeminfoInformações detalhadas clássicas do sistemaGet-WmiObject Win32_OperatingSystem | Select Caption,Version,BuildNumber,LastBootUpTimeOS, versão, build e último boot(Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTimeUptime do sistema em formato legívelGet-WmiObject Win32_Processor | Select Name,NumberOfCores,MaxClockSpeedInformações de CPUGet-WmiObject Win32_PhysicalMemory | Measure-Object Capacity -Sum | Select @{N="TotalRAM_GB";E={$_.Sum/1GB}}Total de RAM instalada em GBGet-PSDrive -PSProvider FileSystemEspaço em disco de todas as partiçõesGet-DiskInformações de discos físicosGet-VolumeVolumes e uso de espaço em discoRestart-Computer -ForceReinicia imediatamente sem confirmaçãoStop-Computer -ForceDesliga o computador imediatamenteRestart-Computer -ComputerName "SERVER01" -ForceReinicia computador remoto
Serviços Windows
Admin
Get-Service | Where-Object {$_.Status -eq "Running"}Lista todos os serviços em execuçãoGet-Service | Where-Object {$_.Status -eq "Stopped" -and $_.StartType -eq "Automatic"}Serviços automáticos parados (alerta!)Start-Service -Name "Spooler"Inicia serviço pelo nomeStop-Service -Name "Spooler" -ForcePara serviço forçadamenteRestart-Service -Name "Spooler"Reinicia um serviçoSet-Service -Name "Spooler" -StartupType AutomaticDefine tipo de inicialização do serviçoGet-Service -ComputerName "SERVER01" | Select Name,StatusStatus de serviços em servidor remotosc.exe qc "NomeServico"Configuração detalhada de um serviço
Processos e Performance
Admin
Get-Process | Sort-Object CPU -Descending | Select -First 10Top 10 processos por CPUGet-Process | Sort-Object WorkingSet -Descending | Select -First 10Top 10 processos por uso de memóriaStop-Process -Name "notepad" -ForceEncerra processo pelo nomeStop-Process -Id 1234 -ForceEncerra processo pelo PIDGet-WmiObject Win32_PerfFormattedData_PerfOS_Processor | Select Name,PercentProcessorTimeUso de CPU por core em %Get-Counter '\Memory\Available MBytes'Memória disponível em tempo realGet-Counter '\PhysicalDisk(_Total)\% Disk Time'Uso de disco em percentualtasklist /svcLista processos com serviços hospedados (svchost)
Event Log e Auditoria
Admin
Get-EventLog -LogName System -EntryType Error -Newest 20Últimos 20 erros no log de SistemaGet-EventLog -LogName Application -EntryType Error -Newest 20Últimos 20 erros no log de AplicativoGet-WinEvent -FilterHashtable @{LogName='Security';Id=4625} -MaxEvents 50Event ID 4625 — falhas de logon (brute force)Get-WinEvent -FilterHashtable @{LogName='Security';Id=4648} -MaxEvents 20Event ID 4648 — logon com credenciais explícitasGet-WinEvent -FilterHashtable @{LogName='Security';Id=4740} -MaxEvents 20Event ID 4740 — conta de usuário bloqueadaGet-WinEvent -FilterHashtable @{LogName='Security';Id=4624;StartTime=(Get-Date).AddHours(-1)} -MaxEvents 100Logons bem-sucedidos na última horaClear-EventLog -LogName "Application","System"Limpa logs (use com cautela!)wevtutil qe System /c:50 /f:text /rd:trueQuery de eventos via wevtutil (50 mais recentes)
Windows Update e Software
Admin
Get-HotFix | Sort-Object InstalledOn -Descending | Select -First 15Últimos 15 updates/patches instaladosGet-HotFix -Id "KB5005033"Verifica se um KB específico está instaladoInstall-Module PSWindowsUpdate -Force; Get-WindowsUpdateInstala módulo e lista updates pendentesInstall-WindowsUpdate -AcceptAll -AutoRebootInstala todos os updates e reiniciaGet-WmiObject Win32_Product | Select Name,Version | Sort NameLista softwares instalados via MSIGet-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select DisplayName,DisplayVersionLista todos programas instalados (via registry)wusa /kb:5005033 /uninstall /quiet /norestartRemove update específico silenciosamente
Configuração de Rede
Rede
Get-NetIPAddressLista todos os endereços IP do sistemaGet-NetIPConfigurationConfiguração de rede completa por adapterGet-NetAdapter | Select Name,Status,LinkSpeed,MacAddressStatus de todos os adaptadores de redeNew-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.50 -PrefixLength 24 -DefaultGateway 192.168.1.1Define IP estático em um adaptadorSet-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 8.8.8.8,8.8.4.4Define servidores DNS do adaptadorRemove-NetIPAddress -InterfaceAlias "Ethernet" -Confirm:$false; Remove-NetRoute -InterfaceAlias "Ethernet" -Confirm:$falseRemove IP estático (prepara para DHCP)Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp EnabledHabilita DHCP no adaptadoripconfig /release; ipconfig /renewLibera e renova concessão DHCPipconfig /flushdnsLimpa cache DNS do clienteipconfig /displaydnsExibe o cache DNS atualGet-NetRouteTabela de roteamento do sistemaNew-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.1" -InterfaceAlias "Ethernet"Adiciona rota estática
Conectividade e Diagnóstico de Rede
Rede
Test-Connection -ComputerName "192.168.1.1" -Count 4Ping PowerShell nativoTest-NetConnection -ComputerName "google.com" -Port 443Testa conectividade TCP em porta específicaTest-NetConnection -ComputerName "SERVER01" -Port 3389 -InformationLevel DetailedVerifica se RDP está acessível no servidorResolve-DnsName -Name "corp.local" -Type ALLResolução DNS completa de um hostResolve-DnsName "server01.corp.local" -Server "192.168.1.10"Resolve DNS usando servidor específicotracert server01.corp.localTraceroute clássico para diagnóstico de rotaGet-NetTCPConnection -State Listen | Select LocalAddress,LocalPort,OwningProcessPortas TCP abertas em estado LISTENGet-NetTCPConnection -State Established | Select RemoteAddress,RemotePort,OwningProcessConexões TCP estabelecidas ativamentenetstat -ano | findstr :443Conexões na porta 443 com PIDarp -aTabela ARP — IPs e MACs resolvidos na LANnslookup -type=SRV _ldap._tcp.corp.localVerifica registros SRV do AD no DNS
Firewall Windows
Rede
Get-NetFirewallProfile | Select Name,EnabledStatus do firewall por perfil (Domain/Private/Public)Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled FalseDesativa firewall em todos os perfisGet-NetFirewallRule | Where-Object {$_.Enabled -eq "True" -and $_.Direction -eq "Inbound"}Regras de entrada ativasNew-NetFirewallRule -DisplayName "Allow RDP" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action AllowLibera porta RDP no firewallNew-NetFirewallRule -DisplayName "Block Port 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action BlockBloqueia porta 8080 inboundRemove-NetFirewallRule -DisplayName "Allow RDP"Remove regra de firewall pelo nomenetsh advfirewall export "C:\fw_backup.wfw"Exporta configuração completa do firewall
Diagnóstico de Sistema
Troubleshoot
sfc /scannowVerifica e repara arquivos de sistema corrompidosDISM /Online /Cleanup-Image /RestoreHealthRepara imagem do Windows via DISMDISM /Online /Cleanup-Image /CheckHealthVerifica integridade da imagem sem repararchkdsk C: /f /rVerifica e repara erros de disco (agendado)Get-WinEvent -LogName System | Where-Object {$_.LevelDisplayName -eq "Critical"} | Select -First 20Eventos críticos no log do sistemaGet-Reliability | Where-Object {$_.TimeGenerated -gt (Get-Date).AddDays(-7)}Monitor de confiabilidade últimos 7 diasmsinfo32Abre Informações do Sistema (GUI)Get-WmiObject Win32_StartupCommand | Select Name,Command,LocationProgramas de inicialização automáticaGet-ScheduledTask | Where-Object {$_.State -eq "Running"}Tarefas agendadas em execuçãoGet-ScheduledTask | Where-Object {$_.State -eq "Disabled"} | Enable-ScheduledTaskReabilita todas as tarefas desabilitadas
Acesso Remoto e WinRM
Troubleshoot
Enable-PSRemoting -ForceHabilita PowerShell Remoting (WinRM) no hostTest-WSMan -ComputerName "SERVER01"Testa se WinRM está acessível no host remotoEnter-PSSession -ComputerName "SERVER01" -Credential (Get-Credential)Abre sessão PS interativa no servidor remotoInvoke-Command -ComputerName "SERVER01","SERVER02" -ScriptBlock {Get-Service}Executa comando em múltiplos servidores$s = New-PSSession -ComputerName "SERVER01"; Invoke-Command -Session $s -ScriptBlock {hostname}Cria sessão persistente para múltiplos comandoswinrm quickconfigConfigura WinRM rapidamente via cmdSet-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -ForceDefine hosts confiáveis para WinRM (use com cuidado)
Arquivos, Pastas e Permissões
Troubleshoot
Get-Acl "C:\Pasta" | Format-ListExibe ACL (permissões) de um diretórioicacls "C:\Pasta" /grant "CORP\joao.silva:(OI)(CI)F"Concede controle total (recursivo) a usuárioicacls "C:\Pasta" /remove "CORP\joao.silva" /tRemove permissões de usuário recursivamenteicacls "C:\Pasta" /reset /t /cRestaura herança de permissões (reset)Get-ChildItem -Path "C:\Pasta" -Recurse -Force | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-1)}Arquivos modificados nas últimas 24hGet-ChildItem -Path "C:\" -Recurse -Include "*.log" -Force -ErrorAction SilentlyContinue | Sort-Object Length -Descending | Select -First 10Top 10 maiores arquivos .logCompress-Archive -Path "C:\Pasta" -DestinationPath "C:\backup.zip"Compacta pasta em arquivo ZIPExpand-Archive -Path "C:\backup.zip" -DestinationPath "C:\Destino"Extrai arquivo ZIP
Impressão e Spooler
Troubleshoot
Get-Printer | Select Name,PrinterStatus,JobCountLista impressoras e statusGet-PrintJob -PrinterName "HP LaserJet"Lista fila de impressão de uma impressoraRemove-PrintJob -PrinterName "HP LaserJet" -ID 1Remove job específico da filaStop-Service Spooler -Force; Remove-Item "C:\Windows\System32\spool\PRINTERS\*" -Force; Start-Service SpoolerLimpa fila de impressão travadaAdd-Printer -Name "Impressora1" -DriverName "HP Universal Printing PCL 6" -PortName "IP_192.168.1.100"Adiciona impressora ao servidor de impressãoRemove-Printer -Name "Impressora1"Remove impressora do sistema
Auditoria e Política de Senhas
Segurança
Get-ADDefaultDomainPasswordPolicyPolítica de senha padrão do domínioGet-ADFineGrainedPasswordPolicy -Filter *Políticas de senha detalhadas (PSO)Get-ADUserResultantPasswordPolicy -Identity "joao.silva"Política de senha resultante de um usuárioauditpol /get /category:*Exibe toda a política de auditoria configuradaauditpol /set /subcategory:"Logon" /success:enable /failure:enableHabilita auditoria de logon (sucesso e falha)Get-LocalUser | Select Name,Enabled,LastLogon,PasswordExpiresUsuários locais com status detalhadoGet-LocalGroupMember -Group "Administrators"Membros do grupo local Administradoresnet accountsPolítica de contas (lockout, senha, duração)
Certificados e Criptografia
Segurança
Get-ChildItem -Path Cert:\LocalMachine\My | Select Subject,Thumbprint,NotAfterCertificados da máquina local com validadeGet-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.NotAfter -lt (Get-Date).AddDays(30)}Certificados expirando em menos de 30 diasGet-ChildItem -Path Cert:\ -Recurse | Where-Object {$_.NotAfter -lt (Get-Date)}Todos os certificados já expiradosExport-Certificate -Cert (Get-Item Cert:\LocalMachine\My\THUMBPRINT) -FilePath "C:\cert.cer"Exporta certificado público (.cer)Import-Certificate -FilePath "C:\cert.cer" -CertStoreLocation Cert:\LocalMachine\RootImporta certificado para Trusted RootNew-SelfSignedCertificate -DnsName "server01.corp.local" -CertStoreLocation Cert:\LocalMachine\MyCria certificado autoassinado
BitLocker e Criptografia de Disco
Segurança
Get-BitLockerVolumeStatus do BitLocker em todos os volumesEnable-BitLocker -MountPoint "C:" -EncryptionMethod Aes256 -UsedSpaceOnly -RecoveryPasswordProtectorHabilita BitLocker no volume C: com senha de recuperaçãoDisable-BitLocker -MountPoint "C:"Desabilita BitLocker no volume C:Get-BitLockerVolume -MountPoint "C:" | Select -ExpandProperty KeyProtectorExibe recovery keys do BitLockerBackup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId (Get-BitLockerVolume C:).KeyProtector[1].KeyProtectorIdFaz backup da recovery key para o ADmanage-bde -status C:Status detalhado do BitLocker via manage-bde
Execução Remota e Sessões
Segurança
query session /server:SERVER01Lista sessões RDP ativas no servidorlogoff 2 /server:SERVER01Encerra sessão RDP pelo ID de sessãoGet-WmiObject Win32_LoggedOnUserUsuários com sessão ativa no sistemaquserLista usuários logados com sessão e idle timeqwinsta /server:SERVER01Status das sessões RDS/Terminal ServerGet-WinEvent -LogName Security | Where-Object {$_.Id -eq 4634} | Select -First 10Event 4634 — Logoffs registrados na segurança
Módulos e Gerenciamento PS
Admin
Get-Module -ListAvailable | Select Name,VersionLista todos os módulos PS disponíveisImport-Module ActiveDirectoryImporta módulo do Active DirectoryInstall-Module -Name Az -Force -AllowClobberInstala módulo Azure PowerShellUpdate-Module -Name AzAtualiza módulo Az para versão mais recenteGet-ExecutionPolicy -ListExibe política de execução por escopoSet-ExecutionPolicy RemoteSigned -Scope CurrentUserDefine policy RemoteSigned para usuário atual$PSVersionTableVersão do PowerShell e .NET instaladosGet-Command -Module ActiveDirectory | Measure-ObjectConta quantos comandos um módulo expõe
Registro do Windows
Admin
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"Versão e build do Windows no registroGet-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"Configurações TCP/IP no registroNew-ItemProperty -Path "HKLM:\Software\MinhaApp" -Name "Configuracao" -Value "1" -PropertyType DWORDCria chave DWORD no registroSet-ItemProperty -Path "HKLM:\Software\MinhaApp" -Name "Configuracao" -Value "2"Altera valor de chave existenteRemove-ItemProperty -Path "HKLM:\Software\MinhaApp" -Name "Configuracao"Remove chave do registroreg export HKLM\SOFTWARE\MinhaApp C:\backup_reg.regExporta chave de registro para arquivo .regreg import C:\backup_reg.regImporta chave de registro de arquivo .reg
Automação e Script Úteis
Admin
1..10 | ForEach-Object { Test-Connection "192.168.1.$_" -Count 1 -Quiet }Ping em faixa de IPs 192.168.1.1-10Get-ADUser -Filter * | Export-Csv "C:\users.csv" -NoTypeInformation -Encoding UTF8Exporta todos os usuários AD para CSVImport-Csv "C:\novos_usuarios.csv" | ForEach-Object { New-ADUser -Name $_.Nome -SamAccountName $_.Login -Enabled $true }Cria usuários em lote via CSVGet-ChildItem "C:\Logs" -Recurse -Filter "*.log" | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item -ForceRemove logs com mais de 30 dias$servidores = "SRV01","SRV02","SRV03"; $servidores | ForEach-Object { Invoke-Command -ComputerName $_ -ScriptBlock {Get-Disk} }Executa comando em lista de servidoresSend-MailMessage -To "admin@corp.local" -From "monitor@corp.local" -Subject "Alerta" -Body "Servidor offline!" -SmtpServer "mail.corp.local"Envia e-mail de alerta via PowerShellRegister-ScheduledTask -TaskName "BackupDiario" -Trigger (New-ScheduledTaskTrigger -Daily -At "02:00") -Action (New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\backup.ps1")Cria tarefa agendada diária
DHCP e DNS Server
Rede
Get-DhcpServerv4ScopeLista escopos DHCP IPv4 configuradosGet-DhcpServerv4Lease -ScopeId 192.168.1.0Lista concessões ativas em um escopoGet-DhcpServerv4StatisticsEstatísticas do servidor DHCPAdd-DhcpServerv4Reservation -ScopeId 192.168.1.0 -IPAddress 192.168.1.50 -ClientId "AA-BB-CC-DD-EE-FF" -Name "Server01"Cria reserva DHCP por MAC addressGet-DhcpServerv4ExclusionRange -ScopeId 192.168.1.0Lista faixas excluídas do escopo DHCPBackup-DhcpServer -Path "C:\DHCP_Backup"Faz backup completo da configuração DHCPClear-DnsServerCacheLimpa o cache do servidor DNSGet-DnsServerStatisticsEstatísticas do servidor DNS (queries, respostas)
Sessões e Usuários Logados (Local)
Usuário Comum
whoamiExibe o usuário atual logadowhoami /allUsuário atual + grupos + privilégios + SID completowhoami /groupsTodos os grupos do usuário atualwhoami /privPrivilégios do token atual (ex: SeShutdownPrivilege)quserUsuários com sessão ativa, tipo e idle timequery sessionTodas as sessões abertas (console e RDP)Get-WmiObject Win32_LoggedOnUser | Select Antecedent | ForEach-Object { $_.Antecedent -match '"(.+)","(.+)"' | Out-Null; "$($Matches[1])\$($Matches[2])" } | Sort -UniqueLista usuários com sessão ativa (via WMI)net user $env:USERNAMEDetalhes da conta local: último logon, expiração, gruposGet-LocalUser | Select Name,Enabled,LastLogon,PasswordLastSet | Sort LastLogon -DescendingUsuários locais ordenados por último logonGet-WinEvent -FilterHashtable @{LogName='Security';Id=4624} -MaxEvents 20 | Select TimeCreated,@{N="User";E={$_.Properties[5].Value}},@{N="LogonType";E={$_.Properties[8].Value}}Últimos 20 logons bem-sucedidos com tipo (Event 4624)Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625} -MaxEvents 20 | Select TimeCreated,@{N="User";E={$_.Properties[5].Value}},@{N="IP";E={$_.Properties[19].Value}}Últimas 20 tentativas de logon falhas com IP (Event 4625)Get-WinEvent -FilterHashtable @{LogName='Security';Id=4634} -MaxEvents 20 | Select TimeCreated,@{N="User";E={$_.Properties[1].Value}}Últimos 20 logoffs registrados (Event 4634)Get-WinEvent -FilterHashtable @{LogName='System';Id=7001,7002} -MaxEvents 30 | Select TimeCreated,Id,MessageEventos de logon/logoff no log do Sistema (IDs 7001/7002)
Listar e Navegar em Diretórios
Usuário Comum
Get-ChildItemLista arquivos e pastas do diretório atual (ls / dir)Get-ChildItem -ForceLista incluindo arquivos ocultos e do sistemaGet-LocationExibe o diretório atual (pwd)Set-Location "C:\Windows\System32"Navega para o diretório especificado (cd)New-Item -ItemType Directory -Name "NovaPasta"Cria nova pasta no diretório atualRemove-Item "C:\Temp\*" -Recurse -ForceRemove todo o conteúdo de uma pastatree C:\Pasta /FEstrutura em árvore visual com arquivosGet-ChildItem -Path "C:\Pasta" -Recurse -File | Select FullName,Length,LastWriteTimeLista recursiva com tamanho e data de modificaçãoGet-ChildItem -Path "C:\" -Recurse -Filter "*.pdf" -ErrorAction SilentlyContinueBusca todos os arquivos .pdf recursivamenteGet-ChildItem -Path "C:\Pasta" | Sort-Object Length -Descending | Select -First 10 Name,@{N="MB";E={[math]::Round($_.Length/1MB,2)}}Top 10 maiores arquivos em MBGet-ChildItem -Path "C:\Pasta" -Recurse | Measure-Object -Property Length -Sum | Select @{N="TotalGB";E={[math]::Round($_.Sum/1GB,3)}}Tamanho total de uma pasta em GBGet-ChildItem -Path "C:\Pasta" | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-7)}Arquivos modificados nos últimos 7 diasGet-ChildItem -Path "C:\Pasta" -Recurse | Where-Object {!$_.PSIsContainer} | Group-Object Extension | Sort Count -DescendingConta arquivos por extensão em uma pasta
Copiar, Mover e Backup de Arquivos
Usuário Comum
Copy-Item -Path "C:\Origem\arquivo.txt" -Destination "D:\Destino\"Copia arquivo para outro localCopy-Item -Path "C:\Origem" -Destination "D:\Destino" -RecurseCopia pasta inteira recursivamenteCopy-Item -Path "C:\Origem\*" -Destination "D:\Destino\" -Recurse -ForceCopia conteúdo da pasta forçando sobrescritaMove-Item -Path "C:\Arquivo.txt" -Destination "D:\Backup\Arquivo.txt"Move arquivo para outro local (recortar e colar)Rename-Item -Path "C:\arquivo_antigo.txt" -NewName "arquivo_novo.txt"Renomeia arquivo ou pastaCompress-Archive -Path "C:\Pasta" -DestinationPath "C:\backup_$(Get-Date -f 'yyyyMMdd').zip"Backup compactado com data automática no nomeCompress-Archive -Path "C:\Pasta\*" -DestinationPath "C:\backup.zip" -UpdateAtualiza ZIP existente com arquivos novos/modificadosExpand-Archive -Path "C:\backup.zip" -DestinationPath "C:\Restaurado" -ForceExtrai ZIP para pasta de destinorobocopy C:\Origem D:\Backup /MIR /LOG:C:\robocopy.logEspelho completo de pasta com log (ideal para backups)robocopy C:\Origem D:\Backup /MIR /XA:H /XF "*.tmp" "*.log"Espelho excluindo arquivos ocultos, .tmp e .logrobocopy C:\Origem D:\Backup /E /COPYALL /DCOPY:DA /LOG+:C:\log.txtRobocopy preservando permissões NTFS e timestampsGet-ChildItem "C:\Docs\*.docx" | Copy-Item -Destination "D:\Backup_Docs\"Copia seletiva — apenas arquivos .docx de uma pasta
Permissões de Arquivos e Pastas (ACL)
Usuário Comum
Get-Acl "C:\Pasta" | Format-ListExibe todas as ACLs (permissões) de um itemGet-Acl "C:\Pasta" | Select -ExpandProperty Access | Format-Table IdentityReference,FileSystemRights,AccessControlType -AutoSizePermissões em formato de tabela legívelicacls "C:\Pasta" /grant "CORP\joao.silva:(OI)(CI)F"Concede Controle Total recursivo (F = Full Control)icacls "C:\Pasta" /grant "CORP\joao.silva:(OI)(CI)M"Concede permissão de Modificar recursivamenteicacls "C:\Pasta" /grant "CORP\joao.silva:(OI)(CI)R"Concede somente leitura recursiva (R = Read)icacls "C:\Pasta" /deny "BUILTIN\Users:(OI)(CI)W"Nega escrita explicitamente para todos os usuáriosicacls "C:\Pasta" /remove "CORP\joao.silva" /t /cRemove todas as entradas do usuário recursivamenteicacls "C:\Pasta" /reset /t /c /qRestaura herança padrão em toda a arvore (reset ACL)icacls "C:\Pasta" /inheritance:dDesabilita herança (mantém permissões existentes)icacls "C:\Pasta" /inheritance:eReabilita herança de permissões do paiicacls "C:\Pasta" /save "C:\acl_backup.txt" /tExporta ACLs para arquivo (backup de permissões)icacls "C:\Pasta" /restore "C:\acl_backup.txt"Restaura ACLs a partir do arquivo de backuptakeown /f "C:\Pasta" /r /d yAssume propriedade (ownership) da pasta recursivamente
Verificar Hash de Arquivos
Usuário Comum
Get-FileHash "C:\arquivo.iso" -Algorithm SHA256Calcula hash SHA-256 (padrao — mais usado para verificacao)Get-FileHash "C:\arquivo.exe" -Algorithm MD5Calcula hash MD5 (compatibilidade legada)Get-FileHash "C:\arquivo.exe" -Algorithm SHA1Calcula hash SHA-1Get-FileHash "C:\arquivo.exe" -Algorithm SHA512Calcula hash SHA-512 (maxima seguranca)(Get-FileHash "C:\arquivo.iso" -Algorithm SHA256).HashExibe apenas o valor do hash (sem metadados)$h = (Get-FileHash "C:\arquivo.iso").Hash; if ($h -eq "COLE_HASH_AQUI") {"OK"} else {"DIVERGE"}Compara hash calculado com valor esperado do fornecedorGet-ChildItem "C:\Pasta\*.exe" | Get-FileHash | Export-Csv "C:\hashes.csv" -NoTypeInformationGera CSV com hash de todos os .exe de uma pastacertutil -hashfile "C:\arquivo.iso" SHA256Hash via certutil — funciona no cmd.exe puro sem PowerShell
Ler, Escrever e Manipular Arquivos de Texto
Usuário Comum
Get-Content "C:\arquivo.txt"Le e exibe conteudo de um arquivo de textoGet-Content "C:\arquivo.log" -Tail 50Ultimas 50 linhas do arquivo (equivalente ao tail)Get-Content "C:\arquivo.log" -WaitMonitora arquivo em tempo real (equivalente ao tail -f)Get-Content "C:\arquivo.txt" | Select-String "erro"Busca linhas contendo "erro" (equivalente ao grep)Set-Content "C:\saida.txt" -Value "Conteudo inicial"Cria ou sobrescreve arquivo com conteudoAdd-Content "C:\log.txt" -Value "$(Get-Date) - Evento registrado"Acrescenta linha ao final do arquivo (append)(Get-Content "C:\arquivo.txt") -replace "antigo","novo" | Set-Content "C:\arquivo.txt"Substitui texto dentro de arquivo (find and replace)Get-Content "C:\dados.csv" | ConvertFrom-Csv | Format-Table -AutoSizeLe e formata CSV como tabela no terminalGet-ChildItem "C:\Logs\*.log" | Select-String "ERROR" | Select Filename,LineNumber,LineBusca "ERROR" em todos os .log de uma pasta
Wi-Fi — Redes e Perfis Salvos
Wi-Fi
netsh wlan show interfacesStatus do Wi-Fi: SSID conectado, sinal, BSSID, velocidadenetsh wlan show profilesLista todos os perfis Wi-Fi salvos no sistemanetsh wlan show profile name="MinhaRede" key=clearExibe detalhes do perfil incluindo senha em texto claronetsh wlan show networks mode=bssidVarre e lista redes Wi-Fi visiveis com BSSID, canal e sinalnetsh wlan connect name="MinhaRede"Conecta a um perfil Wi-Fi salvo pelo nomenetsh wlan disconnectDesconecta do Wi-Fi atualnetsh wlan delete profile name="MinhaRede"Remove perfil Wi-Fi salvo do sistemanetsh wlan export profile name="MinhaRede" folder="C:\WiFiBackup"Exporta perfil Wi-Fi para XML (backup / migracao)netsh wlan add profile filename="C:\WiFiBackup\MinhaRede.xml"Importa perfil Wi-Fi de arquivo XMLGet-NetAdapter | Where-Object {$_.Name -like "*Wi-Fi*"} | Select Name,Status,LinkSpeed,MacAddressStatus do adaptador Wi-Fi via PowerShellnetsh wlan show driversDriver do adaptador: versao, fabricante, tipos suportados
Wi-Fi — Diagnostico e Performance
Wi-Fi
netsh wlan show wlanreportGera relatorio HTML de historico Wi-Fi (salvo em C:\ProgramData\Microsoft\Windows\WlanReport\)netsh wlan show statisticsEstatisticas de pacotes TX/RX, erros e drops do adaptadorGet-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-WLAN-AutoConfig/Operational'} -MaxEvents 30 | Select TimeCreated,Id,MessageLog de eventos Wi-Fi: conexoes, desconexoes e falhasnetsh int tcp show globalConfiguracoes TCP globais (RSS, chimney, ECN, autotuning)netsh int tcp set global autotuninglevel=normalRedefine TCP autotuning para normal (fix de lentidao de rede)netsh winsock resetReset do Winsock — resolve problemas de conectividade (requer reboot)netsh int ip reset C:\resetlog.txtReset da pilha TCP/IP completa (requer reboot)Get-NetAdapterStatistics -Name "Wi-Fi" | Select ReceivedBytes,SentBytes,ReceivedUnicastPackets,SentUnicastPacketsEstatisticas de trafego TX/RX do adaptador Wi-FiTest-NetConnection -ComputerName "8.8.8.8" -InformationLevel DetailedTeste de conectividade com detalhes de rota e latenciaGet-NetAdapterPowerManagement -Name "Wi-Fi" | Select AllowComputerToTurnOffDeviceVerifica se Windows pode desligar Wi-Fi por economia de energiaSet-NetAdapterPowerManagement -Name "Wi-Fi" -AllowComputerToTurnOffDevice DisabledDesativa economia de energia no Wi-Fi (fix de quedas aleatorias)
Wi-Fi — Hotspot e Configuracoes Avancadas
Wi-Fi
netsh wlan set hostednetwork mode=allow ssid="MeuHotspot" key="Senha123"Configura hotspot Wi-Fi pelo modo hosted networknetsh wlan start hostednetworkInicia o hotspot configuradonetsh wlan stop hostednetworkPara o hotspotnetsh wlan show hostednetworkStatus e clientes conectados ao hotspotGet-NetAdapter | Where-Object {$_.InterfaceDescription -like "*Wireless*"} | Disable-NetAdapter -Confirm:$falseDesativa adaptador Wi-Fi via PowerShellGet-NetAdapter | Where-Object {$_.InterfaceDescription -like "*Wireless*"} | Enable-NetAdapter -Confirm:$falseReativa adaptador Wi-Fi via PowerShellnetsh wlan set profileorder name="MinhaRede" interface="Wi-Fi" priority=1Define prioridade de conexao automatica do perfil Wi-Finetsh wlan set profileparameter name="MinhaRede" connectionmode=autoHabilita conexao automatica ao perfil quando disponivelnetsh wlan set profileparameter name="MinhaRede" connectionmode=manualDesabilita conexao automatica (somente manual)
Nenhum comando encontrado para