none
Multiplos Logins no AD via VBS RRS feed

  • Pergunta

  • Boa Noite Galera 

    Desculpa se estou postando errado , mais preciso de uma ajuda muito grande de voceis,

    Aqui na minha rede eu tenho Windows 2008 R2 X64 , com AD, tudo direitinho funcionando, e gostaria de bloquiar o multiplos logins, mais nao por maquina  como da pra fazer no windows, ai eu li aqui mesmo no forum uma saida, e a fiz, porem estou com seguinte problema

    Quando o usuario faz o loguin no terminal, ele executa o script.

    CODE

    On Error Resume Next


    '-- Inicia variável Logoff
    Logoff = False

    '-- Cria objeto Network
    set oNet = Wscript.CreateObject("Wscript.Network")

    '-- Cria objeto de Conexão
    Set con = Wscript.CreateObject("ADODB.Connection")

    '-- Abre conexão com o Banco
    '-- Trocar os *** pelos dados do seu banco
    con.Open "Provider=SQLOLEDB.1;Password=11319954;Persist Security Info=True;User ID=SA;Initial Catalog=LOGON;Data Source=INFOTEC2\SQLEXPRESS" 

    '-- Cria Recordset
    Set rst = Wscript.CreateObject("ADODB.Recordset")

    '-- Cria variavel com consulta verificando se usuário já existe na tabela
    SQL = "select * from Usuarios where usuario = '" & oNet.UserName & "'"

    '-- Abre recordset
    rst.Open SQL, con, 2, 2

    '-- Se retornou dados, seta variável Logoff como True
    If Not rst.Eof Then
    Logoff = True
    End If


    '-----------------------------------------
    '-- Adicionando registro na tabela Usuarios
    '-----------------------------------------
    rst.AddNew

    '-- Preenche colunas usuário, máquina e data
    rst("usuario") = oNet.UserName
    rst("maquina") = oNet.ComputerName
    rst("data") = Date & " " & Time

    '-- Update na base
    rst.Update

    '-- Fecha Recordset
    rst.Close

    '-- Destroi Objetos
    Set rst  = Nothing
    Set con  = Nothing


    '-- Se Logoff = True, executa logoff
    If Logoff = True Then


    '-- Aguarda
    WScript.Sleep 750 

    Const ForcedLogoff = 4
    Set oShell = Wscript.CreateObject("WScript.Shell")
    strComputer = oNet.ComputerName

    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & _
    strComputer & "\root\cimv2")
    Set colOperatingSystems = objWMIService.ExecQuery ("SELECT * FROM Win32_OperatingSystem")
    For Each objOperatingSystem in colOperatingSystems
    ObjOperatingSystem.Win32Shutdown(0 + 4)
    Next 

    '-- Aguarda
    WScript.Sleep 1100

    oShell.Run "shutdown.exe -l -f", 0, True
    End If

    '-- Destroi objeto Network
    Set oNet = Nothing

    "Obs esta sem os creditos , pq o script tava dando erro hehe"

    Ele executa mais nao grava nada na DB , nisso passando alguns segundos ele gera o LogOff do nada, ele nao esta gravando nada na DB.

    Poderiam me ajudar por gentileza

    esse é o processo e o autor 

    http://www.portaltecnologia.net/2009/05/27/como-impedir-multiplos-logons-em-uma-rede-com-active-directory/

    segunda-feira, 13 de outubro de 2014 21:40

Respostas

  • Boa tarde Zeroxissk,

    Recomendo olhar esse site, que é muito bom, e nesse link explica o que você precisa, da uma olhada:

    http://www.macoratti.net/08/03/aspn_acd1.htm

    Att,


    Ricardo Cortes Microsoft Contingent Staff

    Esse contedo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    terça-feira, 14 de outubro de 2014 17:47