Question
[résolu]condition if
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 10 ans 3 mois #16692
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:condition if
arsoul écrit:
Je n'ai pas compris, peux-tu reformuler ?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
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- lege
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 80
- Remerciements reçus 0
il y a 10 ans 3 mois #16693
par lege
Réponse de lege sur le sujet Re:condition if
script A
[code:1]
c:\users\toto\scriptB.ps1 test-param -Normalisation -Windows2008
[/code:1]
Le script A et le Script B sont totalement indépendant de l'un et de l'autre
Les valeurs normalisation et windows2008 est \"injecté\" dans le script B
script B
[code:1]
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]
Message édité par: arsoul, à: 20/12/13 16:30<br><br>Message édité par: arsoul, à: 20/12/13 16:38
[code:1]
c:\users\toto\scriptB.ps1 test-param -Normalisation -Windows2008
[/code:1]
Le script A et le Script B sont totalement indépendant de l'un et de l'autre
Les valeurs normalisation et windows2008 est \"injecté\" dans le script B
script B
[code:1]
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]
Message édité par: arsoul, à: 20/12/13 16:30<br><br>Message édité par: arsoul, à: 20/12/13 16:38
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 10 ans 3 mois #16694
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:condition if
arsoul écrit:
Ok. Et donc ?Le script A et le Script B sont totalement indépendant de l'un et de l'autre
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- lege
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 80
- Remerciements reçus 0
il y a 10 ans 3 mois #16695
par lege
Réponse de lege sur le sujet Re:condition if
aspirine
quand j’exécute le scriptA, le compte administrateur n'est pas désactivé.
voila où je veux en venir
quand j’exécute le scriptA, le compte administrateur n'est pas désactivé.
voila où je veux en venir
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 10 ans 3 mois #16696
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:condition if
Je pense avoir compris ce qui te gêne, le dernier code d'exemple comprend l'appel ET le script.
Il faut le comprendre comme ceci :
[code:1]
@'
#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()
}
@'> c:\temp\ScriptB.ps1
[/code:1]
Je pensais qu'après tout ces échanges tu aurais fait le découpage toi même. Surtout que le code ainsi enregistré aurait provoqué un dépassement de pile.
Ce qui est évident pour les uns ne l'est pas forcément pour d'autres...<br><br>Message édité par: Laurent Dardenne, à: 20/12/13 16:50
Il faut le comprendre comme ceci :
[code:1]
@'
#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()
}
@'> c:\temp\ScriptB.ps1
[/code:1]
Je pensais qu'après tout ces échanges tu aurais fait le découpage toi même. Surtout que le code ainsi enregistré aurait provoqué un dépassement de pile.
Ce qui est évident pour les uns ne l'est pas forcément pour d'autres...<br><br>Message édité par: Laurent Dardenne, à: 20/12/13 16:50
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 10 ans 3 mois #16697
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:condition if
arsoul écrit:
arsoul écrit:
Un double pour moi !!aspirine
arsoul écrit:
Utilise des traces et revoit ça lundiquand j’exécute le scriptA, le compte administrateur n'est pas désactivé.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.089 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [résolu]condition if