Utiliser l’applet de commande Get-Credential dans des scripts Windows PowerShell
Une bonne pratique pour les administrateurs consiste à avoir deux comptes d’utilisateur. Chaque administrateur a tout intérêt à disposer d’un compte d’utilisateur standard, qu’il utilise pour ses activités quotidiennes, et d’un second compte doté d’autorisations d’administration. La séparation de ces rôles permet d’éviter d’endommager accidentellement les systèmes informatiques et de limiter les effets potentiels des programmes malveillants. L’applet de commande Get-Credential peut vous aider à utiliser le compte d’administrateur tout en restant connecté à un compte d’utilisateur standard.
De nombreux scripts exécutés par les administrateurs nécessitent des privilèges élevés. Par exemple, un script qui crée des comptes d’utilisateur Active Directory Domain Services (AD DS) nécessite des privilèges d’administrateur. Même l’interrogation des journaux des événements à partir d’un ordinateur distant peut nécessiter des privilèges d’administrateur.
Un moyen d’élever des privilèges quand vous exécutez un script consiste à utiliser l’option Exécuter en tant qu’administrateur à l’ouverture de l’invite Windows PowerShell. Quand vous utilisez l’option Exécuter en tant qu’administrateur, vous êtes invité à entrer des informations d’identification. Ainsi, toutes les actions effectuées à partir de cette invite Windows PowerShell utilisent les informations d’identification fournies.
Au lieu d’utiliser l’option Exécuter en tant qu’administrateur pour exécuter un script, vous pouvez faire en sorte que ce soit votre script qui demande des informations d’identification. De nombreuses applets de commande Windows PowerShell permettent de fournir un ensemble alternatif d’informations d’identification. Ainsi, les informations d’identification que le script obtient peuvent être utilisées pour exécuter des commandes individuelles dans le script. Vous pouvez demander des informations d’identification à l’aide de Get-Credential. La syntaxe de l’applet de commande Get-Credential à utiliser est la suivante :
$cred = Get-Credential
Set-ADUser -Identity $user -Department "Marketing" -Credential $cred
Le texte par défaut dans la fenêtre contextuelle est « Entrez vos informations d’identification ». Vous pouvez personnaliser ce texte pour le rendre plus descriptif à l’aide du paramètre -Message. Vous pouvez également remplir la zone Nom d’utilisateur à l’aide du paramètre -UserName.
Stockage des informations d’identification avec Export-Clixml
Vous pouvez stocker des informations d’identification dans un fichier à des fins de réutilisation ultérieure pour éviter d’être invité à les fournir. Pour stocker des informations d’identification dans un fichier, vous utilisez Export-Clixml. Export-Clixml chiffre l’objet d’informations d’identification avant de le stocker dans un fichier XML. Utilisez la syntaxe suivante pour stocker un objet d’informations d’identification dans un fichier.
$cred | Export-Clixml C:\cred.xml
Le chiffrement utilisé par Export-Clixml est propre à l’utilisateur et à l’ordinateur. Cela signifie que si vous stockez les informations d’identification chiffrées, vous seul pouvez récupérer ces informations d’identification chiffrées et uniquement sur l’ordinateur que vous avez utilisé initialement pour les stocker. Cette action permet de sécuriser les informations d’identification, mais elle signifie également que vous ne pouvez pas les partager avec d’autres utilisateurs.
Stockage des informations d’identification à l’aide du module SecretManagement
Microsoft a publié le module SecretManagement que vous pouvez utiliser pour stocker et récupérer des informations d’identification. Cette méthode fonctionne mieux pour stocker des informations d’identification pouvant être partagées entre plusieurs utilisateurs et ordinateurs. Les applets de commande incluses dans le module SecretManagement peuvent accéder aux informations d’identification contenues dans plusieurs coffres de secrets.
Voici quelques coffres connus :
- Keepass
- LastPass
- CredMan
- Azure KeyVault
Le module SecretManagement est disponible dans PowerShell Gallery. Vous pouvez installer le module SecretManagement en exécutant la commande suivante :
Install-Module Microsoft.PowerShell.SecretManagement
Microsoft propose également le module SecretStore que vous pouvez utiliser pour créer un coffre de secrets local pour y stocker des informations d’identification. En revanche, comme avec Export-Clixml, le coffre est stocké sur l’ordinateur local et dans le contexte utilisateur actuel.