PowerShell – Alterando o HomeDirectory no Actve Directory

Compartilhe:

Muitas empresas utilizam o atributo “homeDirectory” do Active Directory para mapear as unidades de redes do próprio usuário ou da equipe que o mesmo pertence. As empresas que utilizam o nome do servidor ou IP ao invés de um mapeamento do DFS necessitam alterar o campo dos usuários do AD quando efetuam a troca de servidor de Fileserver, ou seja, quando o mesmo tem o nome ou IP alterado.

Solução


Nesse tutorial, iremos mostrar como fazer essa tarefa de forma rápida, sendo necessário adicionar somente o nome ou IP do servidor antigo, do novo servidor e a Organization Unit dos usuários no script.

Para saber o nome do servidor atual ou IP, basta ir nos usuários do AD na aba “Perfil” e procurar o campo “Pasta base”. Na linha “Conectar” fica demonstrado a unidade de mapeamento e o caminho do mapeamento, incluindo o nome do servidor ou IP.

clip_image001

Para executar o script, abra o PowerShell com um usuário que tenha permissão no Active Directory para alterar o campo “homeDirectory”. Nele será necessário alterar 03 variáveis, sendo elas $SERVERANTIGO,$SERVERNOVO e $OU

  • $SERVERANTIGO – adicionar nome ou IP do servidor antigo
  • $SERVERNOVO – adicionar o nome ou IP do servidor novo.
  • $OU – adicionar a Organization Unit dos usuários que serão alterados.

O Script irá executar a varredura dos usuários da OU correspondente, localizando os usuários que tem no atributo “homeDirectory” o servidor antigo e fazendo a substituição pelo novo servidor. Com isto, usuários que tem o campo diferente ou em branco não serão afetados pelo script.

——————————————————————————————————————

cls
#Import Active Directory Module
Import-Module ActiveDirectory

#VARIAVEIS
$SERVERANTIGO = “SERVER01″
$SERVERNOVO = “SERVER02″

#OU
$OU = ‘OU=Usuarios,dc=dominio,dc=local’

#LISTA DE USUARIOS
$UserList = Get-ADUser -Filter * -SearchBase $OU -Properties distinguishedName,SamAccountName,homeDirectory

#EXECUCAO DA ALTERACAO
FOREACH ($User in $UserList) {
if ($User.homeDirectory -like “*\\$SERVERANTIGO\*”)
{
$usuario_rede = $user.sAMAccountName
$homenew = $user.homeDirectory -replace “$SERVERANTIGO“, “$SERVERNOVO
Set-ADUser -Identity $usuario_rede -HomeDirectory $homenew
}

}

——————————————————————————————————————

Após a execução, você poderá ver a alteração nos campos dos usuários.

Conclusão


Com esse tutorial podemos fazer de forma rápida e prática a troca dos mapeamentos dos usuários do Active Directory que utilizam o atributo “homedirectory”.

Written by Bolivar Andrade

Bolivar Andrade

Bolivar Bilhalva Andrade tem mais de 10 anos de experiência na área de Infraestrutura de TI. Trabalha com as plataformas Microsoft e Linux. Atualmente vem trabalhando diretamente em projetos ligado a plataforma Office365 e produtos McAfee.
Atualmente é Analista de Suporte Sênior.