Question Utiliser read-host Script avec binding (parametres obligatoire)

Plus d'informations
il y a 3 ans 10 mois - il y a 3 ans 10 mois #29893 par YOUSSOUF CAMARA
Bonjour Arnaud,

Mon problème est en partie résolu.
Avec le code :
param(
     #[ValidateNotNullOrEmpty()]
     [string] $SamAccountName=(Read-Host 'Merci de saisir le compte à cloner )
  )

Par contre, je ne sais pas comment faire en sorte que mon script execute en double-cliquant sur le fichier toto.ps1.
Sachant que le script fonctionne en ouvrant préalablement Windows Powerhell en admin.
Dernière édition: il y a 3 ans 10 mois par Arnaud Petitjean.

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

Plus d'informations
il y a 3 ans 10 mois #29894 par Arnaud Petitjean
Bonjour Firedaway,

Une petite chose, lorsque tu postes du code, penses STP à le mettre entre balises Code prévue à cet effet. J'ai édité tes messages pour que le rendu soit correct.

je ne sais pas comment faire en sorte que mon script execute en double-cliquant sur le fichier toto.ps1.


Ce comportement a volontairement été rendu impossible par défaut avec PowerShell depuis sa première version. Ce n'était pas le cas avec VBScript et Cmd. Microsoft a justement fait cela pour éviter qu'un administrateur exécute un script par inadvertance.

Par conséquent, je ne te conseille vraiment pas de configurer Windows pour changer cela. Cependant il est facile de créer un fichier Cmd et de mettre dedans la ligne de commandes qui va bien pour exécuter ton script PowerShell. En général il suffit de faire quelque chose comme cela :
# Fichier cmd pour lancer un script PowerShell
powershell.exe -command {C:\scripts\monscriptPowerShell.ps1 -Param1 test} -NoProfile 

Tu obtiendras tous les paramètres possibles en tapant :
powershell.exe /?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 3 ans 10 mois #29900 par YOUSSOUF CAMARA
Bonjour Arnaud,

Je souhaite répéter l’exécution du script.
Tant que
$input="y" 
while ($input -eq "y"){
$SamAccountName =Read-Host "Entrez le GID du compte à cloner "
#$Utilsateur= Get-ADUser -LDAPFilter "(sAMAccountName=$Name)"
If ($Utilsateur -eq $Null) {"Utilisateur avec ce GID $Utilsateur n'existe pas dans Green"}
Else { Process dans le script en PJ
$input = Read-Host "Voulez-vous cloner un autre compte ? [y/n]"
 }

Je crois que le souci vient probablement du paramètre déclaré au debut
param (
    [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)]
    [Alias("SGID")]
    #[ValidateNotNullOrEmpty()]
    [string]$SamAccountName = (Read-Host 'Entrez le GID du compte à cloner')

J'ai testé mais je n'ai pas réussi à debuguer ce souci ultime afin de faciliter la tache aux préparateurs.

Merci

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

Plus d'informations
il y a 3 ans 10 mois #29907 par YOUSSOUF CAMARA
Bonjour Arnaud,

j'ai publié le code.

Merci de ton aide.

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

Plus d'informations
il y a 3 ans 10 mois #29908 par Arnaud Petitjean
Hello,

Pour répéter l'exécution de ton code tu devrais créer une fonction et appeler cette fonction autant de fois que nécessaire.

Essaye de raisonner de manière unitaire et découpant ton code en petites fonctions simples. Ainsi tu les appelles lorsque tu as besoin et tu factorises ton code.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Les utilisateur(s) suivant ont remercié: YOUSSOUF CAMARA

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

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