Usuário com melhor resposta
Preecnher campo "postOfficeBox" de vários usuários no AD

Pergunta
-
Pessoal,
Tenho uma simples planilha.xlsx com apenas duas colunas, uma com o login de usuários e outra com os números do CPF.
Preciso preencher o campo P. O. Box das propriedades dos usuários no AD com o CPF, como posso fazer isso com script.vbs?
Obrigado
Respostas
-
Se quiser tentar em PowerShell.
1) Copie as duas colunas da sua planilha e cole em um arquivo txt (os dados ficarão separados por {tab}), chamaremos este arquivo de cpf.txt
Meu cpf.txt ficou assim:
login cpf technet 111.222.333-55 isa.0001 222.333.111-45
2) Coloque o arquivo cpf.txt na mesma pasta do script powershell
3) Código do script PowerShell
Import-Module ActiveDirectory $ArquivoConteudo = Import-Csv (join-path $PSScriptRoot "cpf.txt") -Delimiter `t foreach($Registro in $ArquivoConteudo){ Set-ADUser -Identity $Registro.login -PostalCode $Registro.cpf }
Fiz o teste e funcionou.
Fábio de Paula Junior
- Marcado como Resposta Marco_AM quarta-feira, 23 de julho de 2014 12:05
-
Olá Fabio, na verdade consegui uma maneira mais simples ainda.
Linha do PowerShell:
Set-ADUser -Identity meulogin -POBox 12345678910
Montei a planilha preenchendo todas as linhas, copiei e colei no PowerShell, 100% funcional tbm.
De qualquer forma obrigado pela ajuda.
- Marcado como Resposta Marco_AM quarta-feira, 23 de julho de 2014 12:05
Todas as Respostas
-
Marco,
Veja se este link ajuda, ele atualiza outro campo, basta você trocar este campo.
Carga no AD com lista do Excel
Fábio de Paula Junior
-
Oi Fabio, segue o script alterado conforme indicou, pode conferir, por favor? Pois deu o seguinte erro:
Linha: 39
Caract: 4
Erro: Uma referência foi retornada do servidor
Na minha planilha, tenho simplesmente na primeira coluna o login (Ex: mmiranda) e na segunda coluna o CPF (Ex: 12345678910)
Const ForReading = 1 Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE Set objExcel = CreateObject("Excel.Application") 'caminho do arquivo excel Set objWorkbook = objExcel.Workbooks.Open ("C:\Scripts\CPF\CPF_CWB.xlsx") intRow = 1 Do Until objExcel.Cells(intRow,1).Value = "" 'nome do usuario login = objExcel.Cells(intRow, 1).Value 'e-mail na coluna 2 cpf = objExcel.Cells(intRow, 2).Value Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.CommandText = _ "SELECT name,description,distinguishedname,instanceType FROM 'LDAP://dc=cwb,dc=dominio,dc=pr' " & _ "WHERE objectCategory='user' And name = '"& login & "'" Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Do Until objRecordSet.EOF cn = objRecordSet.Fields("distinguishedname").Value Set objUser = GetObject("LDAP://" & cn) objUser.postOfficeBox = cpf objUser.SetInfo Loop intRow = intRow + 1 Loop objExcel.Quit wscript.quit
- Editado Marco_AM terça-feira, 22 de julho de 2014 12:03 Correção
- Editado Fábio JrModerator terça-feira, 22 de julho de 2014 13:53 código
-
-
Se quiser tentar em PowerShell.
1) Copie as duas colunas da sua planilha e cole em um arquivo txt (os dados ficarão separados por {tab}), chamaremos este arquivo de cpf.txt
Meu cpf.txt ficou assim:
login cpf technet 111.222.333-55 isa.0001 222.333.111-45
2) Coloque o arquivo cpf.txt na mesma pasta do script powershell
3) Código do script PowerShell
Import-Module ActiveDirectory $ArquivoConteudo = Import-Csv (join-path $PSScriptRoot "cpf.txt") -Delimiter `t foreach($Registro in $ArquivoConteudo){ Set-ADUser -Identity $Registro.login -PostalCode $Registro.cpf }
Fiz o teste e funcionou.
Fábio de Paula Junior
- Marcado como Resposta Marco_AM quarta-feira, 23 de julho de 2014 12:05
-
Olá Fabio, na verdade consegui uma maneira mais simples ainda.
Linha do PowerShell:
Set-ADUser -Identity meulogin -POBox 12345678910
Montei a planilha preenchendo todas as linhas, copiei e colei no PowerShell, 100% funcional tbm.
De qualquer forma obrigado pela ajuda.
- Marcado como Resposta Marco_AM quarta-feira, 23 de julho de 2014 12:05