Lanzar comandos DOS, Shell, Wscript.Shell
Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85217
Fecha de impresión: 26/Marzo/2026 a las 17:41
Tema: Lanzar comandos DOS, Shell, Wscript.Shell
Publicado por: Mihura
Asunto: Lanzar comandos DOS, Shell, Wscript.Shell
Fecha de publicación: 26/Abril/2020 a las 20:39
|
Tengo un problema bastante curioso con Shell, creo que se cuál es el problema pero no encuentro el camino para solucionarlo.
El propósito es controlar los usuarios que se conectan en remoto a un servidor y poder 'cerrarles' la sesión desde un programa en Access cuando en vez de cerrar la sesión se desconectan quedando la sesión abierta y el programa de Access que están ejecutando también, con lo que impiden el mantenimiento de las BD y aplicaciones.
Soy capaz de averiguar mediante el comando QUERY SESSION que usuarios figuran en el servidor y no están conectados:
C:\Users\JESUS>query session NOMBRE DE SESIÓN NOMBRE DE USUARIO ID ESTADO TIPO DISPOSITIVO services 0 Desc >console JESUS 1 Activo rdp-tcp 65536 Escuchar
Y despues puedo cerrarlos con:
C:\Users\JESUS\Logoff 1
Hasta ahí todo bien, en el caso del comando QUERY puedo guardar los datos en un txt y explotarlo después desde Access.
C:\Users\JESUS>query session >C:\Temp\Datos.txt
Nota: estos comandos funcionan perfectamente tanto con el CMD como con el POWERSHELL
El problema viene cuando quiero hacerlo desde Access:
- El primer camino es lanzarlo mediante un Shell:
Shell "query session >c:\temp\Datos.txt"
|
dice que archivo no encontrado
- probando con Wscript.Shell:
Dim oWsCript As Object Set oWsCript = CreateObject("WScript.Shell") oWsCript.Run "query session >c:\temp\datos.txt" Set oWsCript = Nothing
|
dice que error en método Run
- El segundo camino es crearme un bat con lo que necesito y lanzar el bat:
El fichero .bat contiene una única línea: query session >C:\temp\datos.txt si lo ejecuto desde windows hace lo que debe y obtiene el fichero con los datos que busco si lo lanzo desde Access:
Shell "c:\temp\1.bat"
o bien
Dim oWsCript As Object Set oWsCript = CreateObject("WScript.Shell") oWsCript.Run "c:\temp\1.bat" Set oWsCript = Nothing
|
aparentemente funciona (tanto con Shell como con Wscript.Shell, obtiene el fichero de salida, pero en blanco
- Intento lanzarlo con cmd.exe (con el modificador /k para que se quede abierto)
Shell "cmd.exe /k query session >c:\temp\Datos.txt"
|
la respuesta es: "query" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. lo mismo ocurre si lanzo el .bat el resultado es el mismo si en vez de cmd.exe utilizo el powershell
De todas formas aquí salta la pista importante (o eso creo), en la ventana cmd abierta ejecuto el comando QUERY SESSION manualmente y me da el mismo error (comando que en una ventana CMD abierta desde windows funciona perfectamente).
Buscando por la nube encuentro que DIR que es un comando que funciona perfectamente con los métodos anteriormente descritos es un comando de DOS, en cambio QUERY SESSION es un comando de windows, por lo que entiendo que el problema radica en que la ventana que se abre desde windows con CMD es capaz de ejecutar comandos de los dos entornos, en cambio la ventana abierta desde programa -ya sea Shell, Wscript.Shell o Powershell- sólo es capaz de ejecutar comandos DOS.
El punto dónde me he quedado es cómo lanzar un comando windows desde Access, no encuentro ninguna referencia, todo lo que encuentro me dirige a Shell y Wscript.Shell.
¿Ideas?.
Gracias por leer el tocho que he soltado.
https://www.abrirllave.com/cmd/comandos.php" rel="nofollow - comandos CMD https://docs.microsoft.com/es-es/windows-server/administration/windows-commands/windows-commands" rel="nofollow - Comandos de windows
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Respuestas:
Publicado por: javier.mil
Fecha de publicación: 26/Abril/2020 a las 23:00
Jesus , en la WEB de Buho encontraras ejemplos de como controlar los usuarios , como desconectarlos , controlar tiempos de inactividad etc etc.... ,....... quizás sea lo mas rápido para salir del atasco ,...... pero si prefieres seguir mediante Shell , Dos , Bat etc... eso ya es otra historia ........
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Publicado por: javier.mil
Fecha de publicación: 26/Abril/2020 a las 23:11
[Topico:39] ¿Es posible conocer los usuarios que se encuentran conectados a una MDB concreta? Usuarios conectados Las palabras claves de búsqueda son: usuarios conectados mdb access numero ejemplos
[Topico:219] Unas buenas funciones donde se explica detalladamente como conectar con una MDb dese Sql Server, Ado, Dao, crear recordset's con Ado, Dao...no te pierdas este fichero Ver Funciones Las palabras claves de búsqueda son: conectar sql server dao ado access funciones
[Topico:523] Una API para conectarse a una undiad de RED Ver codigo Las palabras claves de búsqueda son: access api conectar disco unidad red lan
[Topico:598] Conexión a una base de datos de Vsual Fox Jairo Hernandez Las palabras claves de búsqueda son: access conectar base datos fox visual ado
[Topico:792] Ejemplo del Búho para Access 2000, desde el cual, podrás desconectar a usuarios que en un momentos dado estén utilizando el módulo de datos de servicio de una determinada aplicación. Dentro del ejemplo hay un fichero de texto, que es conveniente que leas para que todo funcione bien. Es un ejemplo hecho muy rápido, así que no descarto que tenga algún error. De ser así, por favor, comunícamelo. He utilizado en una de las MDB que acompañan a este ejemplo, parte de un código extraído de una aplicación que muestra los usuarios activos en un momento dado Bajarse Ejemplo Las palabras claves de búsqueda son: access usuarios red desconectar seguridad proteger proteccion ejemplos
[Topico:969] Para saber si estamos conectados a Internet Ver Código Las palabras claves de búsqueda son: access api internet conectados conexión
[Topico:1035] Una forma de saber si estamos conectados a internet Ver Código Las palabras claves de búsqueda son: access internet conexion conectados
[Topico:1131] Exposicion de Ricarado Hernandez sobre recordset desconectados y de cómo agilizar el resultado de mostrar registros Ver Código Las palabras claves de búsqueda son: access ado dao recordsets desconectados lentitud agilidad
[Topico:1275] Ejemplo Búho: Conexión Internet-> Un sencillo ejemplo para decirnos en el PC que corre el código, qué tipo de conexión a Internet tenemos (MODEM, Adls etc) además de decirnos si en esos momentos estamos On-Line. Sencillo pero práctico. Este ejemplo «solo» funciona para Access 2000 o superior.(Octubre de 2004). Ver Código Las palabras claves de búsqueda son: access internet modem conexion api adsl conectados ejemplos
[Topico:1305] Usuarios conectados (De nuevo al ataque) -> D. Emilio, en el foro de nuestra web, ha preparado un ejemplo en el cual dice: «Este ejemplo, pretende mostrar como forzar el cierre de las aplicaciones "cliente" o "Front-end" desde el "Back-end".El Back-End cuenta con una tabla "Config", que a su vez, entre otros, tiene un campo "Cerrar" tipo Si/No y que será únicamente controlado por el Administrador. El Front-End chequea periódicamente el estado de ese campo y en caso de que esté a "Sí", avisa al usuario de que debe cerrar; al cabo de un nuevo ciclo del temporizador, si el usuario no ha cerrado todavía la aplicación, cierra todos los formularios y la aplicación. Así mismo también permite realizar un cierre programado de la aplicación a una hora predeterminada, para por ejemplo realizar un compactado de la misma.» Bueno, pues el ejemplo de Emilio te le puedes bajar de aquí: Ver Código Las palabras claves de búsqueda son: access usuarios conectados desconectar mantenimiento ejemplos
[Topico:1306] D. Emilio, en el foro de nuestra web, ha preparado un ejemplo en el cual dice: «Este ejemplo, pretende mostrar como forzar el cierre de las aplicaciones "cliente" o "Front-end" desde el "Back-end".El Back-End cuenta con una tabla "Config", que a su vez, entre otros, tiene un campo "Cerrar" tipo Si/No y que será únicamente controlado por el Administrador. El Front-End chequea periódicamente el estado de ese campo y en caso de que esté a "Sí", avisa al usuario de que debe cerrar; al cabo de un nuevo ciclo del temporizador, si el usuario no ha cerrado todavía la aplicación, cierra todos los formularios y la aplicación. Así mismo también permite realizar un cierre programado de la aplicación a una hora predeterminada, para por ejemplo realizar un compactado de la misma.» Así mismo, el rata del Búho tenía otro parecido, que hice hace tiempo, pero que le faltaba una mano de pintura bien dada y un lavado de cara. Y Emilio me animó a re hacerle de nuevo, por que no sé si te habías enterado todavía, pero el Búho es un envidioso de mucho cuidado :-P Pues aquí también te puedes bajar el ejemplo de Búho rejuvenecido (El ejemplo, no el Búho). EJEMPLO BUHO Estos ejemplos «solo» funcionan para Access 2000 o superior (El del Búho, además, algunas de sus rutinas necesitan tener Windows XP o Windows 2000 instalado (! Se siente !) (Enero de 2005, en plena cuesta del Ídem). Ver Código Las palabras claves de búsqueda son: access usuarios conectados desconectar mantenimiento ejemplos
[Topico:1351] Bueno aquí tenemos un ejemplo de como saber los usuarios conectados a una MDB. Utiliza una DLL. Tanto Emilio como Buho, creo que hemos resuelto este tema de una forma mas eficiente y sencilla sin necesidad de recursos externos, como es el caso de este ejemplo, que utiliza una DLL. Los ejemplos de Emilio y Buho les podrás ver en nuestra web. (Sección Novedades o bien a través del buscador) Ver Código Las palabras claves de búsqueda son: access ejemplos usuarios conectados dll
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Publicado por: Mihura
Fecha de publicación: 27/Abril/2020 a las 01:00
|
Gracias Javier,
Me has puesto unos cuantos ejemplos, - como saber los usuarios conectados a una aplicación ya lo conocía, ... y de hecho lo uso en este proceso para saber quién tiene 'cazada' la aplicación - los ejemplos para desconectar a los usuarios son básicamente el mismo, control desde el front de un parámetro en el back, y si existe cerrar el programa, pero no es aplicable aquí, ya que estamos hablando de bastantes aplicaciones distintas y que no se quieren tocar - como conectar con una BD con ADO, DAO, crear recordsets con ADO, DAO ... no tiene que ver mucho con lo planteado - una API para conectar a una unidad de red ¿? - ¿conectarme a una BD de FOXPRO? - ¿saber si estoy conectado a internet? - ¿recordsets desconectados? - ¿saber si estoy conectado a internet con un MODEM o ADSL? - ... No comprendo que tienen que ver con lo preguntado.
En principio es posible que resuelva el tema con un script vbs, pero de todas formas lo principal es saber como lanzar desde Access esos comandos que podemos utilizar en una pantalla de CMD o POWERSHELL.
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: Dabellaso
Fecha de publicación: 27/Abril/2020 a las 02:17
|
Desde mi total ignorancia, anduve mirando e hice esto:
Dim x As Variant x = Shell("POWERSHELL.exe query user >c:\Temp\datos.txt", vbNormalFocus)
En PowerShell funciona bien, pero en Access me sale un aviso de código malicioso en macro y sin dejarme otra opción sale de Access.
Lo digo, porque a lo mejor tu que sabes más de esto, quizás puedas controlar la seguridad de las macros de modo que te permita ejecutarlo, al menos puntualmente
Sólo respondí porque mi error era diferente a los tuyos, por si te servía de algo
Sorry pero no doy para más
Edito: En PowerShell funciona bien, siempre y cuando la ruta ya exista previamente, el archivo .txt lo genera y lo rellena, pero si la ruta no existe, da error
Edito Otra vez
He metido ese código en una función, habiendo habilitado en el centro de confianza la carpeta donde está la base de datos y funciona.
Supongo que el secreto está en incluir la base de datos como de confianza para que el antivirus no de la lata
Public Function ComandoCMD() As Variant
Dim x As Variant x = Shell("POWERSHELL.exe query user >c:\Temp\datos.txt", vbNormalFocus)
End Function
|
------------- El saber no ocupa lugar, sólo tiempo
|
Publicado por: Mihura
Fecha de publicación: 27/Abril/2020 a las 09:37
|
Dabellaso,
Lo primero gracias por el interés.
La función que pones a mi me funciona (exista o no exista el fichero destino datos.txt) con una función DOS (por ejemplo DIR), pero si le pongo la funcion query user o query session no me da error, pero ni siquiera me genera el fichero de salida. ¿A ti te ha funcionado?
Yo uso W10-PRO + Office 2010.
P.D. Si abro manualmente una ventana de PowerShell (o CMD) y lanzo la función si que trabaja correctamente.
P.D.1. Entra en las opciones de Access -> Centro de confianza -> configuración centro de confianza. Ahí tienes las distintas opciones que puedes cambiar, entre ellas el nivel de ejecución de macros.
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: Cont@BOT
Fecha de publicación: 27/Abril/2020 a las 10:13
|
Creo que esto puede ayudar
Public Function Ejecuta_Cmd() As String Dim Cadena As String Dim oShell As Object
'Creas el fichero bat o cmd o powershell... Cadena = "@ECHO OFF" Cadena = Cadena & vbCrLf & "Query User"
Open Application.CurrentProject.Path & "\Ejecuta.cmd" For Output As #3 Print #3, Cadena Close #3
Cadena = ""
'Ejecutas el fichero Set oShell = CreateObject("WScript.Shell") 'Utilizas Exec en vez de Run, y además lees la salida de la consola Cadena = oShell.Exec("""" & Application.CurrentProject.Path & "\Ejecuta.cmd""").StdOut.ReadAll Set oShell = Nothing 'Borras el fichero creado Kill Application.CurrentProject.Path & "\Ejecuta.cmd" 'Aquí ya haces lo que quieras con Cadena para obtener lo que quieres Ejecuta_Cmd = Cadena End Function
------------- Cont@BOT IA para PYMES
|
Publicado por: Mihura
Fecha de publicación: 27/Abril/2020 a las 10:31
Don Juan Carlos, .... bienvenido a esta jaula de grillos .
Muchas gracias por el interés, lo que apuntas me suena a variante de una de las muchas pruebas que llevo hechas, al fin y al cabo te creas un bat (o un cmd) y lo ejecutas desde un Shell.
Porque ..... ¿a ti te funciona con query user? a mi no, si pongo como función dir (Cadena = Cadena & vbCrLf & "dir") va como un tiro, pero la que yo busco no va ... 
Un saludo y cuidaín con el bichito. 
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: Dabellaso
Fecha de publicación: 27/Abril/2020 a las 10:55
Mihura escribió:
Dabellaso,Lo primero gracias por el interés. |
Que menos!, gracias a ti por todo
Mihura escribió:
Dabellaso,La función que pones a mi me funciona (exista o no exista el fichero destino datos.txt) con una función DOS (por ejemplo DIR), pero si le pongo la funcion query user o query session no me da error, pero ni siquiera me genera el fichero de salida. ¿A ti te ha funcionado?
Yo uso W10-PRO + Office 2010.
|
Yo uso Win10-PRO + Office 2019
Con lo que expuse se me abre la ventana de Windows Power shell (La que tiene fondo azul, no el cmd que tiene fondo negro) y tras un momento se cierra, después fui a la carpeta indicada y efectivamente hay estaba el archivo con los datos.
Modifique el contenido del txt y volví a repetir para ver si sobrescribía el fichero, y si, lo hace
Era muy tarde y no hice muchas pruebas, me pondré en un rato, pero lo que si pude constatar es que como te indiqué, el archivo .txt no es necesario que exista ya que lo genera, pero la ruta de carpeta si debe existir antes, de otro modo me daba error. (Eso lo probé desde el PowerShell no desde Access, y era PowerShell quien se quejaba de ruta no encontrada)
Lo del tema de la seguridad de macros tampoco lo probé mucho, sólo metí la base de datos en una carpeta de confianza y funcionó. Hice una ultima prueba después de saber que funcionaba sacándola nuevamente de esa carpeta y me volvió el aviso del antivirus. y así quedo ayer.
Acabo de probarlo otra vez y me sigue funcionando. Seguiré haciendo pruebas , y mirando los valores que devuelve Shell. Si descubro algo te digo. Si de alguna manera te puedo ayudar para descubrir porque me funciona a mi y a ti no me dices que hacer
saludos
Edito. si me indias como obtenerlo, te digo la versión del Powershell, que como ya te digo es la primera vez que trasteo con el
------------- El saber no ocupa lugar, sólo tiempo
|
Publicado por: javier.mil
Fecha de publicación: 27/Abril/2020 a las 11:02
Mihura escribió:
No comprendo que tienen que ver con lo preguntado.
|
Al hacer la búsqueda dentro de la WEB de Buho me aparecieron todos esos resultados , ........ Ya vi que muchos resultados No se ajustaban a lo que pedías, simplemente hice un copia y pega de todo.
------------- https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info
|
Publicado por: Mihura
Fecha de publicación: 27/Abril/2020 a las 11:23
|
Veamos, que se va viendo luz al final de este túnel ...
El problema es el entorno en el que se ejecuta, mirando con Cont@bot el porqué a él si le funciona y a mí no, al ponernos a analizar tema de antivirus, firewall, permisos de usuario, resulta que él lo ha ejecutado en un ordenador con Windows Server, he hecho la prueba en un equipo que tiene Windows Server + Office 2010 y me ha funcionado, en cambio en otro equipo 'servidor' con W7-Pro + Office 2010 no ha funcionado.
Dabellaso, dices que a ti te funciona con W10-PRO + Office 2019 luego la versión de office puede ser también otra clave, voy a probar con W10 + Office 2016 (en una maquina virtual) a ver que pasa.
Ed. W10 + Office 2016 funciona la rutina propuesta por Cont@bot
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: Mihura
Fecha de publicación: 27/Abril/2020 a las 12:15
|
Visto lo visto,
¿a alguien se le ocurre como atacar el problema desde Access por otro camino distinto?
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: pitxiku
Fecha de publicación: 28/Abril/2020 a las 17:47
Has probado con WMI?
- https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logonsession
|
Publicado por: Mihura
Fecha de publicación: 28/Abril/2020 a las 17:54
Ahí es justo dónde estamos, pero casca con W7 ... 
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: pitxiku
Fecha de publicación: 29/Abril/2020 a las 14:30
Esto está probado en Win7+Access 2013. Otra cosa será si sirve realmente, no tengo posibilidad de probar nada en ningún servidor, y a este equipo y mi usuario le han "capado" casi todo:
Function test1() Dim objWmi As Object 'Objeto WMI Dim colAccesos As Object 'Colección de accesos Dim objAcceso As Object 'Cada uno de los accesos Dim objCuenta As Object 'Cuenta que se está usando Dim objSesion As Object 'Datos de la sesión Set objWmi = GetObject("WINMGMTS:\\.\ROOT\cimv2") Set colAccesos = objWmi.InstancesOf("Win32_LoggedOnUser", 1) For Each objAcceso In colAccesos With objAcceso 'Datos de la cuenta Debug.Print .Antecedent Set objCuenta = GetObject("WINMGMTS:" & .Antecedent) 'Datos de la sesión Debug.Print .Dependent Set objSesion = GetObject("WINMGMTS:" & .Dependent) End With With objCuenta Debug.Print " Caption="; .Caption, Debug.Print " Description="; .Description, Debug.Print " Domain="; .Domain, Debug.Print " InstallDate="; .InstallDate, Debug.Print " LocalAccount="; .LocalAccount, Debug.Print " Name="; .Name, Debug.Print " SID="; .SID, Debug.Print " SIDType="; .SIDType, Debug.Print " Status="; .Status End With Debug.Print With objSesion Debug.Print " Caption="; .Caption, Debug.Print " Description="; .Description, Debug.Print " InstallDate="; .InstallDate, Debug.Print " Name="; .Name, Debug.Print " Status="; .Status, Debug.Print " StartTime="; .StartTime, Debug.Print " AuthenticationPackage="; .AuthenticationPackage, Debug.Print " LogonId="; .LogonId, Debug.Print " LogonType="; .LogonType End With Debug.Print "=============================================================" Next End Function
| ~
|
Publicado por: Mihura
Fecha de publicación: 29/Abril/2020 a las 15:32
|
Hola pitxiku
Esto que posteas si que funciona (por lo menos no revienta) pero la información que muestra no es la estoy buscando, curiosamente ni siquiera la muestra toda ... (está ejecutado en W7 + Office 2.010).
El comando Query Session me muestra esto:
NOMBRE DE SESIàN NOMBRE DE USUARIO ID ESTADO TIPO DISPOSITIVO services 0 Desc console 4 Conn rdp-tcp#4 xxxxx 19 Activo rdpwd Administrador 29 Desc rdp-tcp#3 xxxx 31 Activo rdpwd rdp-tcp#5 xxxx 38 Activo rdpwd xxxx 66 Desc xxxx 68 Desc xxxx 69 Desc rdp-tcp#0 xxxx 73 Activo rdpwd >rdp-tcp#6 JMANSILLA 76 Activo rdpwd rdp-tcp#7 xxxx 79 Activo rdpwd rdp-tcp#1 xxxx 97 Activo rdpwd rdp-tcp#2 xxxx 98 Activo rdpwd xxxx 100 Desc xxxx 101 Desc xxxx 104 Desc rdp-tcp 65536 Escuchar
Y la función solo me muestra 'mis datos' (por duplicado):
\\.\root\cimv2:Win32_Account.Domain="XXXXX-SRV",Name="JMANSILLA" \\.\root\cimv2:Win32_LogonSession.LogonId="8969596520" Caption=XXXXX-SRV\JMANSILLA Description=Informàtic Madrid Domain=XXXXX-SRV InstallDate=Nulo LocalAccount=Verdadero Name=JMANSILLA SID=S-1-5-21-1826242476-1709014929-1514121236-1051 SIDType= 1 Status=OK
Caption=Nulo Description=Nulo InstallDate=Nulo Name=Nulo Status=Nulo StartTime=20200429151334.292792+120 AuthenticationPackage=NTLM LogonId=8969596520 LogonType= 10 ============================================================= \\.\root\cimv2:Win32_Account.Domain="XXXXX-SRV",Name="JMANSILLA" \\.\root\cimv2:Win32_LogonSession.LogonId="8969596497" Caption=XXXXX-SRV\JMANSILLA Description=Informàtic Madrid Domain=XXXXX-SRV InstallDate=Nulo LocalAccount=Verdadero Name=JMANSILLA SID=S-1-5-21-1826242476-1709014929-1514121236-1051 SIDType= 1 Status=OK
Caption=Nulo Description=Nulo InstallDate=Nulo Name=Nulo Status=Nulo StartTime=20200429151334.291792+120 AuthenticationPackage=NTLM LogonId=8969596497 LogonType= 10 =============================================================
Me da que solo encuentra el entorno en el que está, en este caso la sesión de escritorio remoto activa.
Seguimos buscando, aunque ya dejó de urgir el tema.
... por cierto te debo una Lasaña (te sigue gustando ... ein?? )
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
Publicado por: pitxiku
Fecha de publicación: 02/Mayo/2020 a las 16:58
He estado revisando el Wmi a ver si encontraba algo, pero nada de lo encontrado devuelve la información que da el comando query session 
Si quieres seguir investigando, el Wmi Code Creator es una buena ayuda para crear las sentencias:
- https://www.microsoft.com/en-us/download/details.aspx?id=8572
Siento no ser de más ayuda. Y sí, aún le damos a la lasaña
|
Publicado por: Mihura
Fecha de publicación: 02/Mayo/2020 a las 17:23
Muchas zenkius, estaba a punto de escribir el post dónde tiro la toalla ... .
Se me pasó por la cabeza lanzar todo desde un bat, ... - el comando query sessión - ver si se puede explotar ese fichero directamente desde el bat - si se puede hacerlo - si no se puede lanzar un programa (access por supuesto) que me prepare los números de id de sesion a desconectar - desconectar esas sesiones (logoff) desde el programa o desde el bat
Probé a lanzar el comando Logoff desde access y me ocurrió lo mismo en W10 + Off2010 no lo reconoce, en W10 + Off2016 si que trabaja bien.
Es decir, en el entorno del cliente no va a trabajar, y crear lo del bat (o con wmi) habrá que hablar con el cliente, que al fin y al cabo es el pagano.
Para facilitarle la tarea, le creé un bat que le muestra los que tiene que desconectar, y le recuerda el comando de desconexión, con lo que ahora hace a mano, lo ve más fácil, .... ya veremos, que dijo un ciego.
Un saludo .. y me apunto la lasaña y un par de cervezas  .
ED. Muy bueno el WMI creator.
------------- Jesús Mansilla Castells. Saludos desde Móstoles.
http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones http://www.tecsys.es" rel="nofollow - Tecsys.es
|
|