Las aplicaciones de consola no funcionan en Powershell

Las aplicaciones de consola no funcionan en Powershell

Heredé una caja de Windows Server 2003 r2. Tengo un script de Powershell que necesitaría ejecutar en la máquina, pero algo parece terriblemente mal con el sistema. Por ejemplo, al abrir una consola Powershell e ingresar ipconfigse obtiene la siguiente respuesta:

The term 'ipconfig' is not recognized as a cmdlet, function, operable program, or script file.  Verify the term and try again.

Mi secuencia de comandos de Powershell intenta llamar a pscp.exe (desde el proyecto PuTTY) y aparece el mismo error que el anterior.

Mi primera sospecha fue que se trataba de un problema de ruta y, efectivamente, cuando abrí la ventana de variables de entorno, la PATHvariable ni siquiera existía. Así que lo creé y me aseguré de que el directorio que lo contenía pscpapareciera allí. Todavía no hay dados.

La ejecución de los mismos comandos (ipconfig o pscp) en cmd.exe funciona como se esperaba una vez que agregué algunas entradas básicas a la PATHvariable (%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;).

$env:pathen Powershell devuelve los valores de la PATHvariable, pero powershell aún no ejecutará programas que estén en esos directorios. get-host | select versiondevuelve 1.0.0.0.

¿Alguna pista?

Respuesta1

Parece que tu entorno está un poco desordenado. Aquí hay un par de pasos adicionales para la solución de problemas; con suerte, uno de ellos brindará más información útil:

Intente ejecutar el comando utilizando la ruta completa: c:\windows\system32\ipconfig.exe

Pruebe el cmdlet invoke-expression:

invoke-expression -command "ipconfig"  

o:

invoke-expression -command "c:\windows\system32\ipconfig.exe"  

Intente utilizar el proveedor de procesos .Net (no podrá ver los resultados de la llamada, pero le dará información al respecto que podría ser útil):

[System.Diagnostics.Process]::Start("c:\windows\system32\ipconfig.exe")

Respuesta2

Intente ejecutar powershell -NoProfiley ver si todo funciona. En ese caso. entonces tu problema es el script del perfil, con el que puedes editar notepad $profile.

Intente abrir una ventana de CMD y ejecútela ipconfigallí. Si funciona en CMD pero no en PowerShell, compare el entorno que se encuentra en cada uno. Probablemente, la forma más sencilla sea ejecutar seten CMD y ejecutar cmd.exe /C seten la ventana de PowerShell y comparar los resultados.

Respuesta3

Es un poco extraño ver su RUTA expresada en términos de otras variables de entorno. Me pregunto si eso podría estar haciendo que las cosas se vuelvan inestables.

Por ejemplo, esto es lo que esperaría ver en su variable PATH (suponiendo que C: sea su unidad de instalación principal):

PATH=C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;

información relacionada