Question
automatiser un script
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 4 mois #3157
par steph_d
@+ Steph
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
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.
- Grégory
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 49
- Remerciements reçus 0
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
[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.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 17 ans 4 mois #3160
par Arnaud Petitjean
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 ?
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é.
Peut être qu'un service serait plus approprié qu'une tâche planifiée. A quoi sert ton script ?
Arnaud
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.
- steph_d
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 17 ans 4 mois #3161
par steph_d
@+ Steph
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
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.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 17 ans 4 mois #3166
par Robin Lemesle
Robin MVP PowerShell
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
blogs.msdn.com/powershell/archive/2008/0...ershell-startup.aspx
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 4 mois #3172
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:automatiser un script
steph_d écrit:
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
Là faut creuser un peu plus le fonctionnment du framework .NET.D'ailleurs peut-être pourrais-tu expliquer qui fait quoi la dedans sur la page du lien ?
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- automatiser un script