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

Plus d'informations
il y a 3 mois 2 semaines - il y a 3 mois 2 semaines #29893 par Firedaway
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 mois 2 semaines par Arnaud.

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

Plus d'informations
il y a 3 mois 2 semaines #29894 par Arnaud
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

Créateur du forum de la communauté PowerShell Francophone

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

Plus d'informations
il y a 3 mois 2 semaines #29900 par Firedaway
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
Pièces jointes :

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

Plus d'informations
il y a 3 mois 1 semaine #29907 par Firedaway
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 mois 1 semaine #29908 par Arnaud
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

Créateur du forum de la communauté PowerShell Francophone
Les utilisateur(s) suivant ont remercié: Firedaway

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

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