Question automatiser un script

Plus d'informations
il y a 17 ans 4 mois #3157 par steph_d
automatiser un script a été créé par steph_d
Bonjour

Je souhaiterai automatiser l'exécution d'une tâche via le planificateur. Ce qui me gène c'est le délai d'ouverture de la fenêtre PS pour pouvoir ensuite exécuter le script.
Y'aurait-il un moyen de laisser une fenêtre active pour gagner du temps ?
La seule solution est celle pour accélérer l'ouverture de la fenêtre PS ?

Des avis ?

L'automatisation sera toutes les 2-3 minutes à priori.

Merci
Stephane

@+ Steph

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 4 mois #3158 par Grégory
Réponse de Grégory sur le sujet Re:automatiser un script
tu peux très bien garder ta fenêtre powershell active et utiliser :

[code:1]start-sleep -s 300[/code:1]

j'utilise ça avec une boucle pour exécuter un script toutes les 5 min

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 4 mois #3160 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:automatiser un script
Salut,

Pour améliorer le temps de lancement de PowerShell, regarde ce lien que j'avais publié il y a quelque temps déjà.

Sache aussi qu'à partir du moment où PowerShell a été lancé, la fois suivante le lancement est quasi instantané.

L'automatisation sera toutes les 2-3 minutes à priori.


Peut être qu'un service serait plus approprié qu'une tâche planifiée. A quoi sert ton script ?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 4 mois #3161 par steph_d
Réponse de steph_d sur le sujet Re:automatiser un script
Salut Arnaud

J'utilise déjà ton lien mais comme je comprends pas encore ce qu'il fait je l'utilise que sur mon PC. C'est sûr que ca fonctionne plus vite. D'ailleurs peut-être pourrais-tu expliquer qui fait quoi la dedans sur la page du lien ?
Bref, le script va extraire des données depuis un as/400, mettre çà en CSV pour un autre logiciel. il récupérera aussi des données en CSV à réintégrer dans l'AS/400. Le tout à intervalle très régulier.

Stephane - merci

@+ Steph

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 4 mois #3166 par Robin Lemesle
Réponse de Robin Lemesle sur le sujet Re:automatiser un script
Cette astuce est bien plus qu'une simple bidouille, elle est même recommandée par la Team des développeurs PowerShell

blogs.msdn.com/powershell/archive/2008/0...ershell-startup.aspx

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 4 mois #3172 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:automatiser un script
steph_d écrit:

D'ailleurs peut-être pourrais-tu expliquer qui fait quoi la dedans sur la page du lien ?

Là faut creuser un peu plus le fonctionnment du framework .NET.

Concernant Ngen, il faut savoir que la compilation sous .NET se fait au moment où on a besoin du code, c'est le \"Just in Time\" ( JIT ). Dans ce cas , et à la différence d'une application win32,le chargement se trouve ralenti car on génére le code à chaque fois.

Il possible d'exécuter cette opération sur toutes les machines utilisant PowerShell sans pb. Il se peut que d'autres applications .NET installées sur la machine en bénéficient.

Ngen, Native Image Generator Tool , crée une image native pour chaque DLL/exécutable, elles se situent dans le cache dédié, C:\\WINDOWS\\assembly\\NativeImages_v2.0.50727_32, à noter que les fichiers xxx.dll sont renommés en xxx.ni.dll.

Le bug .

Et un dernier pour la route ;-)
To NGen or not to NGen

ps:
Comme indiqué dans les commentaires du post citant cette astuce, pour les machines 64 bits le répertoire d'installation est différent
[code:1]
Set-Alias ngen @(
$ngen_path = Join-Path ${env:\windir} \"Microsoft.NET\Framework\"
if(${env:«»PROCESSOR_ARCHITECTURE} -eq \"AMD64\"«»){
$ngen_path = Join-Path ${env:\windir} \"Microsoft.NET\Framework64\"
}
dir $ngen_path ngen.exe -recurse | where {$_.length -gt 0} | sort -descending lastwritetime
)[0].fullName
[appdomain]::currentdomain.getassemblies() | %{ngen /nologo $_.location}
[/code:1]
Et si quelqu'un connait la configuration pour résoudre les dépendances, par exemple pour PSCX, je suis preneur.
[code:1]
#Activation du journal de liaison d'assembly de Ngen, 0=désactive
new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Fusion -n EnableLog -t Dword -va 1

#$env:«»path+=\";C:\Program Files\PowerShell Community Extensions\";
ngen \"C:\Program Files\PowerShell Community Extensions\Pscx.Core.dll\"
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 4/11/08 11:57

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.112 secondes
Propulsé par Kunena