4 Dicas para buscar informações no AD com PowerShell

PowerShell, Windows Server

Fala pessoal, tudo certo com vocês?

Hoje irei falar um pouco sobre PowerShell e GPO, e alguns comando que uso no meu dia a dia, que podem ajudar a vocês, a ter um processo mais automatizado para algumas coisas. Já vi pessoas por exemplo, entrando em usuário por usuário para verificar se a conta estava com a senha para nunca expirar, ou tirar um relatório de contas bloqueadas..

Hoje irei deixar 4 dicas, de comandos que você pode precisar usar, e vai economizar muito tempo do seu trabalho.

Eu particularmente, sempre gosto de usar o PowerShell ISE, para realizar algumas tarefas.

Vamos para 1ª dica, bem simples e que pode ajudar você a saber se seu ambiente está em compliance com suas diretivas na empresa.

Dica 1:

Como identificar via Powershell contas que estão marcadas para a senha nunca expirar? (Lembrando do meu post passado, isso não é uma boa pratica ter contas com senhas que nunca expiram…)

Com o PowerShell ISE ou Powershell, no seu AD, execute o seguinte comando:

Search-ADAccount -PasswordNeverExpires -UsersOnly

Esse comando retornara para você todos usuários que estão com a senha para nunca expirar, automatizando seu trabalho e trazendo esses dados em segundos rsrs.

Dica 2:

E como verificamos quais contas estão expiradas? Bem simples também, iremos mudar apenas 1 coisinha.

Search-ADAccount -AccountExpired  -UsersOnly

Esse comando retornara todas as contas expiradas, bem mais simples que procurar uma por uma né? rsrs

Dica 3:

E como verificar quais contas estão bloqueadas? O comando é praticamente o mesmo, mudando apenas um parâmetro

Search-ADAccount -LockedOut -UsersOnly

Esse comando retornara todas as contas bloqueadas, facilitando seu trabalho 😀

Dica 4:

Como verificar quais contas estão desabilitadas rsrs

Search-ADAccount -AccountInactive -UsersOnly

Com esse comando, iremos verificar todas as contas desabilitadas.

Além desses comandos, que coloquei de uma forma mais simples, existe diversos outros parâmetros que você pode usar, como por exemplo, exportar para um arquivo HTML, ou realizar alguns filtros para aparecer só o nome, dentre vários outros. Irei deixar a documentação da Microsoft, no qual irá mostrar com mais detalhes esses comandos.

Eu gosto de usar bastante o Format-Table nos comandos e em scripts, irei deixar também a documentação dele.

Search-ADAccount (Documentação)

https://docs.microsoft.com/en-us/powershell/module/activedirectory/search-adaccount?view=windowsserver2019-ps

Format-Table (Documentação)

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-table?view=powershell-7.1

Alterando atributos em massa no Active Directory com PowerShell

Microsoft, PowerShell

Alterando atributos no Active Directory com PowerShell

Fala pessoal, no post de hoje irei falar um pouco de como realizar alterações em massa no Active Directory usando o Powershell.

Antes de começar, vamos um falar brevemente o motivo que eu iria usar o Powershell para modificar campos no Active Directory. Imagina o seguinte cenário, uma filial da sua empresa que tem 100 contas de usuário mudou de endereço, e você precisar modificar o CEP nos usuários do AD, 1 ou 5 contas tudo bem, isso seria bem rápido via GUI, agora já imaginou 100, 1000 ou bem mais? Rsrs Aqui vou fazer uma demonstração bem básica, mas você pode ficar à vontade para incrementar e modificar de acordo com sua necessidade. Vamos começar?

1º Vamos abrir o PowerShell ISE como administrador.

Para realizar os próximos procedimentos você precisa do modulo do Active Directory instalado no seu computador, ou realizar o processo dentro de um servidor de AD.

Uma coisa que eu sempre faço é verificar os campos do objeto para verificar o que posso alterar. Para fazer isso eu uso o comando:

Get-ADuser usuário -propiertes *

Segue o exemplo:

Com isso, eu posso buscar o que eu desejo alterar e montar o meu código.

