Usuário com melhor resposta
Lêr arquivo txt em Vbscript

Pergunta
-
Olá,
Gostaria de uma ajuda referente a Vbscript.
Eu tenho um arquivo txt com cerca de 250 usuários e gostaria de rodar um comando para remover todos os grupos dos usuários que consta no arquivo
Estou usando o comando abaixo, mais só server para remover um a um.
Gosatia de editar da seguinte forma:
Que ele leia o arquivo em c:\users.txt e leia todas as linhas que conta o sAMAccountName, ou poderia ser pelo CN
On Error Resume Next
Const ADS_PROPERTY_DELETE = 4
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Set objUser = GetObject _
("LDAP://cn=usuario que será removido,ou=Users,ou=disabled users,dc=inserir caminho,dc=inserir caminho,dc=inserir caminho")
arrMemberOf = objUser.GetEx("memberOf")
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
WScript.Echo "This account is not a member of any security groups."
WScript.Quit
End If
For Each Group in arrMemberOf
Set objGroup = GetObject("LDAP://" & Group)
objGroup.PutEx ADS_PROPERTY_DELETE, _
"member", Array("cn=usuario que será removido,ou=Users,ou=disabled users,dc=inserir caminho,dc=inserir caminho,dc=inserir caminho objGroup.SetInfo
NextObrigado pela ajuda,
- Movido Erick Albuquerque quinta-feira, 30 de setembro de 2010 18:46 Fórum apropriado (De:Windows Server 2003)
Respostas
-
Tente Assim:
Salve esse script no C: por exemplo como DeleteGroups.vbs
Dim str_Cn_user
str_Cn_user = WScript.Arguments(0)
WScript.Echo str_Cn_user
On Error Resume Next
Const ADS_PROPERTY_DELETE = 4
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Set objUser = GetObject _
("LDAP://cn=" & str_Cn_user & ",ou=Users,ou=disabled users,dc=inserir caminho,dc=inserir caminho,dc=inserir caminho")
arrMemberOf = objUser.GetEx("memberOf")
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
WScript.Echo "This account is not a member of any security groups."
WScript.Quit
End If
For Each Group in arrMemberOf
Set objGroup = GetObject("LDAP://" & Group)
objGroup.PutEx ADS_PROPERTY_DELETE, _
"member", Array("cn=" & str_Cn_user & ",ou=Users,ou=disabled users,dc=inserir caminho,dc=inserir caminho,dc=inserir caminho")
objGroup.SetInfo
NextAbra uma janela do cmd e copie esse comando:
for /F %i IN (C:\USERS.TXT) DO cscript c:\DeleteGroups.vbs %i
Qualquer dúvida poste.
Abraço.
Gabriel Nascimento MCP / MCTS / MCSA / MCSE / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.- Marcado como Resposta Bernardes Galileu terça-feira, 5 de outubro de 2010 11:47
Todas as Respostas
-
-
Tente Assim:
Salve esse script no C: por exemplo como DeleteGroups.vbs
Dim str_Cn_user
str_Cn_user = WScript.Arguments(0)
WScript.Echo str_Cn_user
On Error Resume Next
Const ADS_PROPERTY_DELETE = 4
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Set objUser = GetObject _
("LDAP://cn=" & str_Cn_user & ",ou=Users,ou=disabled users,dc=inserir caminho,dc=inserir caminho,dc=inserir caminho")
arrMemberOf = objUser.GetEx("memberOf")
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
WScript.Echo "This account is not a member of any security groups."
WScript.Quit
End If
For Each Group in arrMemberOf
Set objGroup = GetObject("LDAP://" & Group)
objGroup.PutEx ADS_PROPERTY_DELETE, _
"member", Array("cn=" & str_Cn_user & ",ou=Users,ou=disabled users,dc=inserir caminho,dc=inserir caminho,dc=inserir caminho")
objGroup.SetInfo
NextAbra uma janela do cmd e copie esse comando:
for /F %i IN (C:\USERS.TXT) DO cscript c:\DeleteGroups.vbs %i
Qualquer dúvida poste.
Abraço.
Gabriel Nascimento MCP / MCTS / MCSA / MCSE / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.- Marcado como Resposta Bernardes Galileu terça-feira, 5 de outubro de 2010 11:47
-
-
Boa tarde!
Gabriel,
Aproveitando o fórum, será que poderia me ajudar? É que eu gostaria de ter um script de logon que mapeasse os diretórios compartilhados por grupo e dentro dos grupos, que ele verificasse o nome do usuário para poder montar o compartilhamento. O motivo é que dentro de cada setor tenho mais de um usuário e eles não podem ter acesso as pastas um do outro por política da empresa. Sei que posso criar um script individual para cada usuário e colocar em seu perfil pelo AD, mas gostaria de ter somente um script.
Se entrar no meu perfil, verá esta mesma pergunta com mais detalhes.
Desde de já obrigado.
-