Active Directory; pastas de edição de lote?

1

Estamos migrando nossas pastas de usuários para um novo servidor. Eles estão no formato \server\users\UserName\ , então \server\users\Tim Smith\ . Nós essencialmente queremos mudar server para server1 Temos muitos usuários; Portanto, editar manualmente cada usuário é demorado.

Alguma sugestão de ferramentas que eu possa usar para editar todos os meus usuários em lote?

    
por Tim 22.09.2009 / 17:04

4 respostas

7

Usuários e computadores do Active Directory podem fazer o que você quiser, se os nomes das pastas de usuários corresponderem aos nomes das contas deles.

Supondo que todos os usuários estejam na mesma unidade organizacional, basta destacar todos eles, clicar com o botão direito do mouse e escolher "Propriedades", acessar a guia "Perfil" e inserir o novo caminho no formulário:

\server\users\%USERNAME%\

Se eles estão espalhados por várias UOs, é um pouco mais difícil, mas não muito. Supondo que você esteja usando a versão Windows 2003 do Active Directory Users and Computers:

  • No nó "Consultas salvas" na parte superior do AD, faça uma "Nova" / "Consulta".

  • Nomeie a consulta como quiser e forneça uma descrição, se desejar. Na definição de consulta, escolha uma UO acima das contas de usuário para a "raiz de consulta" (ou a raiz do domínio, se estiverem em UOs que são filhos da raiz).

  • Clique em "Definir consulta". Na caixa de diálogo "Localizar consultas comuns", escolha "Tem um valor" na lista suspensa à direita da legenda "Nome" na guia "Usuários". Clique em "OK" e "OK" novamente para definir a consulta.

  • Realce sua consulta recém-criada e clique com o botão direito do mouse e escolha "Atualizar" (ou pressione F5) se a consulta não estiver preenchendo o painel direito.

  • Destaque os usuários no painel direito, clique com o botão direito e escolha "Propriedades". Vá até a guia "Perfil" e faça a alteração conforme descrito acima.

Fácil como torta.

    
por 22.09.2009 / 17:23
4

Como alternativa, você pode usar um arquivo em lotes para gerenciar isso e executá-lo como um script, se não quiser usar a GUI. Ou você poderia simplesmente digitá-lo em uma linha de comando.

Eu diria algo assim, se você quiser alterar todos os usuários em todo o seu domínio.

dsquery users | dsmod user -hmdir \server\users\$username$\

O dsmod reconhece que o sinalizador $ username $ significa o samid do usuário que é canalizado para ele a partir do comando dsquery. Ele também reconhece esse sinalizador para o comando -profile anexado ao comando dsmod.

Nota: Se a sua pasta compartilhada for um compartilhamento oculto, isso não funcionará, o ponto de interrogação no compartilhamento oculto enganará o comando, fazendo-o pensar que você está iniciando a sinalização mais cedo do que realmente é. Eu experimentei alguns caracteres de escape para isso, mas não encontrei nenhum até agora que resolva esse problema.

Se todos os seus usuários estiverem em uma OU específica, você precisará alterar o comando dsquery. Para esse comando, você precisa adicionar o nome de domínio totalmente qualificado da unidade organizacional que contém todos os usuários que você deseja alterar. Isso pode ser encontrado, engraçado o suficiente, através do comando dsquery OU.

O comando ficaria assim,

dsquery users [fully qualified domain name of the OU ] | dsmod user -hmdir \server\users\$username$\

Se você deseja agrupar isso e usar um compartilhamento oculto, pode usar um loop FOR para fazer isso, mas a sintaxe fica um pouco confusa por causa dos loops necessários para primeiro extrair todos os usuários, depois extrair apenas seus nomes e em seguida, volte e insira essa informação em áreas específicas de um comando dsmod. É feio, mas eu faria algo assim.

dsquery user [fully qualified domain name of the ou] > c:\users.txt & for /f "delims==, tokens=2" %A in (c:\users.txt) do (dsmod user "CN=%A[rest of FQDN here] -hmdir "\server\users$\%A\" && del c:\users.txt -q

Nota: Se você usar isso em um arquivo de lote, o token de loop for deve ser precedido por porcentagens duplas, ou seja; %% A em vez de% A

Isso consulta todos os usuários na OU especificada e os envia para um arquivo. Em seguida, ele executa um loop for, retirando o nome do usuário do FQDN no arquivo e conectando-o a um comando dsmod que altera seu diretório inicial. Finalmente, ele se limpa excluindo o arquivo criado se o loop for executado com êxito.

Espero que isso ajude, mesmo se você não usar um arquivo de lote para fazer esse trabalho específico, ele poderá ajudá-lo no futuro. A coisa boa sobre algo como isto é que você pode salvá-lo e se você precisar mudar alguma coisa no futuro apenas algumas pequenas mudanças e tudo que você precisa fazer é reexecutá-lo para fazer as alterações desejadas. Além disso, se você encontrar alguém que fez alterações não autorizadas, poderá alterá-lo apenas com um duplo clique.

    
por 22.09.2009 / 20:41
0

Você pode usar o ADModify.NET para alterar os atributos do usuário em massa.

link

    
por 22.09.2009 / 17:08
0

As outras respostas baseadas em Scripts estão todas bem (e o script é meu melhor martelo), mas você também pode realizar o mesmo com um CNAME de DNS e uma renomeação de servidor. Alterar "servidor" para "servidor antigo" e "servidor" CNAME - > "servidor1"

    
por 09.10.2012 / 12:47