Quiero que se ejecute un script de powershell una vez por minuto en segundo plano. No puede aparecer una ventana. ¿Cómo lo hago?Ejecutar un script de powershell en el fondo una vez por minuto
Respuesta
Utilice el Programador de tareas de Windows y ejecutar el script como el siguiente:
powershell -File myScript.ps1 -WindowStyle Hidden
crear Además, la secuencia de comandos que se ejecuta bajo una cuenta de usuario específico y no sólo cuando el usuario ha iniciado sesión en. De lo contrario, verá una ventana de consola.
Ahora, pero ¿cómo ejecuto PowerShell en segundo plano? – magol
@magol - ¿Cuánto más "fondo" necesita obtener? El planificador de tareas de Windows es cómo ejecutaría una tarea de "fondo" y, en este caso, la tarea sería iniciar PowerShell y ejecutar el script especificado. –
Bueno, para ser justos, la respuesta inicial no hubiera resultado en un proceso en segundo plano si el usuario actual es un administrador y no cambia la configuración predeterminada para la tarea. Sin embargo, permitir explícitamente que la tarea se ejecute independientemente del usuario que haya iniciado la sesión corrige eso. Hm. Mi script de prueba ejecutó 181 veces hasta ahora.Debería volver a desactivar esa tarea :-) – Joey
Quizás esta situación sea suficiente. No iniciamos PowerShell ejecutable cada minuto (esto es caro, por cierto). En cambio, lo iniciamos una vez llamando a un script adicional que llama al script de trabajo una vez por minuto (o realmente espera un minuto después de que el script de trabajo sale o falla).
Crear la puesta en Invoke-MyScript.ps1:
for(;;) {
try {
# invoke the worker script
C:\ROM\_110106_022745\MyScript.ps1
}
catch {
# do something with $_, log it, more likely
}
# wait for a minute
Start-Sleep 60
}
Ejecutar esto desde Cmd (por ejemplo, desde un inicio .bat):
start /min powershell -WindowStyle Hidden -Command C:\ROM\_110106_022745\Invoke-MyScript.ps1
Aparece la ventana de PowerShell por un momento, pero se minimiza debido a start /min
y en un momento se oculta para siempre. De modo que, en realidad, solo aparece el icono de la barra de tareas por un momento, no la ventana en sí. No es tan malo.
¡Estas respuestas son histericas! Si desea ejecutar un script de PowerShell como un trabajo en segundo plano tratan puesta en trabajo. \ Guión desde la CLI dentro de la carpeta en la que las secuencias de comandos en Casa.
Agenda tu tarea a ejecutar como Sistema. El comando de abajo programar una secuencia de comandos que se ejecutan en segundo plano sin mostrar ventana de la consola de PowerShell:
schtasks /create /tn myTask /tr "powershell -NoLogo -WindowStyle hidden -file myScript.ps1" /sc minute /mo 1 /ru System
/ru
interruptor le permite cambiar el contexto de usuario en la que se ejecutará la tarea programada.
Gracias Xemlock! En mi caso, tu sugerencia fue la única solución que no generó absolutamente ninguna ventana de PowerShell. – WebFixItMan
En la pestaña [General] en las propiedades del Programador de tareas para la tarea, seleccionar el botón "Ejecutar si el usuario está conectado o no" impide que la ventana aparezca en mi máquina con Windows 7.
Si desea ejecutar el script automáticamente en el intervalo de tiempo. (Para el sistema operativo Windows)
1) Open Schedule tasks from control panel.
2) Select Task Scheduler Library from left side window.
3) select Create Task from right side window.
4) Enter Name in General tab (any name).
5) Open Triggers tab -> New
6) Select interval as needed.Use Advanced settings for repeat task.
7) Open Actions tab ->New
8) Copy/Paste following line in Program/script *
* Here D:\B.ps1 in code is path to my B.ps1 file
C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe D: \ B.ps1
9) ok and apply changes
10) Done!
# Filecheck.ps1
# Version 1.0
# Use this to simply test for the existance of an input file... Servers.txt.
# I want to then call another script if the input file exists where the
# servers.txt is neded to the other script.
#
$workpath=".\Server1\Restart_Test"
# Created a functon that I could call as part of a loop.
function Filecheck
{
if (test-path $workpath\servers.txt)
{
rename-item $workpath\servers.txt servers1.txt
"Servers.txt exist... invoking an instance of your script agains the list of servers"
Invoke-Expression .\your_Script.ps1
}
Else
{
"sleeping"
Start-Sleep -Seconds 60
}
}
Do
{
Filecheck
$fred=0
# Needed to set a variabe that I could check in the while loop.
# Probably a better way but this was my way.
}
While($fred -lt 1)
- 1. Ejecutar un script PHP una vez por minuto
- 2. ¿Cómo ejecutar un script de PowerShell sin mostrar una ventana?
- 3. ¿Cómo ejecutar un script de PowerShell?
- 4. Ejecutar un script de PowerShell desde otro
- 5. Hacer script de PowerShell cmdlets ejecutar en el ámbito global
- 6. Ejecutar un archivo EXE utilizando un script de PowerShell
- 7. Ejecutar PowerShell-Script desde la aplicación C#
- 8. ¿Ejecutar un script de Greasemonkey solo una vez por carga de página?
- 9. Cómo ejecutar un script de PowerShell desde SSIS
- 10. Wix - instalar y ejecutar un script de powershell
- 11. Ejecutar archivo por lotes en el fondo
- 12. Cómo ejecutar un script de PowerShell desde Notepad ++
- 13. Script Bash para ejecutar el script php
- 14. Script de PowerShell en PostBuild
- 15. ¿Cómo ejecutar un script de powershell disponible en una máquina remota?
- 16. Obteniendo un forech para ejecutar una vez
- 17. Cómo ejecutar un script de PowerShell como un trabajo en Jenkins
- 18. ejecutando un script de Powershell desde php
- 19. ¿Cómo iniciar un script de shell en un minuto más tarde en Linux?
- 20. ejecutando el comando de shell en el fondo del script
- 21. Ejecutar scripts de PowerShell en PC remota
- 22. ¿Por qué no puedo ejecutar un comando con argumentos de una cadena en powershell?
- 23. ¿Cómo se puede establecer un límite de tiempo para ejecutar un script de PowerShell?
- 24. ¿Cómo ejecutar el script tcl en otro script tcl?
- 25. Run R script desde Powershell
- 26. ¿Ejecutar un script al desbloquear?
- 27. ¿Qué hace el script: do en powershell?
- 28. Powershell llamando al script de Powershell
- 29. Ejecutar script cada vez que se hace clic en el icono de extensión de Chrome
- 30. Obteniendo el nombre del script en Powershell
¿Conoce cómo crear una ¿tarea programada? – ghostdog74