Número del artículo: 000146459
Sans objet
Le concept qui sous-tend les mots de passe sécurisés est que dans les scripts de production, nous ne devons pas passer des mots de passe importants comme des mots de passe simples. Il s’agit d’un sérieux manque de sécurité. Avec PowerShell, nous pouvons sécuriser un mot de passe ou au moins réduire la visibilité des mots de passe. Nous abordons d’abord les aspects généraux de la chaîne sécurisée, puis nous discutons de la façon dont Dell Command PowerShell Provider (DCPP) tire parti de la fonction innate de PowerShell pour sécuriser le mot de passe.
Tenez compte du fait que nous voulons 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 informer les inconnus du 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
Vous trouverez ci-dessus une vue d’ensemble de la façon dont nous pouvons augmenter la sécurité lorsque nous devons sécuriser les informations critiques comme un mot de passe. Dans l’exemple ci-dessus, la variable $pass est de type System.Security.SecureString
. Nous obtenons une introduction à deux autres applets de commande largement utilisés que PowerShell fournit pour faciliter les champs sécurisés avant d’aborder les aspects de DCPP.
Les deux commandes sont ConvertTo-SecureString
et ConvertFrom-SecureString
. ConvertTo-SecureString
convertit un texte brut en texte brut pour le saisir System.Security.SecureString
. Un exemple est présenté ci-dessous :
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
Dans l’exemple ci-dessus, le texte P@assword1
brut est converti en type System.Security.SecureString
. Il s’agit davantage d’informations et peut être ou non largement utilisée.
La cmdlet suivante est une cmdlet ConvertFrom-SecureString
plus largement utilisée qui est utilisée pour convertir des chaînes sécurisées en chaînes standard chiffrées. La principale limitation 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 se convertit System.Security.SecureString
en chaîne standard chiffrée qui peut être facilement enregistrée dans un fichier, pour surmonter cette limite.
Nous convertissons du texte P@ssword1
brut en chaîne sécurisée, puis nous faisons passer sa sortie pour ConvertFrom-SecureString
obtenir une chaîne chiffrée qui peut être enregistrée en toute sécurité et facilement dans un fichier.
Par exemple, sur un ordinateur, si le mot de passe admin a été défini et que nous devons l’enregistrer dans un fichier. Pour ce faire, procédez comme suit:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Nous pouvons récupérer ce mot de passe admin dans une variable en tant qu’objet sécurisé comme suit:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
À présent, réfléchissez à la façon d’utiliser 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, pour toutes les set
commandes, nous devons transmettre le mot de passe correspondant. Le fait de fournir ce mot de passe en texte brut constitue une faille de sécurité. Nous devons donc passer le mot de passe en tant que System.Security.SecureString
. En outre, lorsque nous passons un SecureString
mot de passe, nous devons le transmettre avec un -PasswordSecure
commutateur et non avec le commutateur normal –Password
. Un exemple est illustré ci-dessous, où l’utilisateur tente de définir AdvancedBatteryChargeCfg
Disabled
et de passer SecureString
le 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
. À l’instar de la discussion ci-dessus, nous pouvons lire $pass
ce qui suit:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Nous pouvons enregistrer $pass
dans un fichier, si nécessaire, en tant que:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Articles connexes :
Dell Command | Powershell Provider
11 sept 2023
7
Solution