Question [résolu]condition if

Plus d'informations
il y a 6 ans 11 mois #16633 par lege
[résolu]condition if a été créé par lege
bonjour,

à partir d'un script A, j’appelle le script B qui doit récupérer deux valeurs, les traiter dans un test et ensuite les appliquer les valeurs.

La valeur pour le script A peut être \"1\", \"0\" ou \"nul\"

script A

[code:1]
c:\users\toto\scriptB -$master \"1\" -serveur \"0\"
[/code:1]

script B
[code:1]
if($master -eq \"1\"«»)
then envoie la valeur \"1\" vers $master

elseif($master -eq \"0\"«»)
then envoie la valeur \"0\" vers $master

else
then envoie la valeur \"0\" vers $master


if($serveur -eq \"1\"«»)
then envoie la valeur \"1\" vers $serveur

elseif($serveur -eq \"0\"«»)
then envoie la valeur \"0\" vers $serveur

else
thern envoie la valeur \"0\" vers $serveur


$master = \"la valeur récupéré après le test\"
$serveur = \"la valeur récupéré après le test\"


#à quoi servent les valeurs que je récupère (la variable $windows7 sert pour une utilisation futur)

if((($master -eq \"1\"«») -or ($master -eq \"0\"«») -and ($windows7 -eq \"0\" -and $serveur -eq \"1\"«»)))
{
#Commande powershell désactiver le compte administrateur

$user = [adsi]\"WinNT://$env:computername/administrateur\"
$user.UserFlags.value = $user.UserFlags.value -bor 0x0002
$user.CommitChanges()
}
[/code:1]

Je ne sais pas comment faire pour récupérer les valeurs et les envoyer dans les différentes variables

merci pour votre aide

Message édité par: arsoul, à: 19/12/13 10:33<br><br>Message édité par: arsoul, à: 23/12/13 10:01

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

Plus d'informations
il y a 6 ans 11 mois #16635 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:condition if
Salut,
utilise le mot clé Param
[code:1]help about_Functions_Advanced_Parameters[/code:1]
Un exemple :
[code:1]
#scriptb
Param( $master,$Serveur )

if($master -eq \&quot;1\&quot;«»)
...
[/code:1]
D'après ton explication, des paramètres de type Switch seraient plus appropriés, car tu n'utilises pas la valeur $null.
[code:1]
#scriptb
Param(
[switch] $Master,
[Switch] $Serveur
)

if($master) #présent sur la ligne de commande
else #absent sur la ligne de commande
...
[/code:1]
Appels possibles:
[code:1]
c:\users\toto\scriptB -master -serveur
c:\users\toto\scriptB
c:\users\toto\scriptB -serveur
c:\users\toto\scriptB -master
[/code:1]
Tu devrais d'acheter un livre ou lire cette doc , car tu perds beaucoup de temps sur des principes de bases :ohmy:

Tutoriels PowerShell

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

Plus d'informations
il y a 6 ans 11 mois #16637 par lege
Réponse de lege sur le sujet Re:condition if
je suis en stage pendant 2 mois, je dois créer un script d'automatisation des tâches. J'ai des cours de powershell au mois de février en école.

effectivement, je pose beaucoup de question sur des principes de bases car je ne l'ai ai pas

Si tu peux développer ton exemple, je ne comprend pas vraiment comment il faut faire...<br><br>Message édité par: arsoul, à: 19/12/13 12:43

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

Plus d'informations
il y a 6 ans 11 mois #16639 par Philippe
Réponse de Philippe sur le sujet Re:condition if
j'ai eu le même type de stagiaire de supinfo, en 2009 ou 2010
le pauvre a eu la mauvaise idée de me dire qu'il pouvais faire ce que je demander en powershell, alors qu'il n'avais pas encore eu de formation sur powershell !
il a galère quelques mois, et je pouvais pas l'aider car je connaissais pas encore powershell
depuis il est devenu un expert powershell que les entreprises s'arrache (de ce qu'il m'a dis cette été !)
ca fait plaisir de voir qu'il a eu raison de s'obstiner sur un langage qu'il ne connaissais pas

je te souhaite la même chose arsoul

prend le temps de lire les tutos dispo sur internet, Laurent en a faire de bien (voir tres bien ;) ) pour les débutants, regarde dans ça signature
tu en trouve aussi ici sur ce site dans : articles et tutoriaux

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

Plus d'informations
il y a 6 ans 11 mois #16640 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:condition if
arsoul écrit:

Effectivement, je pose beaucoup de question sur des principes de bases car je ne l'ai ai pas.

C'est ce qu'on constate, et de faire les choses à l'envers donne rarement de bon résultats :-)

Il est tout de même préférable d'apprendre les bases avant de vouloir faire.Ton stage doit te permettre cela. De les étudier qq jours te permettra de progresser plus rapidement, il faut accepter de perdre du temps pour en gagner.
arsoul écrit:

si tu as bien entendu du temps

Pour le moment j'en ai.
[code:1]
#ScriptB
Param(
[switch] $Master,
[Switch] $Serveur,
[Switch] $WindowsSeven
)

Write-Debug \&quot;Master=$Master `t Serveur=$Serveur `t WindowsSeven=$WindowsSeven\&quot;

if(-not $windows7 -and $Serveur)
{
Write-Debug \&quot;Désactive le compte administrateur\&quot;
return # A supprimer
$user = [adsi]\&quot;WinNT://$env:computername/administrateur\&quot;
$user.UserFlags.value = $user.UserFlags.value -bor 0x0002
$user.CommitChanges()
}
else
{ Write-Debug \&quot;Le compte administrateur n'est pas désactivé\&quot; }
[/code:1]
L'appel :
[code:1]
cd C:\temp
$Debugpreference
$DebugPreference='continue'
.\ScriptB.ps1
.\ScriptB.ps1 -WindowsSeven
.\ScriptB.ps1 -WindowsSeven -Serveur
$DebugPreference='SilentlyContinue'
[/code:1]
Une fois ta gestion de paramètre validée(je ne suis pas certains d'avoir compris ce que tu veux faire), supprime la ligne contenant le mot-clé return

Tutoriels PowerShell

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

Plus d'informations
il y a 6 ans 11 mois #16641 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:condition if
6ratgus écrit:

Laurent en a fait de bien (voir très bien ;) ) pour les débutants

Le prérequis à leur lecture est de connaitre les bases justement, ce n'est pas tout à fait débutant.

Ensuite le terme 'débutant' est relatif, celui qui a déjà codé a moins à apprendre que celui qui n'a jamais codé. Certains ne connaissent pas la notion d'objet, ni WMI ou la notion d'événements, d'autres n'ont jamais pratiqué de ligne de commande ou ne savent pas ce qu'est une fonction...

Combien d'utilisateur de PS peuvent expliquer toutes les informations contenu dans l'aide d'un paramètre d'un cmdlet ?

-Exclude &lt;String[]&gt;
Omet les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un
modèle de chemin d'accès, tel que «*.txt». Les caractères génériques sont autorisés.

Obligatoire ? false
Position ? named
Valeur par défaut
Accepter l'entrée de pipeline ? false
Accepter les caractères génériques ? true

Et ici il n'y a pas encore de code ;)<br><br>Message édité par: Laurent Dardenne, à: 19/12/13 13:08

Tutoriels PowerShell

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

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