我正在嘗試將檔案發送到電子郵件。我找到了這個代碼并且它有效,但我想自動添加密碼有什么解決方案嗎??
$MyEmail = "[email protected]"
$Password = "TEST2132"
$SMTP= "smtp.gmail.com"
$To = "[email protected]"
$Subject = "LOG FILE!"
$Creds = (Get-Credential -Credential "$MyEmail")
$attachment = "C:\TEST.txt"
Start-Sleep 2
Send-MailMessage -To $to -From $MyEmail -Subject $Subject -Attachment $attachment -SmtpServer $SMTP -Credential $Creds -UseSsl -Port 587 -DeliveryNotificationOption never

uj5u.com熱心網友回復:
非安全方法
以下是從密碼字串創建憑證物件的方法。
# Some email credentials
$username = 'Username'
$password = 'Password' | ConvertTo-SecureString -AsPlainText -Force
$Creds = [PSCredential]::New($username,$password)
正如評論中指出的那樣,直接在腳本中設定密碼是不安全的,因為任何可以訪問腳本的人都會看到密碼。
秘密管理模塊方法
這種方法需要一點準備,但在我看來是最好的,因為密碼是從秘密保險庫中檢索的,而不是在您的腳本中隨時可用。
先決條件
模塊
安裝以下模塊
Install-Module Microsoft.PowerShell.SecretManagement
Install-Module SecretManagement.JustinGrote.CredMan
金庫
創建一個保管庫來存盤電子郵件憑據以及將來可能的許多其他憑據。
Register-SecretVault -ModuleName SecretManagement.JustinGrote.CredMan -Name 'Default'
將憑據保存到保管庫中。
$username = 'Username'
$password = 'Password' | ConvertTo-SecureString -AsPlainText -Force
$Creds = [PSCredential]::New($username, $password)
Set-Secret -Name 'SomeEmailCreds' -Secret $Creds -Vault Default
如何使用
滿足所有先決條件后,您可以使用該Get-Secret陳述句從本地保管庫獲取憑據。本Set-Secret應該是無處在你的腳本,而且你只需要在某個時候更新您的憑據,你應該使用它。
$Creds = Get-Secret -Vault Default -Name 'SomeEmailCreds'
筆記
請注意,保管庫是“每用戶”和“每臺機器”,因此應該在用戶和運行它的機器上創建它。
SecretManagement 除了 Justin Grote 的 CredsMan 之外,還有其他模塊使用各種不同的保管庫,因此可以實作 Azure 密鑰保管庫、1password 等
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/395663.html
