如果我有一个接受多个字符串参数的函数,则第一个参数似乎获取分配给它的所有数据,其余参数作为空传入.
快速测试脚本:
Function Test([string]$arg1, [string]$arg2)
{
Write-Host "`$arg1 value: $arg1"
Write-Host "`$arg2 value: $arg2"
}
Test("ABC", "DEF")
Run Code Online (Sandbox Code Playgroud)
生成的输出是
$arg1 value: ABC DEF
$arg2 value:
Run Code Online (Sandbox Code Playgroud)
正确的输出应该是:
$arg1 value: ABC
$arg2 value: DEF
Run Code Online (Sandbox Code Playgroud)
这似乎在多台机器上的v1和v2之间是一致的,所以很明显,我做错了.任何人都可以指出究竟是什么?
我有这个powershell脚本来发送附件的电子邮件,但是当我添加多个收件人时,只有第一个收到邮件.我已经阅读了文档,仍然无法弄明白.谢谢
$recipients = "Marcel <marcel@turie.eu>, Marcelt <marcel@nbs.sk>"
Get-ChildItem "C:\Decrypted\" | Where {-NOT $_.PSIsContainer} | foreach {$_.fullname} |
send-mailmessage -from "primasfrb@nbs.sk" `
-to "$recipients" `
-subject "New files" `
-body "$teloadmin" `
-BodyAsHtml `
-priority High `
-dno onSuccess, onFailure `
-smtpServer 192.168.170.61
Run Code Online (Sandbox Code Playgroud) 我将凭据传递给Send-MailMessage命令时遇到了困难
这就是我正在运行的:
Send-MailMessage -smtpServer smtp.gmail.com -from 'myself@gmail.com' `
-to 'myself@gmail.com' -subject 'Test' -attachment C:\CDF.pdf
Run Code Online (Sandbox Code Playgroud)
它错误显示在消息下方,这显然是因为我没有通过我的gmail凭据
Send-MailMessage : The SMTP server requires a secure connection or the client was not
authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first.
Run Code Online (Sandbox Code Playgroud)
我google了一下,也浏览了手册页,Send-MailMessage发现需要传递"-credential"参数.
我的问题是:怎么样?
我尝试使用Get-Credentials,如下所示:
$mycredentials = Get-Credential
Run Code Online (Sandbox Code Playgroud)
然后在弹出的框中输入我的用户名和密码.
然后我运行以下命令:
Send-MailMessage -smtpServer smtp.gmail.com -credentail $mycredentials `
-from 'myself@gmail.com' -to 'myself@gmail.com' -subject 'Test' -attachment C:\CDF.pdf
Run Code Online (Sandbox Code Playgroud)
并且它仍然以完全相同的错误失败.
所以我需要你们帮助我们如何将我的证书传递给Send-MailMessage命令.我了解了PScredentials,但不完全确定它是什么以及如何在这种情况下使用它.
我正在尝试创建一个 powershell 脚本,该脚本应使用 Gmail SMTP 服务发送邮件。这是我的 powershell 版本 -
Get-Host | Select-Object Version
Version
-------
5.1.14393.3866
Run Code Online (Sandbox Code Playgroud)
在研究并尝试不同的代码后,我无法通过 Gmail SMTP 从 Powershell 发送电子邮件。这是我的代码:
$emailSmtpServer = "smtp.gmail.com"
$emailSmtpServerPort = "587"
$emailSmtpUser = "mymail@gmail.com"
$emailSmtpPass = "mymailpass"
$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = "mymail@gmail.com"
$emailMessage.To.Add("myothermail@mail.com")
$emailMessage.Subject = "Small mail for a friend"
$emailMessage.IsBodyHtml = $true
$emailMessage.Body = @"
<p><strong>Hello me</strong>.</p>
<p>It seems to work</p>
<p>JP</p>
"@
$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort )
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , …Run Code Online (Sandbox Code Playgroud)