none
ObjectSid do Windows RRS feed

  • Pergunta

  • Ba galera, estou utilizando este vbs para levantar o ObjectSid do Windows, mais estou notando que o resultado não bate com a informação cadastrada no objeto computador no active directory, alguem conhece algum codigo que traga esta informação de forma correta ou o que deve ser alterado neste codigo.

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

     Set colAccounts = objWMIService.ExecQuery _

         ("Select * From Win32_UserAccount Where LocalAccount=True")

    Result = ""

     For Each objAccount in colAccounts

        If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then

           wscript.echo       objAccount.SID

        End If

     Next

    terça-feira, 27 de setembro de 2011 13:51

Respostas

  • Utilize esta função, no código abaixo já tem algums exemplos de utilização

    Set WshNetwork = WScript.CreateObject("WScript.Network")
    
    'SID do usuario atual
    wscript.echo getSid(WshNetwork.UserName,WshNetwork.UserDomain)
    
    'SID de um outro usuário do dominio
    wscript.echo getSid("fabio","Nomedodominio")
    
    'Colocando sid do usuario atual dentro de uma váriavel
    SID = getSid(WshNetwork.UserName,WshNetwork.UserDomain)
    
    function getSid(strUser,strComputer)
    
    	Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\cimv2")
    	Set objAccount = objWMIService.Get ("Win32_UserAccount.Name='" & strUser & "',Domain='" & strComputer & "'")
    	getSid = objAccount.SID
    
    End Function
    


    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator sexta-feira, 30 de setembro de 2011 16:46
    • Marcado como Resposta Marcelo TI segunda-feira, 3 de outubro de 2011 15:58
    quinta-feira, 29 de setembro de 2011 12:47
    Moderador

Todas as Respostas

  • Utilize esta função, no código abaixo já tem algums exemplos de utilização

    Set WshNetwork = WScript.CreateObject("WScript.Network")
    
    'SID do usuario atual
    wscript.echo getSid(WshNetwork.UserName,WshNetwork.UserDomain)
    
    'SID de um outro usuário do dominio
    wscript.echo getSid("fabio","Nomedodominio")
    
    'Colocando sid do usuario atual dentro de uma váriavel
    SID = getSid(WshNetwork.UserName,WshNetwork.UserDomain)
    
    function getSid(strUser,strComputer)
    
    	Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\cimv2")
    	Set objAccount = objWMIService.Get ("Win32_UserAccount.Name='" & strUser & "',Domain='" & strComputer & "'")
    	getSid = objAccount.SID
    
    End Function
    


    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator sexta-feira, 30 de setembro de 2011 16:46
    • Marcado como Resposta Marcelo TI segunda-feira, 3 de outubro de 2011 15:58
    quinta-feira, 29 de setembro de 2011 12:47
    Moderador
  • Marcelo,

    Testou o script?

     

    Resolveu?


    Fábio de Paula Junior
    segunda-feira, 3 de outubro de 2011 11:26
    Moderador
  • Valeu Fabio rolou legal.
    segunda-feira, 3 de outubro de 2011 15:58