Hace un tiempo publiqué mi script inicial para encontrar los usuarios que han iniciado sesión en un servidor y desconectarlos remotamente. Eso fue hace varios años y pensé que iba a tomar otra grieta en él para tratar de mejorar la velocidad, mejorar el formato y añadir algunos interruptores dedicados con un poco más de flexibilidad. Por último, quería cambiar ese nombre feo y poco convencional por algo más aprobado por Powershell. Llamo a esta nueva función Get Logged In Users.

La estructura subyacente va a seguir utilizando la sesión de consulta por lo que no ha cambiado. Lo que ha cambiado es que ahora podemos especificar un usuario específico o encontrar donde un usuario está conectado en un dominio. Otra nota es la capacidad de cerrar la sesión usando un simple interruptor por lo que definitivamente puede ser útil si usted está comprobando un registro de sistemas.

Obtener usuarios conectados usando Powershell

Mirando hacia atrás no sé por qué he añadido el módulo de ActiveDirectory y lo hizo correr como un administrador. Eso simplemente no es necesario y no se requiere para ejecutar esta función. Sin embargo, yo recomendaría encarecidamente que ejecute esto en una máquina de Windows 10 o Server 2016 y más tarde con Powershell 5 porque bueno seamos sinceros, estamos en 2020.

Parámetros

-ComputerName

Descripción: Esto especificará el ComputerName que le gustaría comprobar. Si no se especifica ComputerName, se comprobará el ordenador local.

-UserName

Description: Si el nombre de usuario especificado se encuentra conectado a una máquina, lo mostrará en la salida.

-LogOff

Descripción: Si se especifica el parámetro logoff, cerrará la sesión del usuario en el ordenador. Se recomienda ejecutar sin el interruptor de cierre de sesión para ver los resultados primero.

Cómo ejecutar el script Powershell Get Logged In User

Para ejecutar el script hay un par de cosas que necesita hacer. Primero y más importante, necesita establecer su política de ejecución a RemoteSigned o bypass. Esto es un estándar con la ejecución de cualquier script de Powershell.

Luego necesitas dot source el script ya que es una función. Para dot source el script haga lo siguiente:

  • Copie el script anterior y guárdelo en cualquier ubicación. En este ejemplo lo guardaré en mi carpeta C:\_Scripts.
  • Dentro de la ventana de Powershell escriba: . .\_Scripts\Get-LoggedInUser.ps1 – Tenga en cuenta los dos puntos antes de la barra invertida.

Obtener los usuarios registrados en equipos remotos

Lo mejor que me gusta de este script es su capacidad para obtener quién ha iniciado sesión en un equipo remoto. Esto mitiga la necesidad de entrar físicamente en el ordenador y comprobarlo así. Como este script de Powershell le permite consultar servidores y ordenadores remotos, lo hace altamente automatizable y muy escalable. Usando este script, puede comprobar 1 servidor o 1.000 servidores y sería la misma cantidad de esfuerzo para la persona que lo está ejecutando. Es impresionante y me encanta que puedas hacerlo todo desde tu propio ordenador con Windows 10.

También puedes encontrar dónde está conectado un usuario en un dominio muy fácilmente. Dependiendo de cuántas máquinas vas a estar iterando a través, obviamente puede tomar algún tiempo, pero se puede hacer. Aquí está un simple fragmento de código de cómo obtener donde un usuario está conectado a.

ErrorAction SilentlyContinue se utiliza para suprimir los errores de conexión y mostrar una salida limpia

Así que ahí lo tienen, una solución rápida y fácil a un problema que muchos administradores de TI han encontrado en su viaje sysadmin. Soy muy consciente de que también se puede hacer esto a través de la política de grupo si quería ir esa ruta, o usted puede hacer esto a través de alguna herramienta de interfaz gráfica de usuario, pero siempre me gusta conseguir mis manos sucias con Powershell.

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada.