Question
[résolu]condition if
- lege
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 80
- Remerciements reçus 0
$windows7 = 0 correspond à un poste client serveur 2008 . C'est bien ça ?
oui c'est bien ça
Laurent écrit :
Parce que dans ton script la valeur par défaut n'est pas affecté : $windows7 = \"0\" n'existe pas.
parce que l'utilisateur ne rentre pas de valeur dans la variable $windows7
Laurent écrit :
Normalisation #correspond a une normalisation d'un poste client
PostInstallation #correspond à une configuration après l'installation d'un windows 7 ou d'un serveur 2008
oui c'est bien ça
Laurent écrit :
WindowsSeven # correspond à un poste client windows 7
Serveur2008 #correspond à un serveur 2008
windows7 = correspond à un poste windows seven
serveur = correspond à un serveur 2008
laurent écrit :
La normalisation d'un poste se fait aussi sur un serveur ?
oui
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Cela n'a rien à voir. Si tu précises un nom de variable dans ton code, ici le test, elle doit exister dans tous les cas. Avec un langage statique tu aurais des erreurs de compilation.parce que l'utilisateur ne rentre pas de valeur dans la variable $windows7
Essaie ton script en ayant au préalable exécuté ceci :
[code:1]
Set-StrictMode -Version Latest
[/code:1]
Ou vérifie ceci :
[code:1]
Set-StrictMode -off
remove-variable windows7 -ea SilentlyContinue
$windows7 -eq \"1\"
Set-StrictMode -Version Latest
$windows7 -eq \"1\"
Set-StrictMode -off
[/code:1]
Je regarde comment coder une partie de ta règle de gestion via le paramétrage.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- lege
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 80
- Remerciements reçus 0
si ce n'est pas un serveur alors $windows7 = 1
si c'est un serveur alors $windows = 0
si la valeur est vide pour $serveur alors $windows7 = 1
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
[code:1]
Function Test-Param {
[CmdletBinding(DefaultParameterSetName = \"Nothing\"«»)]
param (
#Traitments
[Parameter(ParameterSetName=\"Normalisation\"«»)]
[switch] $Normalisation,
[Parameter(ParameterSetName=\"PostInstallation\"«»)]
[switch] $PostInstallation,
#Cibles
[switch] $WindowsSeven,
[switch] $Windows2008
)
$PSCmdlet.WriteDebug(\"Traitement à effectuer : $($PsCmdlet.ParameterSetName)\"«»)
if ($PsCmdlet.ParameterSetName -ne 'Nothing')
{
if ( ($WindowsSeven -and $Windows2008) -or (-not $WindowsSeven -and -not $Windows2008))
{ Throw \"Veuillez spécifier une cible et une seule.\" }
if ($WindowsSeven)
{Write-host \"$($PsCmdlet.ParameterSetName) sur WindowsSeven\"}
elseif ($Windows2008)
{ Write-host \"$($PsCmdlet.ParameterSetName) sur Windows2008\" }
else
{ }
}
else
{Throw \"Aucun paramètrage. Veuillez spécifier un traitement et une cible.\"}
} #test-param
[/code:1]
Le jeux de test :
[code:1]
test-param
test-param -WindowsSeven
test-param -Windows2008
test-param -Normalisation
test-param -Normalisation -WindowsSeven
test-param -Normalisation -Windows2008
test-param -Normalisation -WindowsSeven -Windows2008
test-param -PostInstallation
test-param -PostInstallation -WindowsSeven
test-param -PostInstallation -Windows2008
test-param -PostInstallation -WindowsSeven -Windows2008
test-param -PostInstallation -Normalisation
test-param -PostInstallation -Normalisation -WindowsSeven
test-param -PostInstallation -Normalisation -Windows2008
test-param -PostInstallation -Normalisation -WindowsSeven -Windows2008
[/code:1]
C'est du code avancé, mais c'est déjà plus lisible et maintenable. Tu peux ajouter des traitements et des cibles plus facilement qu'avec des paramètres conteant 0 , 1 et null.
Je te laisse ajouter la règle pour la désactivation du compte admin.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Si tu sais en un lire un, tu sais tous les lire. Ensuite l'aide en ligne est perfectible, d'où l'ajout de la possibilité de mettre à jour les fichiers d'aide.Laurent Dardenne écrit:
c'est vrais que pour certain get-help, il faut avoir des connaissances en informatique, en programmation, et parfois en divination car c'est pas toujours très clair !Combien d'utilisateur de PS peuvent expliquer toutes les informations contenu dans l'aide d'un paramètre d'un cmdlet ?
Je peux très bien savoir lire l'aide en ligne des cmdlets Exchange, cela ne fait pas pour autant de moi un administrateur Exchange. Par contre d'être associé avec une telle personne, là on casse la baraque !
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- lege
- Auteur du sujet
- Hors Ligne
- Membre premium
- Messages : 80
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [résolu]condition if