Question
Changement @IP a distance
- ocin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 9
- Remerciements reçus 0
Je suis entrain de faire un script powershell qui fait pas mal de truc pour la préparation de serveur. Dans les différentes opérations que je fais, je fais un changement d'adresse comme ce ci:
[code:1]
Function ChangeAdrIP ($nom_machine,$user,$password,$oldip,$newip,$newmask)
{
$userdomaine=$nom_machine+\"\\"+$user
$Pass = ConvertTo-SecureString $password -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($userdomaine,$Pass)
$var = $null
$var=Get-WmiObject -computer $nom_machine win32_networkadapterconfiguration -credential (get-credential $Credential) | `
where {$_.IPAddress -eq \"$oldip\"}
$var.EnableStatic(\"$newip\",\"$newmask\"«»)
}
[/code:1]
Le gros problème, et vous l'avez surement deviné, c'est que mon script, après l'appel de la fonction, ne me rends jamais la main puisqu'il y a perte de connection! Je dois chainer d'autre script apres le changement d'adresse mais je ne peux pas!
Je penses que c'est plus un problème de conception de mon script / chainage.
J'avais ca en tête:
- script 1 qui lance script 2
- script 2 qui change mon @IP
- pendant ce temps script 1 balance un ping et lorsque c'est ok continu .
Malheureusement le script 1 attend que script 2 ai fini ...
Es ce que vous avez un conseil a me donner ?
Es ce qu'il est possible de lancer une fonction et de continuer sans attendre que la fonction rende la main?
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
- Messages : 226
- Remerciements reçus 0
[code:1]man about_jobs[/code:1]<br><br>Message édité par: bilbao, à: 14/02/12 16:40
Connexion ou Créer un compte pour participer à la conversation.
- ocin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 9
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
ocin écrit:
Peux-tu détailler ? Sans le script sous les yeux difficile de comprendre d'ou vient le pb.Le gros problème, et vous l'avez surement deviné, c'est que mon script, après l'appel de la fonction, ne me rends jamais la main puisqu'il y a perte de connection!
Si tu perds la connection, en supposant que, de ton poste, tu utilises winrm sur un serveur distant ceci devrait déclencher une exception.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- ocin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 9
- Remerciements reçus 0
Peux-tu détailler ? Sans le script sous les yeux difficile de comprendre d'ou vient le pb.
Je ne comprends pas, mon script est sur mon 1er post.
Pour info, j'ai essayé avec un job mais je n'ai pas de changement d'adresse sur mon poste distant (alors que sans job c'est ok).
Pour rappel, mon script:
[code:1]Function ChangeAdrIP ($nom_machine,$user,$password,$oldip,$newip,$newmask)
{
$userdomaine=$nom_machine+\"\\"+$user
$Pass = ConvertTo-SecureString $password -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($userdomaine,$Pass)
$var = $null
$var=Get-WmiObject -computer $nom_machine win32_networkadapterconfiguration -credential (get-credential $Credential) | `
where {$_.IPAddress -eq \"$oldip\"}
$var.EnableStatic(\"$newip\",\"$newmask\"«»)
}
start-job -scriptblock {ChangeAdrIP $machine $user $password $oldip $newip $newnetmask} [/code:1]
Je suis pas très loin du résultat mais je ne sais pas ou se situe mon erreur ...
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Le premier oui. Ce que je ne comprends pas est ceci:Je ne comprends pas, mon script est sur mon 1er post.
ocin écrit:
Mais en recherchant sur le net,j'ai trouve ce post qui ressemble à ton pb. Voir aussi celui-ci .Malheureusement le script 1 attend que script 2 ai fini ...
Avant d'aller plus loin il faudrait savoir si le code appellé (wmi) renvoi un erreur après un timeout.
ocin écrit:
Le code de ta fonction doit être inséré dans le job.mais je ne sais pas ou se situe mon erreur ...
Et à mon avis, je doute qu'ainsi tu résolves ton pb.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Changement @IP a distance