Script de inicio de sesión de Powershell, ¿es posible mostrar el diálogo al usuario o leer alguna entrada del usuario?

Entonces, ¿es posible?

Necesito obtener alguna credencial de usuario para asignar ciertos recursos compartidos de red. Este recurso compartido no es parte de nuestro dominio y cada usuario tiene diferentes credenciales.

EDITAR

El script funciona bien si lo ejecuto desde la consola de PowerShell. El problema es que no muestra ningún mensaje o dialgo cuando lo uso como un script de inicio de sesión. Cuando inicio sesión en el escritorio, la secuencia de comandos se inicia, porque escribe un registro de depuración, pero no muestra ningún cuadro de diálogo ni solicita al usuario que ingrese.

preguntado el 08 de noviembre de 11 a las 12:11

No está especificando cómo inicia la secuencia de comandos de inicio de sesión. Me parece que estás usando VBS para ejecutar la consola de PowerShell oculta (no puedes ocultar una consola de PowerShell con PowerShell). Si ese es el caso, debe modificar el código VBS para mostrarlo. -

No estoy usando VBS para iniciar Powershell. Simplemente uso la configuración de la política de grupo, en win 2008r2 tiene la opción de usar el script de PowerShell, en lugar de cmd o vbs. -

4 Respuestas

En tu GPO habilitar la siguiente configuración: "Ejecutar secuencias de comandos de inicio de sesión visibles" para asegurarse de que la secuencia de comandos de inicio de sesión esté visible. Lo puedes encontrar debajo Configuración de usuario \ Plantillas administrativas \ Sistema \ Scripts

respondido 17 nov., 11:14

Tengo una pregunta más si lo sabes. Estaba usando ISE para el desarrollo de la secuencia de comandos y aparecen ventanas emergentes agradables para la entrada del usuario, pero en el momento del inicio de sesión solo hay una ventana de consola. ¿Es posible obtener la misma GUI para el script de inicio de sesión? - Primoz

En 2012 R2, el nombre de la configuración se muestra como "Mostrar instrucciones en los scripts de inicio de sesión mientras se ejecutan". - Shadymilkman01

PowerShell tiene un cmdlet Get-Credential que se puede usar para solicitar el nombre de usuario / contraseña. Para obtener detalles y ejemplos, Get-Help Get-Credential -Full en PowerShell.

respondido 08 nov., 11:16

No fui lo suficientemente explícito. Sé que este cmdlet y este script funcionan bien si lo ejecuto desde la consola de PowerShell. El problema es que no muestra ningún mensaje o dialgo cuando lo uso como un script de inicio de sesión. Cuando inicio sesión en el escritorio, la secuencia de comandos se inicia, porque escribe un registro de depuración, pero no muestra ningún cuadro de diálogo ni solicita al usuario que ingrese. - Primoz

Me temo que nunca ejecuté un script de PowerShell como script de inicio de sesión, así que no conozco las diferencias. Puede probar los métodos $ host.UI.Prompt o $ host.UI.PromptForCredential, ver si se comportan de manera diferente, aunque sospecho que no. ¿Puede obtener un mensaje con un script de DOS normal? - MrKWatkins

¿Cómo se puede obtener un mensaje con el script de DOS? - Primoz

No tengo idea para ser honesto, solo pensé que si supiera que podríamos convertirlo a PowerShell o detectar el problema ... Presumiblemente, es algo que tiene que ver con cuando se ejecuta el script. ¿Está disponible el escritorio del usuario cuando se ejecuta el script? - MrKWatkins

Funcionó para mí. Mostraba la solicitud de credenciales. A continuación está mi guión:

"test" | out-file -append C:\test.log
$cred = get-credential
$cred.username | out-file -append C:\test.log

Configuración del script de inicio de sesión:

gpedit.msc -> Configuración de usuario -> Configuración de Windows -> Scripts -> Inicio de sesión -> Elija la pestaña de scripts de Powershell -> Agregar e ingrese la ruta al script

Captura de pantalla:

enter image description here

respondido 09 nov., 11:02

Esto es exactamente lo que hago y no me funciona :( Si agrego la columna "línea de comando" en el administrador de tareas, veo que el proceso de PowerShell se inicia con los parámetros -ExecutionPolicy ByPass y -File MapNetDrives.ps1 - Primoz

@Primoz - ¿Cuál es tu guión exacto? - manojlds

Probé tu breve ejemplo y tampoco me funciona. Parece que es algo diferente en mi entorno. - Primoz

Incluso si cometo un error intencional en el código, como escribir en C: \ (que no está permitido para los usuarios), no veré ningún error. También verifiqué que el proceso de PS al iniciar sesión se ejecuta en la cuenta correcta. - Primoz

Nunca configuré GP de esta manera para ejecutar scripts de inicio de sesión, así que no estoy seguro de esto ... Si ejecuta un CMD arbitrario como ipconfig, ¿aparecerá la ventana de la consola como espera que PowerShell lo haga?

Si es así, en lugar de utilizar el mecanismo de secuencia de comandos de PowerShell integrado, puede llamar a una línea CMD o .bat que luego llama a la secuencia de comandos de PowerShell: powershell.exe -noexit -command "& 'path \ to \ logonscript.ps1'"

respondido 20 nov., 11:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.