Usuário com melhor resposta
Vbscript Active Directory - Member

Pergunta
-
Caros,
Ainda não entendi muito bem a sintaxe em VBscript para obter um output de um determinado computador. Já procurei pela internet vários exemplos e não existe nenhum que preencha totalmente o que necessito.
Então é assim, tenho um determinado grupo cujo o nome é PT INSTALL BY SMS VISIO e tem alguns computadores como members. O que desejava era encontrar um script que apenas me informa-se se determinado computador encontra-se ou não nesse grupo.
Exemplo: input = computador PT0001
conect to ad and verify pt0001 is member of the group PT INSTALL BY SMS VISIO
if yes = output "o computador pt0001 é membro do grupo"
if not = output "o computador pt0001 não é membro do grupo"
Apenas quero que me dê estes output's nada mais, não quero contagem de computadores que estão no grupo, não quero user's que estejam nesse grupo, apenas e só apenas pesquisa de um computador num determinado grupo.
Se tiverem algo enviem-me sff.
Obrigado pela colaboração
Respostas
-
Neste script ele pergunta ao invés de ter que passar como parametro:
@ECHO OFF SET /P CONSULTA=INFORME O NOME DO COMPUTADOR: SET GROUP="CN=PT INSTALL BY SMS VISIO,OU=TESTE,DC=lab,DC=technet,DC=com,DC=br" dsquery computer -name %CONSULTA% > %TEMP%\ISMEMBER.LOG FINDSTR /I "CN=" %TEMP%\ISMEMBER.LOG IF %ERRORLEVEL% NEQ 0 ( ECHO COMPUTADOR %CONSULTA% NAO EXISTE GOTO :EOF ) dsquery computer -name %CONSULTA% | dsget computer -memberof -expand | findstr /I %GROUP% IF %ERRORLEVEL% EQU 0 ( ECHO %CONSULTA% E MEMBRO ) ELSE ( ECHO %CONSULTA% NAO E MEMBRO )
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator quarta-feira, 22 de agosto de 2012 22:22
Todas as Respostas
-
-
Um pouco tarde...
'Error Handling On Error Resume Next set objShell = WScript.CreateObject( "WScript.Shell" ) 'Calls the isMember function with the specified group to see if the current user ' is a member of that group. If isMember("GroupNameToCheckGoesHere") Then 'MsgBox("Is member") ' Do something here if they are a member of the group Else 'MsgBox("Is not member") ' Do something here if they are not a member of the group End If ' ***************************************************** 'This function checks to see if the passed group name contains the current ' user as a member. Returns True or False Function IsMember(groupName) If IsEmpty(groupListD) then Set groupListD = CreateObject("Scripting.Dictionary") groupListD.CompareMode = 1 ADSPath = EnvString("userdomain") & "/" & EnvString("username") Set userPath = GetObject("WinNT://" & ADSPath & ",user") For Each listGroup in userPath.Groups groupListD.Add listGroup.Name, "-" Next End if IsMember = CBool(groupListD.Exists(groupName)) End Function ' ***************************************************** ' ***************************************************** 'This function returns a particular environment variable's value. ' for example, if you use EnvString("username"), it would return ' the value of %username%. Function EnvString(variable) variable = "%" & variable & "%" EnvString = objShell.ExpandEnvironmentStrings(variable) End Function ' ***************************************************** ' Clean up Set objShell = Nothing
Este verifica o usuário atual, quando eu tiver um ambiente de testes eu posto o código que verifica o de um computador.
Ref.:
VBScript – Check if current user is a member of a certain group
daniel.streefkerkonline.com/vbscript-check-if-current-user-is-a-member-of-a-certain-group/
Fábio de Paula Junior
- Sugerido como Resposta Matheus Kamphorst sexta-feira, 17 de agosto de 2012 12:42
-
-
Siga este procedimento:
- Salve o código abaixo em um .bat (exemplo ismember.bat)
@ECHO OFF SET GROUP="CN=PT INSTALL BY SMS VISIO,OU=TESTE,DC=lab,DC=technet,DC=com,DC=br" dsquery computer -name %1 > %TEMP%\ISMEMBER.LOG FINDSTR /I "CN=" %TEMP%\ISMEMBER.LOG IF %ERRORLEVEL% NEQ 0 ( ECHO COMPUTADOR %1 NAO EXISTE GOTO :EOF ) dsquery computer -name %1 | dsget computer -memberof -expand | findstr /I %GROUP% IF ERRORLEVEL 0 ( ECHO %1 E MEMBRO ) ELSE ( ECHO %1 NAO E MEMBRO )
2. Configure a primeira variavel do script com o caminho LDAP do seu grupo
3. Utilize da seguinte maneira ismember.bat <nomedocompuador>:
ismember.bat computador01
Ele vai dizer se é membro ou não
Se quiser utilizar para usuários basta trocar nos comandos dsquery e dsget de computer para user
Fábio de Paula Junior
-
Neste script ele pergunta ao invés de ter que passar como parametro:
@ECHO OFF SET /P CONSULTA=INFORME O NOME DO COMPUTADOR: SET GROUP="CN=PT INSTALL BY SMS VISIO,OU=TESTE,DC=lab,DC=technet,DC=com,DC=br" dsquery computer -name %CONSULTA% > %TEMP%\ISMEMBER.LOG FINDSTR /I "CN=" %TEMP%\ISMEMBER.LOG IF %ERRORLEVEL% NEQ 0 ( ECHO COMPUTADOR %CONSULTA% NAO EXISTE GOTO :EOF ) dsquery computer -name %CONSULTA% | dsget computer -memberof -expand | findstr /I %GROUP% IF %ERRORLEVEL% EQU 0 ( ECHO %CONSULTA% E MEMBRO ) ELSE ( ECHO %CONSULTA% NAO E MEMBRO )
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator quarta-feira, 22 de agosto de 2012 22:22