none
Vbscript Active Directory - Member RRS feed

  • 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

     

    quarta-feira, 9 de março de 2011 02:49

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

    quarta-feira, 22 de agosto de 2012 02:44
    Moderador

Todas as Respostas

  • viva,

    não existe alguem que me possa ajudar? :(

    Obrigado

    quarta-feira, 9 de março de 2011 19:35
  • 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

    quinta-feira, 16 de agosto de 2012 22:22
    Moderador
  • ok Fábio,

    Quando tiver o script para pesquisar se existe um determinado computador dentro de um grupo partilhe esse código.

    obrigado

    abraço

    sábado, 18 de agosto de 2012 13:48
  • Siga este procedimento:

    1. 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

    terça-feira, 21 de agosto de 2012 01:09
    Moderador
  • 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

    quarta-feira, 22 de agosto de 2012 02:44
    Moderador