小程序三方平台开发: 解析小程序开发的未来趋势和机遇
878
2022-09-12
Powershell 构造带有表格的HTML邮件
场景
定期查询AD中的用户,过滤出所有被锁定的账号,生成一个表格,并发送给IT同学。
实现
直接上脚本
## 查询所有锁定用户的SamAccountName $account_locked = (Search-ADAccount -LockedOut -SearchBase "ou=employees,dc=123,dc=com" -ResultSetSize 1000).SamAccountName ## $Report = @() ## 定一个空数组 Foreach ($i in $account_locked){ $userinfo = Get-ADUser -id $i -Properties Name,SamAccountName,DisplayName,mail,LastLogonDate $displayname = $userinfo.DisplayName $email = $userinfo.mail $samaccount = $i $lastlogondate = $userinfo.LastLogonDate ## 自定义个PS对象遍历存储所有用户信息 $Report += New-Object -TypeName psobject -Property @{ SamAccountName = $samaccount DisplayName = $displayname Email = $email LastLogonDate = $lastlogondate } } $Report = $Report | Sort-Object LastLogonDate ## 定义一个数据表 $DataTable = New-Object System.Data.DataTable "DataTable" $col1 = New-Object system.Data.DataColumn LogonName,([string]) $col2 = New-Object system.Data.DataColumn DisplayName,([string]) $col3 = New-Object system.Data.DataColumn Email,([string]) $col4 = New-Object system.Data.DataColumn LastLogonDate,([string]) ## 增加列 $DataTable.Columns.Add($col1) $DataTable.Columns.Add($col2) $DataTable.Columns.Add($col3) $DataTable.Columns.Add($col4) ## 增加数据行 foreach ($entry in $Report){ $row = $DataTable.NewRow() $row.LogonName = $entry.SamAccountName $row.DisplayName = $entry.DisplayName $row.Email = $entry.Email $row.LastLogonDate = $entry.LastLogonDate $DataTable.Rows.Add($row) } #Write-Output $DataTable.Rows ## 构造html表头 $HtmlTable = "
登录名 | 显示名 | 邮箱 | 后登陆日期 |
---|---|---|---|
" + $row.LogonName + " | " + $row.DisplayName + " | " + $row.Email + " | " + $row.LastLogonDate + " |
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~