相关疑难解决方法(0)

如何将多个参数传递到PowerShell中的函数?

如果我有一个接受多个字符串参数的函数,则第一个参数似乎获取分配给它的所有数据,其余参数作为空传入.

快速测试脚本:

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

406
推荐指数
11
解决办法
55万
查看次数

Powershell send-mailmessage - 向多个收件人发送电子邮件

我有这个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)

powershell

52
推荐指数
5
解决办法
20万
查看次数

如何将凭据传递给Send-MailMessage命令以发送电子邮件

我将凭据传递给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

34
推荐指数
6
解决办法
16万
查看次数

通过 Gmail SMTP 从 Powershell 发送邮件

我正在尝试创建一个 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)

powershell gmail smtp

3
推荐指数
1
解决办法
5888
查看次数

标签 统计

powershell ×4

gmail ×1

smtp ×1