首页 > 解决方案 > 远程安装完成后无法使用 PowerShell 向正确的用户发送电子邮件

问题描述

我编写了一个脚本,该脚本利用 try catch 使用 PowerShell 在远程计算机上安装软件。

该脚本尝试安装软件,如果成功,则应该向用户发送一封电子邮件,告知完成。除了发送电子邮件部分外,所有工作都按我的预期工作。

我正在使用以下简单的代码片段来发送电子邮件:

$username = "someone@example.com"
$password = "*****"
$sstr = ConvertTo-SecureString -string $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -argumentlist $username, $sstr
$body = "Update installed successfully"
$searcher = [adsisearcher]"(samaccountname=$env:USERNAME)"
$name = $searcher.FindOne().Properties.mail
Send-MailMessage -To $name, "someone@example.com" -From "someone@example.com" -Subject 'Test message' -Body $body -BodyAsHtml -smtpserver smtp.office365.com -usessl -Credential $cred -Port 587

但是,由于我在远程计算机上以我自己的身份(对于提升的权限)运行脚本,因此脚本的以下部分将返回我的电子邮件地址而不是最终用户,因此将电子邮件发送给我自己而不是最终用户:

$searcher = [adsisearcher]"(samaccountname=$env:USERNAME)"
$name = $searcher.FindOne().Properties.mail

例子

echo $name
myemail@example.com

关于如何返回我正在安装软件的用户名而不是我自己的用户名有什么建议吗?

提前致谢。

标签: powershell

解决方案


推荐阅读