Question Start-Job avec plusieurs functions

Plus d'informations
il y a 11 ans 4 mois #18289 par usopp
Bonjour, :P

j'ai la Function Create qui va lancer une 40ene de fonctions.
Les valeurs retournées seront passés en paramètre de la function Object

[code:1]Function Create {
([Parameter(Mandatory=$true)][string]$ServerName)
...
}[/code:1]

[code:1]Function Object {
([Parameter(Mandatory=$true)][string]$ServerName,
[Boolean]$isServerOnline,
[string]$IP,
[string]$DNS)
...
}[/code:1]

c'est du séquentielle serveur par serveur il va créer un object par serveur

je voulais faire un start-job par serveur pour gagner du temps mais j'y arrive pâs..:pinch:

j'ai essayé de faire

[code:1]$Function = { Function Create {
([Parameter(Mandatory=$true)][string]$ServerName)
...
}}

Start-Job -initializationScript $Function -scriptblock {param($ServerName) Create $ServerName} -ArgumentList $ServerName[/code:1]

mais cela me dit que mes 40 autres fonctions are not recognized as the name of a cmdlet..:huh:

qui aurait une solution ? :) merci

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

Plus d'informations
il y a 11 ans 4 mois #18292 par Laurent Dardenne
Salut,
usopp écrit:

j'ai la Function Create qui va lancer une 40ene de fonctions.

Pas compris :pinch:
usopp écrit:

mais cela me dit que mes 40 autres fonctions are not recognized as the name of a cmdlet..

Le code du job,-Scripblock, doit contenir toutes les déclarations, en créant un module tu faciliteras le code et sa maintenance.
En revanche de passer par un job nécessite d'en limiter le nombre et de gérer les fin de job existant.

On t'a trouvé une autre galère :lol: ou c'est la même que précédemment ?

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 4 mois #18294 par usopp
Réponse de usopp sur le sujet Re:Start-Job avec plusieurs functions
j'ai ma function create qui call plusieurs fonction

pour créer l'object mm je sais pas comment mieux expliquer

[code:1]Function Create {

([Parameter(Mandatory=$true)][string]$ServerName)

$isServerOnline = isServerOnline -ServerName $ServerName

$IP= get-IP -ServerName $ServerName
$DNS= get-DNS -ServerName $ServerName
etc..

Object $ServerName $isServerOnline $IP $DNS etc..
}


Function Object {

([Parameter(Mandatory=$true)][string]$ServerName,

[Boolean]$isServerOnline,

[string]$IP,

[string]$DNS)

...

}[/code:1]

et vu que je dois recup pleins d'infos sur +300 serveurs pour gagner du temps je voulais faire un start-job pour chaques serveurs et créer une collection avec le recieve-job

c'est plus ou moins le meme sujet :p qie j'essaye d'arranger au mieux..:dry:

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

Plus d'informations
il y a 11 ans 4 mois #18295 par Laurent Dardenne
usopp écrit:

j'ai ma function create qui call plusieurs fonction

On comprend mieux avec les bon mots :)
usopp écrit:

c'est plus ou moins le meme sujet :p qie j'essaye d'arranger au mieux..:dry:

Sache que tu te lances dans un traitement 'avancé'.
En gérant des job il faut éviter de faire un générateur de tâche : de support en prod, de séance de debug, de réécriture de code.
Il est impératif d'utiliser un mécanisme de log, sinon c'est impossible à debugger et a tester ( même si la v5 permet le debug de JOB ces pb demeurent.

Le principe, tu places tous tes prérequis : module (permet des variable et fonctions privés), DLL, fonctions, scripts, variables dans un script d'initialisation.
Dans le code de ton Start-Job, tu codes l'appel de cette initialisation, puis celle de ton traitement qui disposera ainsi de tout ce dont il a besoin.

Tu peux aussi consulter cet exemple .
Soit tu crées ton moteur de job, soit tu testes ceux que l'on peut trouver sur le WEB, mais là aussi il faut du temps pour les étudier et savoir les corriger en cas de bug.
Une fois que tu as réalisé un tel traitement, compris le fonctionnement des mécanismes mis en œuvre et ce que cela implique, tu peux le réutiliser ( les 300 serveurs ne risquent pas de disparaître ).

Mais si tu n'a pas le temps de faire les choses, ne te lances pas là dedans !
Tu gagneras du temps et garderas des relations cordiales avec tes collègues ;-)

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 4 mois #18296 par usopp
Réponse de usopp sur le sujet Re:Start-Job avec plusieurs functions
oula :huh: oue c'est beaucoup de boulot..bon ben on verra plutard alors en tout cas merci pour les ref je vais quand meme lire ca sera toujours ca de pris :P

dans mon cas je pense que faire du start-job sur le script est plus simple que le faire sur mes functions :unsure:

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

Plus d'informations
il y a 11 ans 4 mois #18297 par Laurent Dardenne
usopp écrit:

oula :huh: oue c'est beaucoup de boulot..

Une partie en moins au cas où tu te décides à utiliser cette solution de log.
usopp écrit:

dans mon cas je pense que faire du start-job sur le script est plus simple que le faire sur mes functions

Imagine un job comme un PC indépendant, tu dois y installer chaque éléments, ton script ET tes fonctions.
Il te faut déjà réfléchir au comment organiser tes fichiers. Pour l'instant c'est une question de 'rangement'.
Utilises-tu le dotsource et/ou des modules ?

Tutoriels PowerShell

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

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