2015-11-03 56 views
-1

我想問問爲什麼這個腳本要求我提供憑據。爲什麼我要求憑據

運行腳本後,PowerShell窗口打開,另一個窗口詢問登錄名和密碼。我給了這個登錄名和密碼後,它就可以工作(發送郵件),但我希望它自動工作。

下面是代碼:

$pw = Get-Content C:\path\passwordfile.txt 
$cred = New-Object System.Management.Automation.PSCredential "mymail", $pw 
Send-MailMessage -from "Test <mymail>" -to "recipient <recipientmail>" -Subject "Script Test" -body "Script Test" -priority high -smtpserver poczta.o2.pl -credential $cred 
SmtpServer=mysmtpadress 
SmtpPort=465 
+0

爲了提高安全性考慮使用GET-憑證創建一個包含加密形式密碼的clixml文件。它不會抵擋那些妥協了你的機器的人,但肯定比純文本更好。 – emanresu

回答

2

PSCredential constructor接受用戶名作爲一個字符串,但預計該密碼是一個SecureString

$pw = Get-Content C:\path\passwordfile.txt | ConvertTo-SecureString -AsPlainText -Force 
+1

我會補充一點,如果您打算將密碼保存在純文本文件中,您應該:a)將密碼直接放在腳本中; b)繼續並將其更改爲「密碼」,因爲它已丟失在這一點上作爲安全設備的任何價值。 – EBGreen