gpt4 book ai didi

powershell - 新对象,属性 “disappears”

转载 作者:行者123 更新时间:2023-12-02 23:55:19 28 4
gpt4 key购买 nike

我正在尝试使脚本基于输入文件返回AD用户ID,显示名称和组成员身份,并将结果导出到另一个文件。

但是,组成员身份信息似乎在此过程中丢失了。

有任何想法吗?

我当前的脚本:

$Result = @()

ForEach ($_ in gc userlist.csv)

{

$User = Get-ADUser $_ -Properties DisplayName, SamAccountName, LastLogonDate | Select DisplayName, SamAccountName, LastLogonDate
$Groups = Get-ADPrincipalGroupMembership $_ | Select Name

# So far it seems to work

$Properties = @{
UserID = (@($User.SamAccountName) -join ',')
Name = (@($User.DisplayName) -join ',')
LastLogonDate = (@($User.LastLogonDate) -join ',')
Groups = (@($Groups.Name) -join ',')

}

# By this time, Groups doesn't return any information

$Result += New-Object psobject -Property $Properties

}

$Result | Select-Object Name, UserID, Groups, LastLogonDate | Export-Csv -NoTypeInformation -Path output.csv

最佳答案

我认为这可能会起作用:

$Result = @()

ForEach ($User in gc userlist.csv) {

$UserDetails = Get-ADUser $User -Properties DisplayName, SamAccountName, LastLogonDate | Select DisplayName, SamAccountName, LastLogonDate
$Groups = Get-ADPrincipalGroupMembership $User | Select Name

$Properties = @{
UserID = $UserDetails.SamAccountName
Name = $UserDetails.DisplayName
LastLogonDate = $UserDetails.LastLogonDate
Groups = ($Groups.Name -join '; ')
}

$Result += New-Object psobject -Property $Properties

}
$Result | Select-Object Name, UserID, Groups, LastLogonDate | Export-Csv -NoTypeInformation -Path output.csv
  • 根据我的评论,尽管使用$_可能会起作用,但手动设置该变量的方法不是特别好,因此我将其更改为$ user。
  • 因此,我已将$ user更改为$ userdetails。
  • 我删除了您对每个属性的转换,将其作为@()数组,并使用,将它们加入。我不确定为什么这是必要的,除了可能带有Groups属性,但是为了不混淆CSV结果,我将它们与;结合在一起。
  • 关于powershell - 新对象,属性 “disappears”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46178068/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com