¿Por qué funciona la ejecución del script de Powershell línea por línea, pero no lo mismo a través de la ejecución del archivo de script?

¿Por qué funciona la ejecución del script de Powershell línea por línea, pero no lo mismo a través de la ejecución del archivo de script?

En Windows 7 Prof, ejecutar en Windows Powershell_ISE (como administrador) los comandos de Powershell (ver. 3) produce el resultado esperado (de agregar un usuario de dominio al grupo de administradores local/de máquina), pero ejecutarlo desde un archivo script .ps1 en la carpeta C:\Users\myDomainUser\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupno lo hace. !?

$objGroup = [ADSI]("WinNT://myComputerName/Администраторы")'Administrators in Russian
$objUser = [ADSI]("WinNT://myDomainName/myDomainUser")
$objGroup.PSBase.Invoke("Add", $objUser.PSBase.Path)

¿Por qué?
¿Cómo agregar mejor un usuario de dominio al grupo de administradores locales al reiniciar Windows 7?

Respuesta1

Por razones de seguridad (y además de la política de ejecución de scripts), Microsoft ha configurado los archivos .ps1 para que se abran usando el bloc de notas. (Microsoft tonto.) Las tareas programadas pueden ser una mejor solución, pero si desea iniciar el script desde la carpeta de inicio, le recomendaría colocar un acceso directo al script en el inicio y almacenarlo en otro lugar. Utilizo atajos que se parecen a esto:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file "C:\Scripts\Powershell\Tool.ps1"

Si utiliza esta sintaxis, tenga en cuenta que cualquier opción adicional que desee pasar a PowerShell debe ir antes de la opción -file. Todo lo que esté después del archivo - se interpreta como la ruta al script o como una opción/argumento que se pasará al script.

Respuesta2

Quizás quieras intentar ejecutarlo usando el programador de tareas.

Inicie el programador de tareas (menú inicio, todos los programas, accesorios, herramientas del sistema, programador de tareas). En el panel derecho, seleccione "crear tarea". Introduzca un nombre para la tarea. Cambia el usuario si quieres. Seleccione "ejecutar con los privilegios más altos". En la pestaña de activadores, cree un activador para "al iniciar sesión" o "al iniciar", según lo que desee. En la pestaña de acciones, cree una nueva acción que apunte al script.

información relacionada