Question [résolu]condition if

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

je préfère tester avec un if si les valeurs sont correct pour exécuter le bloc de commandes.

Tu fais ce que tu veux :-)
Pour moi c'est redondant, mais si tu souhaites renforcer ainsi sa compréhension pourquoi pas.
Ceci devrais te convenir :
[code:1]
c:\users\toto\scriptB -Normalisation -Windows2008


#scriptB
[CmdletBinding(DefaultParameterSetName = \"Nothing\"«»)]
param (
#Traitements
[Parameter(ParameterSetName=\"Normalisation\"«»)]
[switch] $Normalisation,
[Parameter(ParameterSetName=\"PostInstallation\"«»)]
[switch] $PostInstallation,
#Cibles
[switch] $WindowsSeven,
[switch] $Windows2008
)

$PSCmdlet.WriteDebug(\"Traitement à effectuer : $($PsCmdlet.ParameterSetName)\"«»)
if ($PsCmdlet.ParameterSetName -eq 'Nothing')
{ Throw \"Aucun paramètrage. Veuillez spécifier un traitement et une cible.\" }

if ( ($WindowsSeven -and $Windows2008) -or (-not $WindowsSeven -and -not $Windows2008))
{ Throw \"Veuillez spécifier une cible et une seule.\" }

if(($Windows2008 -and ($Normalisation -or $PostInstallation)))
{
$user = [adsi]\"WinNT://$env:computername/administrateur\"
$user.UserFlags.value = $user.UserFlags.value -bor 0x0002
$user.CommitChanges()
}
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 4 mois #16687 par lege
Réponse de lege sur le sujet Re:condition if
par contre je n'arrive pas à l'appeler

c:\users\toto\scriptb test-param -normalisation -windows2008

ou

c:\users\toto\scriptb -normalisation -windows2008

j'excute bien la commande mais rien ne se passe, je ne sais pas d'ou ça vient

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

Plus d'informations
il y a 10 ans 4 mois #16688 par lege
Réponse de lege sur le sujet Re:condition if
quand je l’exécute directement à partir du script cela fonctionne

[code:1]
Test-Param -Normalisation -Windows2008

Function Test-Param {
[CmdletBinding(DefaultParameterSetName = \"Nothing\"«»)]
param (
#Traitements
[Parameter(ParameterSetName=\"Normalisation\"«»)]
[switch] $Normalisation,
[Parameter(ParameterSetName=\"PostInstallation\"«»)]
[switch] $PostInstallation,
#Cibles
[switch] $WindowsSeven,
[switch] $Windows2008
)

$PSCmdlet.WriteDebug(\"Traitement à effectuer : $($PsCmdlet.ParameterSetName)\"«»)
if ($PsCmdlet.ParameterSetName -eq 'Nothing')
{Throw \"Aucun paramètrage. Veuillez spécifier un traitement et une cible.\"}

if ( ($WindowsSeven -and $Windows2008) -or (-not $WindowsSeven -and -not $Windows2008))
{ Throw \"Veuillez spécifier une cible et une seule.\" }

if((($Windows2008) -and ($Normalisation -or $PostInstallation)))
{
$user = [adsi]\"WinNT://$env:computername/administrateur\"
$user.UserFlags.value = $user.UserFlags.value -bor 0x0002
$user.CommitChanges()
}

}
[/code:1]


mais à partir de l’exécutable powershell

[code:1]
PS C:\Users\toto> .\testparam.ps1 Test-param -Normalisation -Windows2008
Test-Param : Le terme « Test-Param » n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez l'orthographe du nom, ou si un chemin d'accès existe, vérifiez que le chemin d'accès e
Au caractère C:\Users\toto\testparam.ps1:1 : 1
+ Test-Param -Normalisation -Windows2008
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Test-Param:«»String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
[/code:1]<br><br>Message édité par: arsoul, à: 20/12/13 16:20

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

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

j'exécute bien la commande mais rien ne se passe

Tu veux dire que rien ne s'affiche ?
Active le flux de debug :
[code:1]$DebugPreference='continue'[/code:1]
Que voudrais-tu qu'il se passe ?

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 4 mois #16690 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:condition if
Reprend mon post de 15h58.
Dans ton répertoire, copie dans un fichier .ps1 le script B.

Tutoriels PowerShell

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

Plus d'informations
il y a 10 ans 4 mois #16691 par lege
Réponse de lege sur le sujet Re:condition if
oui effectivement, dans le script de 15h58 ca fonctionne

mais ce que j'essaye de faire c'est appeler le script B sans que la commande qui le permet soit dedans

il faudrait que j'exécute la commande à partir d'un powershell pour appeler le script B

Message édité par: arsoul, à: 20/12/13 16:25<br><br>Message édité par: arsoul, à: 20/12/13 16:26

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

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