Com as propriedades em mão, vamos começar escrever nosso código.

Agora precisamos da OU no qual iremos realizar essa alteração dos usuários, você também poderia realizar apenas para 1 usuário, mas nesse exemplo irei fazer para todos os usuários de uma OU.

No meu ambiente irei escolher o departamento de Vendas de Recife, adicionar/alterar a propriedade Description.

Irei definir a seguinte informação “Usuário do departamento de Vendas da Unidade Recife”

Vou usar o seguinte código para verificar se o mesmo traz as informações dos usuários de Vendas:

Get-ADUser -Filter * -SearchBase "OU=Usuarios,OU=VENDAS,OU=Recife,DC=paulocostati,DC=com" | Format-Table name

Obs. Altere “OU=USUARIOS…” Para a OU que você deseja. Adicionei o Fomart-Table name no final para retornar apenas os nomes.

Agora iremos adicionar ao nosso código nossa alteração.

Get-ADUser -Filter * -SearchBase "OU=Usuarios,OU=VENDAS,OU=Recife,DC=paulocostati,DC=com" | Set-ADUser -Description "Usuário do departamento de Vendas da Unidade Recife”

Agora iremos verificar se as alterações foram realizadas, você pode olhar tanto por interface gráfica ou powershell.

Vamos continuar com o powershell… Digite o seguinte comando para verificar:

Get-ADUser -Filter * -SearchBase "OU=Usuarios,OU=VENDAS,OU=Recife,DC=paulocostati,DC=com" -Properties name,Description

Aqui verificamos que nossa alteração foi realizada com sucesso.

Aqui finalizo como alterar os campos em massa via PowerShell.

Como realizar download de imagem via Powershell

Microsoft, PowerShell

Recentemente, vi uma demanda na technet, onde um usuário informou que as imagens no qual ele usa como wallpaper via GPO, seria necessário realizar o download e troca do arquivo por uma URL.

Para isso, realizei um script em powershell para atender essa necessidade.

O script dividi em algumas partes, onde você pode alterar de acordo com sua necessidade. Ele pode ser usado para outros fins, não apenas para a troca do wallpaper.

Segue o script.



##Renomear o arquivo caso deseje
 com a data da modificação.                     
Rename-Item -path c:\imagem\wallpaper.jpg -NewName "wallpaper-old $(Get-Date -Format yyyy-MM-dd).jpg"
##Excluir o arquivo 
Remove-Item -Path C:\imagem\wallpaper.jpg -Force ##-force opcional


##Fazer Download
##Alterar variável $url
$url = "https://url.com/imagem.jpg"
$download = New-Object System.Net.WebClient
$download.DownloadFile($url, "C:\imagem\wallpaper.jpg")
Realizando o teste baixando a imagem
Imagem baixada.
Renomeando o arquivo com a data.
Arquivo renomeado.

Como verificar KBs instalados via PowerShell

Microsoft, PowerShell

Para realizarmos esse procedimento, iremos usar o powershell.

1º Abra o powershell

2º Use o seguinte comando:

Estou colocando | fl Description, HotFixID para trazer apenas essas informações. Você pode retirar essa parte caso queira mais informações.

Get-CimInstance -ClassName Win32_QuickFixEngineering | fl Description, HotFixID

Você também pode usar o codigo:

Get-Hotfix -id KBXXXXXXX

Para verificar um Hotfix especifico.

Verificar o último logon de usuário via PowerShell

Microsoft, PowerShell

Para verificar o ultimo logon ou outras propriedades de um usuário se conecte no Active Directory ou instale o modulo de Active Directory para powershell no seu computador.

1º Conecte no seu servidor Active Directory (AD)

2º Abra o Powershell, você pode buscar no menu iniciar ou abrir com tecla de Windows + R

Digite Powershell

3º No Powershell digite o seguinte codigo:

Get-ADUser -Identity usuario -Properties “LastLogonDate” | fl name, LastLogonDate

No lugar de usuário altere para o usuário que você deseja.

Você também pode retirar o | fl name, LastLogonDate para verificar mais propriedades.