我有一个脚本,从一个文本文件中获取用户的经理信息,包含其各自的组,我想把结果放在一个excel电子表格。
此外,我还想在Select-Objects命令中添加一个自定义变量,以便它在excel中显示为每个用户所属组的另一列
这是我到目前为止所知道的:
$Properties = @( 'Title', 'Department', 'Manager' )
[string[]]$arrayFromFile = Get-Content -Path 'C:\sslvpn-active.txt'
foreach($group in $arrayFromFile){
$searchb = "CN="+"$group"+",OU=SSLVPN,OU=UserGroupsRAS,DC=xi,DC=xxxinc,DC=net"
Get-ADGroupMember $searchb |
Get-ADUser -Properties $Properties |
Where-Object{ $_.Enabled } |
Select-Object Name, Title, Department,
@{Name = "ManagerName"; Expression = { (Get-ADUser $_.Manager).Name }},
@{Name = "ManagerMail"; Expression = { (Get-ADUser $_.Manager -Properties mail).Mail }}
}结果是目前
SSLVPN-ABC
----------------------
Name : Joe Smith
Title : IT Engineer 2
Department : IT Support
ManagerName : Billy George
ManagerMail : Billy.George@xxx.com
Name : Matt Damon
Title : IT Engineer 3
Department : IT Support
ManagerName : Billy George
ManagerMail : Billy.George@xxx.com
SSLVPN-XYZ
----------------------
Name : Jen Loo
Title : Product Designer 3
Department : Product Design
ManagerName : Ben Smit
ManagerMail : Ben.Smit@xxx.com
...我希望这个结果为excel格式,并添加一个名为" group“的自定义列,并具有组名称(例如。SSLVPN-ABC)。因此,列将是Group、Name、Title、ManagerName、ManagerMail,对于第一个组,结果单元格将全部是"SSLVPN-ABC“。
谢谢
发布于 2021-01-12 03:20:00
如下所示更改select语句。
Select-Object @{Name = "Group"; Expression = { $Group }},
Name, Title, Department,
@{Name = "ManagerName"; Expression = { (Get-ADUser $_.Manager).Name }},
@{Name = "ManagerMail"; Expression = { (Get-ADUser $_.Manager -Properties mail).Mail }} 在这里,您只是添加了另一个引用$Group迭代变量的计算属性。注意,这些属性是按照您要求的顺序列出的。
如果碰巧$Group变量没有包含该名称,您可以在表达式中使用(Get-ADGroup $searchb).Name。
像往常一样导出到Csv,我相信你已经解决了这一部分...
https://stackoverflow.com/questions/65670802
复制相似问题