为什么我要求凭据

问题描述:

我想问问为什么这个脚本要求我提供凭据。为什么我要求凭据

运行脚本后,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

PSCredential constructor接受用户名作为一个字符串,但预计该密码是一个SecureString

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

我会补充一点,如果您打算将密码保存在纯文本文件中,您应该:a)将密码直接放在脚本中; b)继续并将其更改为“密码”,因为它已丢失在这一点上作为安全设备的任何价值。 – EBGreen