Número del artículo: 000146459
Le concept derrière les mots de passe sécurisés est que dans les scripts de production, nous ne devons pas passer des mots de passe importants à la vue de tous. Il s’agit d’un grave manque de sécurité. Ainsi, à l’aide de PowerShell, nous pouvons sécuriser un mot de passe ou du moins réduire la visibilité du mot de passe. Nous aborderons d’abord les aspects généraux de la chaîne sécurisée, puis nous verrons comment Dell Command PowerShell Provider (DCPP) tire parti de la fonctionnalité innée de PowerShell pour sécuriser les mots de passe.
Supposons que nous voulions lire le nom d’utilisateur et le mot de passe de l’utilisateur sur la console. Nous savons que le nom d’utilisateur ne nécessite généralement aucune sécurité et qu’il peut être visible par tous. Mais pour le mot de passe, nous ne devons pas laisser des étrangers connaître le mot de passe de l’utilisateur. Nous pouvons faciliter cette exigence avec les commandes ci-dessous :
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Ce qui précède donne un aperçu de la façon dont nous pouvons ajouter plus de sécurité lorsque nous devons sécuriser des informations critiques telles qu’un mot de passe. Dans l’exemple ci-dessus, la variable $pass est de type System.Security.SecureString
. Nous découvrons deux autres applets de commande largement utilisées fournies par PowerShell pour faciliter les champs sécurisés avant d’aborder certains aspects de DCPP.
Les deux commandes sont les suivantes : ConvertTo-SecureString
et ConvertFrom-SecureString
. ConvertTo-SecureString
Convertit un texte brut en texte texte System.Security.SecureString
. Un exemple est présenté ci-dessous :
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Dans l’exemple ci-dessus, le texte brut P@assword1
est converti en type System.Security.SecureString
. Il s’agit plutôt d’une information qui peut ou non être largement utilisée.
La cmdlet suivante ConvertFrom-SecureString
est une applet de commande plus largement utilisée qui est utilisée pour convertir des chaînes sécurisées en chaînes standard chiffrées. La principale limite de ConvertTo-SecureString
est que sa sortie ne peut pas être directement écrite dans un fichier pour une utilisation ultérieure. Nous devons utiliser ConvertFrom-SecureString
qui convertit System.Security.SecureString
dans une chaîne standard chiffrée qui peut être facilement enregistrée dans un fichier, pour surmonter cette limitation.
Nous convertissons le texte brut P@ssword1
pour fixer la chaîne et ensuite rediriger sa sortie vers ConvertFrom-SecureString
pour obtenir une chaîne chiffrée qui peut être enregistrée en toute sécurité et de manière pratique dans un fichier.
Prenons l’exemple d’un ordinateur, si le mot de passe administrateur a été défini et que nous devons l’enregistrer dans un fichier. Pour ce faire, nous pouvons utiliser :
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Nous pouvons récupérer ce mot de passe administrateur dans une variable en tant qu’objet sécurisé comme suit :
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Voyons maintenant comment tirer parti d’un mot de passe sécurisé pour DCPP. Dans DCPP, si le mot de passe système ou admin est défini sur l’ordinateur de l’utilisateur, alors pour tous set
commandes, nous devons passer le mot de passe respectif. Par conséquent, fournir ce mot de passe en texte brut constitue une violation de la sécurité. Nous devons passer le mot de passe comme System.Security.SecureString
. De plus, lorsque nous passons un SecureString
mot de passe, nous devons le passer avec un -PasswordSecure
commutateur et non le commutateur normal –Password
interrupteur. Vous trouverez ci-dessous un exemple que l’utilisateur essaie de définir AdvancedBatteryChargeCfg
to Disabled
et en passant SecureString
mot de passe:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Ici, $pass contient le mot de passe système et admin et est de type System.Security.SecureString
. Semblable à la discussion ci-dessus, nous pouvons lire $pass
comme:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Nous pouvons économiser $pass
à un fichier, si nécessaire, comme suit :
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Articles connexes :
Dell Command | Powershell Provider
18 jul. 2024
8
How To