37 votos

Cómo comprobar que está conectado a la estación de trabajo de windows desde la línea de comandos?

Medio ambiente está en el dominio, servidor de Windows server 2003, las estaciones de trabajo tienen Vista y XP instalado.
Necesito la forma de comprobar de forma remota que actualmente ha iniciado sesión en la estación de trabajo, de preferencia de algunos simple línea de comandos y sin sysinternals o programas de terceros.

Gracias

47voto

Preet Sangha Puntos 2016

ver aquí : http://techrepublic.com.com/5208-7343-0.html?forumID=101&threadID=307918&messageID=3065346

Ellos sugieren que el comando wmic que se encuentran disponibles en windows :

WMIC /NODE: xxx.xxx.xxx.xxx COMPUTERSYSTEM OBTENER nombre de USUARIO devolver el nombre de usuario que actualmente ha iniciado la en xxx.xxx.xxx.xxx

o WMIC /NODE: "workstation_name" COMPUTERSYSTEM OBTENER nombre de USUARIO devolver el nombre de usuario que actualmente ha iniciado la en "workstation_name"

17voto

nik Puntos 5456

Lo sentimos, no se dio cuenta de que usted no desea utilizar Sysinternals.
Que ahora es de Microsoft technet herramienta, cualquier razón específica para no usarlo?
Yo he preferido Sysinternals sobre otras herramientas de terceros antes de que Mark Russinovich mueve en Microsoft.


El Microsoft Sysinternals Suite tiene una herramienta llamada Psloggedon,

psloggedon.exe -l


También hay NBTSTAT,

nbtstat -a NetBIOS-Computer-NAme

12voto

BigHomie Puntos 3983

He usado win32_loggedonuser, pero se encontró con un problema por el que más de un usuario de dominio fue devuelto, por lo que no trabajo para mis propósitos. En lugar de ello he utilizado (En powershell)

#Get Currently logged in user
$ExplorerProcess = gwmi win32_process | where name -Match explorer

if($ExplorerProcess.getowner().user.count -gt 1){
    $LoggedOnUser = $ExplorerProcess.getowner().user[0]
}

else{
    $LoggedOnUser = $ExplorerProcess.getowner().user
}

el si es porque a veces getowner se informe más de un usuario por alguna razón, no sé por qué, pero en mi caso fue el mismo usuario, de modo que no era un problema.

6voto

Sergey Stadnik Puntos 1193

Usted puede obtener esta información a partir de win32_loggedonuser.

Desde esta página:

strComputer = "."   ' " use "." for local computer

Set objWMI = GetObject("winmgmts:" _
              & "{impersonationLevel=impersonate}!\\" _
              & strComputer & "\root\cimv2")

Set colSessions = objWMI.ExecQuery _
    ("Select * from Win32_LogonSession Where LogonType = 2 OR LogonType = 10")

If colSessions.Count = 0 Then
   Wscript.Echo "No interactive users found"
Else
   For Each objSession in colSessions
     If objSession.LogonType = 2 Then
       WScript.Echo "Logon type: Console"
     Else
       WScript.Echo "Logon type: RDP/Terminal Server"
     End If
     Set colList = objWMI.ExecQuery("Associators of " _
         & "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " _
         & "Where AssocClass=Win32_LoggedOnUser Role=Dependent" )

     For Each objItem in colList
       WScript.Echo "User: " & objItem.Name
       WScript.Echo "FullName: " & objItem.FullName
       WScript.Echo "Domain: " & objItem.Domain
     Next
     Wscript.Echo "Session start time: " & objSession.StartTime
     WScript.Echo
   Next
End If

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: