Usuário com melhor resposta
Grupo administrador local, o que alterar

Pergunta
-
Ba galera,
Tenho este codigo abaixo que levanta quem esta no grupo administradores locais, porem quando existe mais de um grupo ou usuario ele da um echo para cada um ou se eu mandar ele escrever em texto ele cria varias linhas dependendo dos membros, o que devo alterar no mesmo para que ele escreva em uma unica linha em um echo todos os membros que ele venha a levantar no grupo obedecendo os valores do <>.
Ba valeu tche.
strComputer = "."
Set colGroups = GetObject("WinNT://" & strComputer & "")
colGroups.Filter = Array("group")
For Each objGroup In colGroups
If (objGroup.Name = "Administrators") or (objGroup.Name = "Administradores") Then
For Each objUser in objGroup.Members
If (objUser.name <> "") and (ucase(objUser.name) <> "ADMINISTRATOR") and (ucase(objUser.name) <> "SUP_CENTRAL") and (ucase(objUser.name) <> "DOMAIN ADMINS") ThenWScript.Echo objGroup.Name & ";" & ucase(objUser.Name)
End If
Next
End If
Next
Respostas
-
Não entendi direito, mas teste este aqui pra ver o que falta
No caso é uma linha para cada grupo.
strComputer = "." Set colGroups = GetObject("WinNT://" & strComputer & "") colGroups.Filter = Array("group") For Each objGroup In colGroups strSaida="" If (objGroup.Name = "Administrators") or (objGroup.Name = "Administradores") Then For Each objUser in objGroup.Members If (objUser.name <> "") and (ucase(objUser.name) <> "ADMINISTRATOR") and (ucase(objUser.name) <> "SUP_CENTRAL") and (ucase(objUser.name) <> "DOMAIN ADMINS") Then strSaida = strSaida & ucase(objUser.Name) & ";" End If next
wscript.echo objGroup.Name & ";" & strSaida
end if Next
Fábio de Paula Junior- Editado Fábio JrModerator segunda-feira, 3 de outubro de 2011 16:20
- Marcado como Resposta Marcelo TI segunda-feira, 3 de outubro de 2011 17:07
Todas as Respostas
-
Não entendi direito, mas teste este aqui pra ver o que falta
No caso é uma linha para cada grupo.
strComputer = "." Set colGroups = GetObject("WinNT://" & strComputer & "") colGroups.Filter = Array("group") For Each objGroup In colGroups strSaida="" If (objGroup.Name = "Administrators") or (objGroup.Name = "Administradores") Then For Each objUser in objGroup.Members If (objUser.name <> "") and (ucase(objUser.name) <> "ADMINISTRATOR") and (ucase(objUser.name) <> "SUP_CENTRAL") and (ucase(objUser.name) <> "DOMAIN ADMINS") Then strSaida = strSaida & ucase(objUser.Name) & ";" End If next
wscript.echo objGroup.Name & ";" & strSaida
end if Next
Fábio de Paula Junior- Editado Fábio JrModerator segunda-feira, 3 de outubro de 2011 16:20
- Marcado como Resposta Marcelo TI segunda-feira, 3 de outubro de 2011 17:07
-
Ba tche
show Fabio, agora tenho que ver como resolver a questão dentro do script master, rodando ele sozinho, ele me atente, rodando dentro do outro, ele esta criando uma linha com um grupo e uma linha com o grupo mais usuario.
valeu Fabio.
-
Fabio ba tche
Amarrei o codgo dentro do outro script master, e ta rolando legal, mais vc poderia me fazer um favor me explicar a alteração, vi que vc criou o strSaida="" e o strSaida = strSaida & ucase(objUser.Name) & ";", gostaria de compreender como esta alteração mudou a saida para uma unica linha.
valeu obrigado tche.
-
O strSaida="" está embaixo do For each objGroup que é onde começa a interação com cada grupo, se eu não limpasse o strSaida o segundo grupo iria imprimir seus usuários + usuários do primeiro grupo, o terceiro grupo iria imprimir os seus + primeiro grupo + segundo grupo.... e assim sucessivamente.
Já o strSaida = strSaida & ucase(objUser.Name) está dentro da interação com cada membro do grupo, então a cada Loop eu adiciono o membro à variavel strSaida.
Fábio de Paula Junior