IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Paramètre booléen depuis variable [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2015
    Messages : 21
    Par défaut Paramètre booléen depuis variable
    Bonjour à tous,
    dans un script utilisant la commande New-ADUser, j'ai un souci avec les paramètres booléens, tels que CannotChangePassword, ChangePasswordAtLogon,Enable, PasswordNeverExpires.
    Si j'utilise une variable, cela provoque une erreur. J'ai essayé différents formats ($true, true, 0 ,1) sans succès.
    Lorsque je mets les valeurs en dur, ($true ou $false) je n'ai pas d'erreur.
    Est-ce dû au fait que ces paramètres n'acceptent pas d'entrée de pipeline? Question de format de chaîne?
    Existe-t-il une méthode permettant d'utiliser une variable? Je n'ai pas trouvé de réponse claire lors de mes recherches en ligne.


    Michel

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Il n'y a pas de raison cela devrait fonctionner.
    Il faudrait ton code d'exemple et l'erreur retournée.

    Par contre je n'ai pas d'AD sous la main

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2015
    Messages : 21
    Par défaut
    Bonjour Eric,
    voici les éléments:
    -la ligne de commande (dans une boucle ForEach):
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    New-ADUser -Name $Util.Name -ChangePasswordAtLogon $Util.ChangePasswordAtLogon `
            -City $util.City -Company $util.Company -Country $util.Country -Department $util.Department -Description $util.Description `
            -DisplayName $util.DisplayName -Division $util.Division -EmailAddress $util.EmailAddress -EmployeeID $util.EmployeeID `
            -EmployeeNumber $util.EmployeeNumber  -GivenName $util.GivenName -HomeDirectory $util.HomeDirectory -HomeDrive $util.HomeDrive `
            -MobilePhone $util.MobilePhone -Initials $util.Initials -Office $Util.Office -OfficePhone $Util.OfficePhone `
            -Organization $Util.Organization -PasswordNeverExpires $Util.PasswordNeverExpires `
            -ProfilePath $Util.ProfilePath -SamAccountName $Util.SamAccountName -ScriptPath $Util.ScriptPath -Surname $Util.Surname `
            -Title $Util.Title -Type $Util.Type -UserPrincipalName $util.UserPrincipalName `
            -Accountpassword (ConvertTo-SecureString $Util.AccountPassword -Asplaintext -Force) -Enabled $util.Enabled

    le message d'erreur est (j'ai un peu abrégé):
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    New-ADUser: impossible de convertir <<System.String>> en type <<System.Nullable 1 [System.Boolean]>> requis par le paramètre <<Enabled>>.
    + CategoryInfo: InvalidArgument: (;:) [New-ADUser], ParameterBindingException
    +FullyQualifiedErrorId : Cannotconvertargument, microsoft, activedirectory, management, commands, newaduser

    -un extrait de la boucle de création des champs (une 1ère liste au format DsAdd pour la convertir au format New-ADuser)
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        if ($util2.canchpwd -eq "no")
        { $TabValeurs.CannotChangePassword = "$true" }
        else { $TabValeurs.CannotChangePassword = "$false" }
        if ($util2.mustchpwd -eq "no")
        { $TabValeurs.ChangePasswordAtLogon = "$true" }
        else { $TabValeurs.ChangePasswordAtLogon = "$false" }
        if ($util2.disabled -eq "no")
        { $TabValeurs.Enabled = "$true" }
        else { $TabValeurs.Enabled = "$false" }

    Je travaille avec une machine virtuelle (Server 2012R2 sur VMware)

    Michel

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Essai avec $true ou $false et pas "$true"

  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2015
    Messages : 21
    Par défaut
    J'ai déjà essayé, ainsi qu'avec 0 et 1, sans succès.
    De plus, je dois encadrer les valeurs $true et $false avec des guillemets sinon cela provoque une erreur dans une instruction d'insertion:
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    $NouvLigne[$i] = $Val + ";"   ($NouvLigne est un string[])
    (erreur: format de chaîne incorrect)
    J'ai résolu ce souci en encadrant la chaîne, elle est correctement insérée dans le fichier de sortie.
    Je pense qu'il faudrait forcer le type "Bool" mais comment et à quelle étape?

    Michel

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Oui tu peux caster avec [bool]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/08/2007, 22h05
  2. Lecture des paramètres d'une variable XML
    Par alband85 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/07/2007, 09h16
  3. [Upload] faire un lien depuis variable
    Par Doksuri dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2007, 16h27
  4. passage de paramètre en nombre variable
    Par fdujardi2 dans le forum C
    Réponses: 2
    Dernier message: 18/07/2006, 13h50
  5. Requète paramétrée avec résultat variable
    Par slackjayo dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 20h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo