Tìm kiếm trang web

Cách lưu trữ thông tin xác thực an toàn với PowerShell


Có các tập lệnh PowerShell mà bạn phải xác thực và lưu trữ mật khẩu trong PowerShell. Đôi khi, bạn muốn nhận được lời nhắc về thông tin xác thực để điền thông tin xác thực và chạy tập lệnh. Lần khác, bạn muốn tự động hóa tác vụ và lưu mật khẩu một cách an toàn ở định dạng được mã hóa. Trong bài viết này, bạn sẽ tìm hiểu cách lưu trữ thông tin xác thực một cách an toàn bằng PowerShell.

Tương tác và không tương tác

  • Phương thức Tương tác yêu cầu sự tương tác của người dùng, chẳng hạn như nhắc người dùng nhập tên người dùng và mật khẩu. Nó tiến xa hơn khi các thông tin cần thiết được đưa ra.
  • Phương thức Không tương tác không yêu cầu người dùng nhập vào trong quá trình thực thi tập lệnh và thường dựa vào cài đặt được định cấu hình trước, quy trình tự động hoặc dữ liệu được cung cấp trước.

Quan trọng: Luôn điền mật khẩu một cách an toàn và không bao giờ điền bằng văn bản thuần túy.

Lưu trữ thông tin xác thực trong PowerShell để tương tác với người dùng (interactive)

Nếu bạn muốn tập lệnh nhắc nhập tên người dùng và mật khẩu, hãy làm theo các bước theo một trong các phương pháp dưới đây.

Phương pháp 1. Nhận thông tin xác thực

  1. Chạy lệnh ghép ngắn Get-Credential để lưu trữ an toàn thông tin xác thực của bạn trong biến $Creds
$Creds = Get-Credential
  1. Yêu cầu thông tin xác thực Windows PowerShell xuất hiện nơi bạn phải điền thông tin xác thực

  1. Chạy biến $Creds trong PowerShell
$Creds
  1. Đầu ra hiển thị tên người dùng và mật khẩu hiển thị dưới dạng chuỗi bảo mật
UserName                       Password
--------                       --------
myusername System.Security.SecureString

Phương pháp 2. PSCredential

  1. Chạy lệnh bên dưới để lưu trữ an toàn thông tin xác thực của bạn trong biến $Creds
$Creds = [System.Management.Automation.PSCredential]::new((Read-Host -Prompt "Enter username"), (Read-Host -Prompt "Enter password" -AsSecureString))
  1. Nhập tên người dùng và mật khẩu
Enter username: myusername
Enter password: ****************
  1. Chạy biến $Creds trong PowerShell
$Creds
  1. Đầu ra hiển thị tên người dùng và mật khẩu hiển thị dưới dạng chuỗi bảo mật
UserName                       Password
--------                       --------
myusername System.Security.SecureString

Điều này thật tuyệt vời khi bạn có một tập lệnh để chạy tương tác và bạn có thể nhập thông tin xác thực mọi lúc. Nhưng điều gì sẽ xảy ra nếu bạn không đứng sau máy tính và muốn tự động hóa tập lệnh bằng một tác vụ đã lên lịch? Sau đó, bạn phải sử dụng một phương pháp khác.

Lưu trữ thông tin xác thực trong PowerShell để tự động hóa (không tương tác)

Để lưu trữ thông tin xác thực trên hệ thống để nó tải mỗi khi bạn chạy tập lệnh PowerShell, bạn cần làm theo các bước dưới đây:

  1. Chạy lệnh ghép ngắn Get-Credential để lưu trữ an toàn thông tin xác thực của bạn trong biến $Creds
$Creds = Get-Credential
  1. Nhập thông tin xác thực của bạn
  2. Xuất thông tin xác thực sang tệp XML được mã hóa
$Creds | Export-CliXml -Path "C:\creds\credential.xml"

Lưu ý: Lệnh ghép ngắn Xuất-Clixml mã hóa các đối tượng thông tin xác thực bằng cách sử dụng API bảo vệ dữ liệu của Windows. Mã hóa đảm bảo rằng chỉ tài khoản người dùng của bạn mới có thể giải mã nội dung của đối tượng thông tin xác thực. Tệp CLIXML đã xuất không thể được sử dụng trên máy tính khác hoặc bởi người dùng khác.

  1. Điều hướng đến đường dẫn và xác minh tệp XML

  1. Mở tệp XML và kiểm tra xem mật khẩu đã được mã hóa chưa

  1. Trong tập lệnh PowerShell, giờ đây bạn có thể chạy lệnh ghép ngắn Import-Clixml và trỏ nó đến đường dẫn chứa tệp XML để tải tên người dùng và mật khẩu được mã hóa
$Creds = Import-CliXml -Path "C:\creds\credential.xml"

Thế thôi!

Đọc thêm: Định cấu hình Xác thực dựa trên chứng chỉ Exchange Online cho các tập lệnh không được giám sát »

Phần kết luận

Bạn đã tìm hiểu cách lưu trữ thông tin xác thực một cách an toàn bằng PowerShell. Có nhiều phương pháp khác nhau để lưu thông tin xác thực trong PowerShell. Kiểm tra xem đó là tập lệnh tương tác hay không tương tác và áp dụng đúng phương pháp. Luôn đảm bảo mật khẩu được điền an toàn và không ở dạng văn bản rõ ràng.

Bạn có thích bài viết này không? Bạn cũng có thể thích Cách kết nối với Microsoft Graph PowerShell. Đừng quên theo dõi chúng tôi và chia sẻ bài viết này.

Bài viết liên quan