为什么我要求凭据
问题描述:
我想问问为什么这个脚本要求我提供凭据。为什么我要求凭据
运行脚本后,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
答
的PSCredential
constructor接受用户名作为一个字符串,但预计该密码是一个SecureString
:
$pw = Get-Content C:\path\passwordfile.txt | ConvertTo-SecureString -AsPlainText -Force
+1
我会补充一点,如果您打算将密码保存在纯文本文件中,您应该:a)将密码直接放在脚本中; b)继续并将其更改为“密码”,因为它已丢失在这一点上作为安全设备的任何价值。 – EBGreen
为了提高安全性考虑使用GET-凭证创建一个包含加密形式密码的clixml文件。它不会抵挡那些妥协了你的机器的人,但肯定比纯文本更好。 – emanresu