Gerenciando Computadores no Active Directory com PowerShell – Comandos úteis

Sempre que faço alguma coisa em um Active Directory acabo usando comandos do PowerShell. Isso facilita muito a vida, principalmente quando preciso salvar os resultados e/ou comparar com alguma coisa.

Alguns comandos úteis que acabo usando:

Para Listar todos os computadores do Active Directory:

Get-ADComputer -Filter * | Select-Object -Property Name

Como algumas empresas usam algum padrão para nomes, podemos usar parte de nomes. Por exemplo, para encontrar todos os computadores que o nome começa por ESTRH:

Get-ADComputer -Filter ‘Name -like “ESTRH*”‘ | Select-Object -Property Name

Para listar os computadores pela ordem alfabética:

Get-ADComputer -Filter * | Select-Object -Property Name | Sort-Object -Property Name

Para listar os Computadores com Windows e seus Sistemas Operacionais, mostrando o resultado pela ordem dos nomes:

Get-ADComputer -Filter ‘OperatingSystem -like “*Windows*”‘ -Properties Name,Operatingsystem | Select-Object -Property Name,Operatingsystem | Sort-Object
-Property Name

Para listar os Computadores com Windows, o SO, versão do SO e se sem algum Service Pack, além do resultado ordenado pelo nome usamos:

Get-ADComputer -Filter ‘OperatingSystem -like “*Windows*”‘ -Properties Name, Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack
| Select-Object -Property Name, Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack | Sort-Object -Property Name

Para listar os Computadores criados na última semana, pela ordem de criação, usamos:

$date = [DateTime]::Today.AddDays(-7); Get-ADComputer -Filter ‘whenCreated -ge $date’ -Properties whenCreated, Name, Operatingsystem | Select-Object -Property Name, Operatingsystem, whenCreated | Sort-Object -Property whenCreated

Para alterar a data mude os dias no comando da variável $date.

Outro comando útil é ver quais computadores não logam no AD há algum tempo. Neste caso vamos usar 60 dias:

$date = [DateTime]::Today.AddDays(-60); Get-ADComputer -Filter ‘LastLogonDate -ge date’-Properties LastLogonDate, Name, Operatingsystem | Select-Object -Property Name, Operatingsystem, LastLogonDate | Sort-Object -Property LastLogonDate

Novamente, para alterar a data mude os dias no comando da variável $date.

Para listar todos os computadores que estão desabilitados e suas OUs, pode-se usar:

Get-ADComputer -Filter {(Enabled -eq $False)} | ft Name, DistinguishedName

Para desabilitar os computadores que não logam no AD há mais de 60 dias:

$date = [DateTime]::Today.AddDays(-60); Get-ADComputer -Filter ‘LastLogonDate -ge date’-Properties LastLogonDate, Name, DistinguishedName | Select-Object -Property DistinguishedName | Disable-ADAccount

Espero que algum desses comandos possa ser útil!!

Até a próxima!

Adicionando um Domain Controller com Windows Server 2012 em uma Floresta existente com PowerShell

Nesse post será mostrado adicionar um servidor com Windows Server 2012 como Domain Controller (DC) em uma Floresta já existente utilizando somente comandos em PowerShell e após fazer a transferência das regras FSMO.

O primeiro passo é logar em um DC e fazer pequenas verificações:
Para verificar informações sobre a floresta:
Get-adforest
Uma dica, para verificar os domínio em uma mesma floresta basta usar os seguintes comandos:
$forest = get-adforest
$forest.domains
Para verificar informações do domínio:
Get-Addomain

O segundo passo é logar no servidor com Windows Server 2012 e que será promovido a DC e adicionar a role de AD DS:
Para Adicionar a Feature de AD DS:
Install-WindowsFeature -name “ad-domain-services” -IncludeAllSubFeature –IncludeManagementTools

Após vamos ingressar no domínio contoso.com:
Install-addsdomaincontroller –installdns –domainname “contoso.com” –credential (get-credential contoso\administrator)
Neste momento deverá ser inserida a senha do usuário administrator do domínio. Após será questionada a senha do DSRM.
Uma vez instalada essa role, o servidor também irá reiniciar.
 
Para verificar onde estão as regras FSMO podemos digitar:
Netdom query fsmo

Para mover as regras FSMO basta digitar:
Move-ADDirectoryServerOperationMasterRole -Identity “SERVIDOR DESTINO” -OperationMasterRole SchemaMaster, RIDMaster, InfrastructureMaster, DomainNamingMaster, PDCEmulator
Caso fosse necessário fazer um seizing das FSMO o comando seria praticamente o mesmo:
Move-ADDirectoryServerOperationMasterRole -Identity “SERVIDOR DESTINO” -OperationMasterRole SchemaMaster, RIDMaster, InfrastructureMaster, DomainNamingMaster, PDCEmulator -force

Até a próxima!!

Verificando Usuários e Computadores que não logam no AD desde um período

Em uma estrutura de Dominio(s) com Active Directory (AD) muito grande pode acontecer de usuários sairem da empresa, mas ficarem ativos no AD, assim como pode acontecer de computadores sairem do AD ou tenham seus nomes trocados, fazendo com que fique lixo no AD.

A questão de usuários ficarem ativos no AD, mesmo após a saída da empresa, é um ponto muito importante de segurança. É essencial que a empresa tenha uma política de remoção dos usuários assim que eles não são mais utilizados. Como nem sempre é possível saber se este usuário tem algum serviço ou outra coisa ligado a ele o ideal é desabilitar o usuário para depois o remover. Um bom tempo antes de remover o usuário seria ficar com ele desabilitado por um mês.

Para saber quais usuários não logam no AD fazem dois meses:
dsquery user -inactive 8 -limit 0
Para saber quais computadores não logam no AD fazem dois meses:
dsquery computer -inactive 8 -limit 0

A opção -inactive 8 quer dizer o número de semanas de inatividade. Para um mês, troque o 8 por 4…
Por padrão vão ser mostrados até 100 registros, a opção -limit 0 vai fazer com que todos os registros sejam mostrado.

Para mover o resultado para outra OU pode-se usar o seguinte comando – levando em consideração que os resultados serão movidos para uma OU chamada Desabilitados dentro de um domínio chamado contoso.com:
dsquery user -inactive 8 -limit 0 | dsmove -newparent “ou=desabilitados,dc=contoso,dc=com”

Para deletar os resultados pode usar o comando:
dsquery user -inactive 8 -limit 0 | dsrm

Até a próxima!!