Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

Funkcja Bezpieczne hasło modułu Dell Command PowerShell Provider

Summary: Funkcja Bezpieczne hasło modułu Dell Command | PowerShell Provider (DCPP), ConvertTo-SecureString, ConvertFrom-SecureString

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Dotyczy produktów:

  • Aplikacja Dell Command | PowerShell Provider

Koncepcja bezpiecznych haseł polega na tym, że w skryptach produkcyjnych nie powinniśmy przekazywać ważnych haseł w widoczny sposób. Jest to poważny brak zabezpieczenia. Zatem za pomocą PowerShell możemy zabezpieczyć hasło lub przynajmniej zmniejszyć jego widoczność. Najpierw omówimy ogólne aspekty bezpiecznego ciągu, a następnie sposób, w jaki Dell Command PowerShell Provider (DCPP) wykorzystuje wrodzoną funkcję PowerShell do zabezpieczania hasła.

Powiedzmy, że chcemy odczytać nazwę użytkownika i hasło użytkownika w konsoli. Wiemy, że nazwa użytkownika na ogół nie wymaga żadnych zabezpieczeń i może być widoczna dla wszystkich. Nie powinniśmy natomiast ujawniać nieznajomym hasła użytkownika. Spełnienie tego wymagania możemy ułatwić za pomocą poniższych poleceń:

$user = Read-Host "Enter Username"

$pass = Read-Host "Enter Password" -AsSecureString

Powyżej przedstawiono sposoby zwiększenia bezpieczeństwa, gdy konieczne jest zabezpieczenie krytycznych informacji, takich jak hasło. W powyższym przykładzie zmienna $pass jest typu System.Security.SecureString. Zapoznamy się z wprowadzeniem do dwóch innych powszechnie używanych poleceń cmdlet programu PowerShell, które ułatwiają bezpieczne pola, zanim przejdziemy do aspektów DCPP.

Te dwa polecenia to ConvertTo-SecureString i ConvertFrom-SecureString. ConvertTo-SecureString konwertuje zwykły tekst na typ System.Security.SecureString. Poniżej przedstawiono przykład:

"P@ssword1" | ConvertTo-SecureString -AsPlainText -Force

W powyższym przykładzie zwykły tekst P@assword1 jest konwertowany na typ System.Security.SecureString. Jest to jedynie informacja, która może, ale nie musi być powszechnie stosowana.

Następne polecenie cmdlet ConvertFrom-SecureString jest szerzej używanym poleceniem cmdlet, które służy do konwertowania bezpiecznych ciągów na zaszyfrowane ciągi standardowe. Główne ograniczenie ConvertTo-SecureString jest takie, że jego dane wyjściowe nie mogą być bezpośrednio zapisane w pliku do wykorzystania w przyszłości. Musimy użyć ConvertFrom-SecureString które konwertuje System.Security.SecureString na zaszyfrowany standardowy ciąg, który można wygodnie zapisać w pliku, aby pokonać to ograniczenie.

Konwertujemy zwykły tekst P@ssword1 aby zabezpieczyć ciąg, a następnie przesłać jego dane wyjściowe do ConvertFrom-SecureString aby uzyskać zaszyfrowany ciąg znaków, który można bezpiecznie i wygodnie zapisać w pliku.

Załóżmy na przykład, że na komputerze ustawiono hasło administratora i musimy zapisać je w pliku. Możemy to zrobić za pomocą:

Read-Host "Enter Admin Password" -AsSecureString |
ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt"

Możemy odzyskać to hasło administratora do zmiennej jako bezpieczny obiekt w następujący sposób:

$pass = Get-Content "C:\Scripts\AdminPassword.txt" | ConvertTo-SecureString

Zastanówmy się teraz, jak wykorzystać bezpieczne hasło dla DCPP. W DCPP, jeśli komputer użytkownika ma ustawione hasło systemowe lub hasło administratora, dla wszystkich set poleceń musimy przekazać odpowiednie hasło. Zatem podanie tego hasła w postaci zwykłego tekstu powoduje naruszenie zabezpieczeń. Musimy przekazać hasło jako System.Security.SecureString. Ponadto gdy przekazujemy SecureString hasło, musimy je przekazać za pomocą -PasswordSecure przełącznika, ale nie normalnego –Password przełącznika. Poniżej pokazano przykład, w którym użytkownik próbuje ustawić AdvancedBatteryChargeCfg na Disabled i przekazuje SecureString hasło:

Set-item AdvancedBatteryChargeCfg disabled –PasswordSecure $pass

W tym miejscu $pass przechowuje hasło systemowe i hasło administratora oraz jest typu System.Security.SecureString. Podobnie jak w powyższym omówieniu możemy odczytać $pass jako:

$pass = Read-Host "Enter system/admin password" –AsSecureString

Możemy zapisać $pass w pliku, jeśli jest to wymagane, jako:

$pass| ConvertFrom-SecureString | Out-File "C:\Scripts\AdminPassword.txt

Additional Information

Affected Products

Dell Command | Powershell Provider
Article Properties
Article Number: 000146459
Article Type: How To
Last Modified: 18 Jul 2024
Version:  8
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.