none
Administradores locais alterar informação do log RRS feed

  • Pergunta

  • Ba galera,

    Peguei este script aqui no forum que lista os admin locais de uma maquina tche, porem eu gostaria de saber se a conta que ele esta apontando é do dominio ou não, no resultado tche ele coloca só o nome da conta e com isto eu não sei se elaé local ou do dominio tche, alguem consegue me ajudar.

    Obrigado tche.

    codigo.

    on error resume next
    
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    StrComputer = WshNetwork.ComputerName
    
    Set objWMIService = GetObject("winmgmts:\\" & StrComputer & "\root\cimv2")
      if Err.number <> 0 then
        Err.Clear
        wscript.quit
      End if   
    
    Set colAccounts = objWMIService.ExecQuery _
        ("Select * From Win32_Group Where Domain = '" & StrComputer & "'")
    
    For Each objAccount in colAccounts
      If objAccount.SID ="S-1-5-32-544" Then
         Set ObjAdministrador = GetObject("WinNT://" & strComputer & "/" & objAccount.Name & "")
         StrGroup = objAccount.Name
      End if
    Next
    
    Local = "c:\temp\"
    FileLog = Local & WshNetwork.ComputerName & "_" & StrGroup  & ".txt"
    ActionList = "no"
    
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set ObjFileRead = ObjFSO.opentextfile(FileLog, ForReading, True)
    Set ObjFileAppending = ObjFSO.opentextfile(FileLog, ForAppending, True)
      
    Set objNetwork = CreateObject("WScript.Network")
    Set objGroup = GetObject("WinNT://" & StrComputer & "/" & StrGroup & ",group") 
    StrMemberAdsPath = "WinNT://" & StrComputer & "/" & StrMember
    AdsPathGroup = objGroup.AdsPath
    
    For Each objUser In objGroup.Members
     WriteLog WshNetwork.ComputerName &","& Ucase(objUser.name) &","& objUser.class
     ActionList = "yes"
    Next
    
    Function WriteLog (Text)
     ObjFileAppending.WriteLine Text
    End Function

    quinta-feira, 15 de maio de 2014 13:52

Respostas

  • Sim, utilize IFs, com várior ORs (Ous), se não se encaixar em nenhum dos "Ous" então é porque está fora do padrão. Compare com o ADSPath.


    Fábio de Paula Junior

    • Marcado como Resposta Marcelo TI sexta-feira, 16 de maio de 2014 15:34
    sexta-feira, 16 de maio de 2014 13:43
    Moderador

Todas as Respostas

  • Marcelo,

    Existe um atributo chamado ADSPath que ajuda nesta informação pois:

    Quando o usuário é do dominio o formato é: WinNT://<DOMAINNAME>/<USERNAME>

    Quando o usuário é local é: WinNT://<DOMAINNAME>/<COMPUTERNAME>/<USERNAME>

    Então basta você verificar se existe o nome do computador dentro deste atributo se existir é porque é um objeto local. Fiz a alteração apenas no trecho que resolve, veja:

    For Each objUser In objGroup.Members
    	if instr(objUser.ADSPath,StrComputer) then
    		strTipoGrupo="Local"
    	else
    		strTipoGrupo="DOMINIO"
    	end if
    	WriteLog WshNetwork.ComputerName &","& Ucase(objUser.Name) &","& objUser.class & "," & strTipoGrupo
    	ActionList = "yes"
    Next

    Ref.:

    Get Windows Group Members Using Powershell

    http://www.epcusa.com/blog/2011/04/get-windows-group-members-using-powershell-2/


    Fábio de Paula Junior


    • Editado Fábio JrModerator quinta-feira, 15 de maio de 2014 19:07
    • Marcado como Resposta Marcelo TI quinta-feira, 15 de maio de 2014 21:42
    • Não Marcado como Resposta Marcelo TI quinta-feira, 15 de maio de 2014 21:42
    • Sugerido como Resposta Fábio JrModerator sexta-feira, 16 de maio de 2014 13:43
    quinta-feira, 15 de maio de 2014 19:06
    Moderador
  • Ba tche e isto mesmo fabião que eu gostaria ja ajuda muito, mas deixa eu te perguntar tche, tem como eu colocar mas um if ou outra coisa tche que ja tenha uma lista de grupos ou contas padrões para que ele escreva no log, que a conta levantada no grupo é padrão e caso não for ele coloque que esta fora do padrão tche.

    obrigado.

    quinta-feira, 15 de maio de 2014 21:45
  • Sim, utilize IFs, com várior ORs (Ous), se não se encaixar em nenhum dos "Ous" então é porque está fora do padrão. Compare com o ADSPath.


    Fábio de Paula Junior

    • Marcado como Resposta Marcelo TI sexta-feira, 16 de maio de 2014 15:34
    sexta-feira, 16 de maio de 2014 13:43
    Moderador
  • Valeu Fabião.
    sexta-feira, 16 de maio de 2014 15:34