PowerShell/Bonne pratique

Révision datée du 30 mai 2024 à 21:05 par Fylip22 (discussion | contributions) (→‎Entête)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Quelques bonnes pratiques pour PowerShell.

Règle de rédaction

Ecriture développée et écriture condensée

Voici deux scripts identiques, l'un avec une écriture développée, l'autre avec une écriture condensée :

# création du compte local "recupe" ; écriture développée
$compte         = "recupe"
$motDePasse     = "monmotdepasse"
$parametreListe = @{
   Name                 = $compte
   Password             = (ConvertTo-SecureString $motDePasse -AsplainText -Force)
   FullName             = $compte
   Description          = $compte+' migration 2024'
   AccountNeverExpires  = $true
   PasswordNeverExpires = $true
   }
New-LocalUser @parametreListe
Add-LocalGroupMember -Member $compte -Group "Administrateurs"
Add-LocalGroupMember -Member $compte -Group "Utilisateurs du Bureau à distance"
# création du compte local "recupe" ; écriture compacte
$compte="recupe";$motDePasse="monmotdepasse";$parametreListe=@{Name=$compte;Password=(ConvertTo-SecureString $motDePasse -AsplainText -Force);FullName=$compte;Description=$compte+' migration 2024';AccountNeverExpires=$true;PasswordNeverExpires=$true}
New-LocalUser @parametreListe;Add-LocalGroupMember -Group "Administrateurs" -Member $compte;Add-LocalGroupMember -Group "Utilisateurs du Bureau à distance" -Member $compte

Entête

Script simple

<#
Description : création d'un fichier HTML de la liste des 10 premiers services, avec actualisation de la page toutes les 3 secondes
Usage       : exercice en PowerShell
Auteur      : fylip22
Version     : 1.0
Révisions   :
	- 1.0 (01/11/2023) : création du script
#>

Fonction

<#
.SYNOPSIS
    Texte du résumé de la fonction

.DESCRIPTION
    Description

.PARAMETER Source
    Description du paramètre "Source"

.PARAMETER Destination
    Description du paramètre "Destination"

.EXAMPLE
    .\MaFonction.ps1 -Source "\\PHP001\Source\" -Dest "C:\temp"

.EXAMPLE
    .\MaFonction.ps1 -Source "\\PHP001\Support\" -Dest "C:\Sauvegarde\"

.INPUTS

.OUTPUTS

.NOTES
    NAME: MaFonction.ps1
    AUTHOR: fylip22
    EMAIL: fylip22@phpage.fr
    WWW: kono.phpage.fr

    VERSION HISTORY:
        1.0    2023.11.15
        Initial Version

    TODO
        * gérer l'existence du dossier de destination ; le créer si nécessaire
#>

Variable de paramètres

Pour une clarté dans la lecture d'un script, utiliser une variable de type tableau avec les différentes valeurs, puis utiliser cette variable avec la commande souhaitée.

Création d'un utilisateur sur l'AD : New-ADUser @ParametreListe

$ParametreListe = @{
   SAMAccountName    = "Nomp";
   Path              = "OU=SI, DC=php, DC=local";
   AccountPassword   = (ConvertTo-SecureString "MonMotDePasse" -AsPlainText -Force);
   Enable            = $true;
   UserPrincipalName = "prenom.nom@php.local";
   Name              = "Nom Prénom";
   EmailAddress      = "prenom.nom@societe.fr";
   DisplayName       = "Nom Prénom";
   GivenName         = "Prénom";
   Surname           = "Nom";
   Office            = "B052";
   EmployeeID        = "123";
   Title             = "Chef de projet";
   Company           = "Société";
   Division          = "Ma division";
   Department        = "Mon service";
   MobilePhone       = "+33 6 78 90 12 34";
   StreetAddress     = "1 Nom de la rue";
   City              = "Ma Ville";
   State             = "Ma Région";
   PostalCode        = "12300";
   Country           = "Mon Pays";
   OfficePhone       = "+33 1 23 45 67 89";
   }
New-ADUser @ParametreListe

Voir aussi