Número del artículo: 000146459
Не зазначалося
Концепція безпечних паролів полягає в тому, що у виробничих сценаріях ми не повинні передавати важливі паролі як звичайний вигляд. Це серйозний недолік безпеки. Таким чином, використовуючи PowerShell, ми можемо захистити пароль або, принаймні, зменшити видимість пароля. Спочатку ми обговорюємо загальні аспекти безпечного рядка, а потім обговорюємо, як Dell Command PowerShell Provider (DCPP) використовує вроджену функцію PowerShell для захисту пароля.
Врахуйте, що ми хочемо прочитати ім'я користувача та пароль від користувача на консолі. Ми усвідомлюємо, що ім'я користувача, як правило, не вимагає ніякої безпеки, і воно може бути видимим для всіх. Але для пароля ми не повинні повідомляти стороннім людям пароль користувача. Ми можемо полегшити цю вимогу за допомогою команд, як показано нижче:
$user = Read-Host "Enter Username" $pass = Read-Host "Enter Password" -AsSecureString
Вище наведено огляд того, як ми можемо додати більше безпеки, коли ми повинні захистити важливу інформацію, таку як пароль. У наведеному вище прикладі змінна $pass має тип System.Security.SecureString
. Ми ознайомимося з двома іншими широко використовуваними командлетами, які надає PowerShell для полегшення захисту полів, перш ніж торкатися аспектів DCPP.
Дві команди є ConvertTo-SecureString
і ConvertFrom-SecureString
. ConvertTo-SecureString
Перетворює звичайний текст на текст System.Security.SecureString
. Приклад показаний нижче:
"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force
У наведеному вище прикладі звичайний текст перетворюється на текст P@assword1
System.Security.SecureString
. Це скоріше інформація і може широко використовуватися, а може і не використовуватися.
Наступний командлет ConvertFrom-SecureString
є більш широко використовуваним командлетом, який використовується для перетворення захищених рядків на зашифровані стандартні рядки. Основне обмеження полягає в ConvertTo-SecureString
тому, що його вихід не може бути безпосередньо записаний у файл для подальшого використання. Ми повинні використовувати ConvertFrom-SecureString
те, що перетворюється System.Security.SecureString
в зашифрований стандартний рядок, який можна зручно зберегти в файл, щоб подолати це обмеження.
Ми перетворюємо звичайний текст P@ssword1
у безпечний рядок, а потім перетворюємо його вихід, щоб ConvertFrom-SecureString
отримати зашифрований рядок, який можна безпечно та зручно зберегти у файл.
Як приклад, скажімо, на комп'ютері, якщо пароль адміністратора встановлений і ми повинні зберегти його у файл. Ми можемо зробити це за допомогою:
Read-Host "Enter Admin Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"
Ми можемо отримати назад цей пароль адміністратора в змінну як безпечний об'єкт як:
$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString
Тепер розглянемо, як використовувати безпечний пароль для DCPP. У DCPP, якщо на комп'ютері користувача встановлено системний пароль або пароль адміністратора, то для всіх set
команд ми повинні передати відповідний пароль. Тому надання цього пароля як звичайного тексту порушує безпеку. Отже, ми повинні передати пароль як System.Security.SecureString
. Крім того, коли ми передаємо SecureString
пароль, ми повинні передати його перемикачем, а не звичайним –Password
перемикачем-PasswordSecure
. Нижче показано приклад, де користувач намагається встановити AdvancedBatteryChargeCfg
пароль і Disabled
передати SecureString
його:
Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass
Тут $pass містить пароль системи та адміністратора і має тип System.Security.SecureString
. Подібно до наведеної вище дискусії ми можемо прочитати $pass
як:
$pass = Read-Host "Enter system/admin password" –AsSecureString
Ми можемо зберегти $pass
у файл, якщо потрібно, як:
$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt
Dell Command | Powershell Provider
11 sept 2023
7
Solution