es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecución de SQL Server con herramienta de línea de comandos devuelve información de campo faltante.

Quiero ejecutar una utilidad de línea de comandos utilizando xp_cmdshell y devolver los resultados en formato CSV para procesar en una tabla de SQL Server.

La línea de comando con las opciones/parámetros es:

shell
tasklist /v /FO:CSV

La línea de script de SQL es:

sql
EXEC xp_cmdshell ‘tasklist /v /FO:CSV’

Los nombres de columna devueltos son:

none
Image Name, PID, Session Name, Session#, Mem Usage, Status, User Name, CPU Time, Window Title

Es importante para mí obtener la información de “Window Title”, pero el título de la ventana siempre devuelve “N/A” cuando ejecuto la línea de comando utilizando xp_cmdshell. Cuando ejecuto el código directamente en el símbolo del sistema de Windows (cmd.exe), devuelve la información de “Window Title” que necesito.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en SQL Server, T-SQL, cmd, herramienta de línea de comandos y xp_cmdshell, es posible ejecutar una utilidad de línea de comandos utilizando xp_cmdshell y devolver los resultados en formato CSV para procesarlos en una tabla de SQL Server. Un ejemplo de línea de comandos con opciones/parámetros es tasklist /v /FO:CSV, que se ejecutaría en un script de SQL de la siguiente manera:

    EXEC xp_cmdshell 'tasklist /v /FO:CSV'
    

    Sin embargo, al ejecutar esta línea de comandos a través de xp_cmdshell, la información de “Window Title” siempre devuelve “N/A”. En cambio, cuando se ejecuta el código directamente en el símbolo del sistema de Windows (cmd.exe), devuelve la información de “Window Title” requerida.

    Una posible explicación es que la cuenta de servicio de SQL Server puede no tener suficientes privilegios para recuperar la información de “Window Title”. Para resolver el problema, podrías intentar ejecutar SQL Server con una cuenta diferente que tenga los privilegios necesarios o ajustar los permisos de la cuenta para el servicio.

    Otra posible explicación es que la información de “Window Title” puede no ser aplicable o no estar disponible en el contexto de la ejecución de xp_cmdshell. Para confirmar esta hipótesis, podrías intentar ejecutar la misma línea de comandos con diferentes opciones o parámetros que puedan afectar el comportamiento de la utilidad tasklist con respecto a la información de “Window Title”. Además, podrías explorar otras utilidades de línea de comandos o métodos para recuperar la información deseada en un formato compatible con SQL Server.

Comments are closed.