powershell - 导入用户和管理员的 csv 文件的最佳方式,然后通过电子邮件向管理员发送用户列表
问题描述
请原谅我违反任何规则。我是一个全新的 StackOverflow 用户,也是一个 powershell 菜鸟。我正在做一个工作项目,在该项目中导入一个包含用户列表及其各自经理的 CSV 文件。然后,我需要创建一封电子邮件,其中包含一个包含每个经理的用户的表格。
我知道如何导入 csv 文件。我已经创建了一个基本的电子邮件发送代码。我完全不知道如何适当地让用户和管理者相互关联。
例如,我的 csv 使用如下标题格式化:
First Name Last Name Username Manager
Bob Dole BDole Jsmith
John Doe JDoe Anoob
Jane Doe JDoe1 Jsmith
etc.
有人可以指出我正确的方向吗?我尝试使用哈希表和数组,但没有成功。这可能是由于我的菜鸟身份。
如果我应该添加更多信息,请告诉我。由于没有任何效果,我目前没有编写任何真正的代码,所以请原谅帖子中非常有限的代码。
$users = import-csv "Path goes here"
"My code for associating the users and managers would go here"
"Email code goes here"
解决方案
$users = Import-Csv .\test.csv -Delimiter ";"
$cred = Get-Credential # enter the credentials for your email account
从哪里发送邮件
$users | Group-Object -Property Manager | % {
$managername = $_.name
write-host $managername
$body = $_.group | format-table | ConvertTo-Html
write-host $body
Send-MailMessage -to "$managername@some.com" -Body $body -From "yourmail" -SmtpServer "yoursmtpserver" -Port "your smtp port" -Subject "mailsubject" -Credential $cred -BodyAsHtml
}
如果您不想每次都输入您的邮件凭据,您可以将它们保存如下。
get-credential | export-clixml -path "somepath"
稍后您可以从您的操作系统中读取凭据:
$cred = import-clixml -path "somepath"
推荐阅读
- sql - 如何为每个列值选择不同的项目数?
- birt - 在 AIX 上,BIRT 看到字体,rotatedtext 控件没有
- firebase - 如何在 us-central1 以外的区域使用 httpsCallable for web
- javascript - 向帖子添加新评论时“超出最大调用堆栈大小”
- r - 未使用 scale_fill_discrete 值
- php - 我从同一网络中的不同计算机获取相同的 IP 地址
- html - 为什么这个 html 'aside' 没有出现在侧面?
- node.js - 数据在数据库中发生变异但未更新
- r - 在 R 中更改系统发育中的尖端标签
- javascript - 如何停止打印“[object Object]”而不是对象本身?