Windows 在引导时运行Powershell脚本而不登录

Windows 在引导时运行Powershell脚本而不登录,windows,powershell,Windows,Powershell,我已经到处找过了,但是找不到这个。我有一个PS脚本,可以在服务器启动时发送电子邮件。当我通过cmd文件运行它时,它就工作了。我在任务计划程序下设置了一个任务来运行该cmd文件,并选择了“无论用户是否登录都运行”和“以最高权限运行” 当我重新启动电脑时,它不会运行脚本 脚本仅在我登录时运行 有什么想法吗 当计算机启动时。按建议将输出发送到日志获取以下内容: 使用“4”参数调用“发送”时出现异常:“发送邮件失败。” 在C:\Users\ravlo\sendmail.ps1:9 char:1 +$

我已经到处找过了,但是找不到这个。我有一个PS脚本,可以在服务器启动时发送电子邮件。当我通过cmd文件运行它时,它就工作了。我在任务计划程序下设置了一个任务来运行该cmd文件,并选择了“无论用户是否登录都运行”和“以最高权限运行”

当我重新启动电脑时,它不会运行脚本

脚本仅在我登录时运行

有什么想法吗


当计算机启动时。按建议将输出发送到日志获取以下内容:


使用“4”参数调用“发送”时出现异常:“发送邮件失败。” 在C:\Users\ravlo\sendmail.ps1:9 char:1 +$SMTPClient.Send($EmailFrom、$EmailTo、$Subject、$Body) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified:(:)[],MethodInvocationException +FullyQualifiedErrorId:SmtpException


全文如下:




在我实际登录时运行正常。

在执行Send()之前,能否测试邮件服务器的可访问性?你可以加上

if ((Test-NetConnection -ComputerName $SMTPServer -Port 25).TcpTestSucceeded) {
    $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
} else {
    Write-Output "SMTP Server not accessible"
}

如果您有Windows Pro及更高版本,您可以在计算机配置范围中使用组策略启动脚本。

您为任务选择了什么
触发器
<当计算机启动时或当我登录时?您为任务配置了哪些操作?该任务的
历史记录
/
上次运行结果
显示了什么?你确定脚本根本没有运行,而只是它的电子邮件部分失败了吗?您是否可以在脚本中写入日志以查看它在做什么以及何时执行?我不认为有必要使用最高权限运行
,而且,根据您的电子邮件系统,运行脚本的用户可能并不重要。hi编辑了原始帖子的详细信息。这是否回答了您的问题?
if ((Test-NetConnection -ComputerName $SMTPServer -Port 25).TcpTestSucceeded) {
    $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
} else {
    Write-Output "SMTP Server not accessible"
}