Table des matières

, ,

PowerShell : Elévation des privilèges

L'option “Exécuter en tant qu'administrateur” positionnée au lancement de l’interpréteur ou du script PowerShell permet d'élever les privilèges sur l'ensemble du processus : toutes les commandes s’exécutent alors avec un niveau de privilèges élevé.

En utilisant la cmdlet Get-Credential la demande d'identifiants peut être faite par le script et les différentes informations d'identifications obtenues peuvent être exploitées individuellement par les commandes.

# Affiche une fenêtre de demande d'identifiants
# et stocke le couple id/mdp dans un objet
$cred = Get-Credential
 
# Exécute une commande avec l'identifiant renseigné
# par l'utilisateur
Set-ADUser -Identity $user -Department "Marketing" -Credential $cred
 
# Précomplète le champ nom utilisateur et ajoute
# un message à la fenêtre de demande d'identifiants
$cred = Get-Credential -Message 'Saisir le mot de passe' -UserName "$env:USERDOMAIN\$env:USERNAME"

La cmdlet Get-Credential lance l'exécution d'une fenêtre modale et ne peut pas être utilisée dans un environnement CLI.

Enregistrer localement des identifiants

Il est possible d'enregistrer les identifiants obtenus de l'utilisateur dans un fichier. Le mode de chiffrement dépendant à la fois de l'utilisateur et de l'ordinateur, cela peut permettre d'éviter de redemander systématiquement les informations d'identifications pour l’exécution du script dans le présent contexte mais ne permet pas le partage du fichier : il sera illisible depuis une autre session ou un autre ordinateur.

# Stocke l'objet PSCredential dans un fichier
# pour une utilisateion ultérieure
$cred | Export-Clixml .\usercred.xml

Stockage des identifiants avec SecretManagement

SecretManagement est un moule publié par Microsoft plus adapté pour le stockage et le partage d'identifiants. Les commandes incluse dans le module peuvent accéder à différents fichiers coffres-forts tels qe Keepass, LastPass, CredMan ou Azure KeyVault.

Le module SecretManagement est distribué via PowerShell Gallery:

Install-Module Microsoft.PowerShell.SecretManagement

Références