嗨,我正在尝试运行一个脚本,将网络中的用户放入一个数组中,以便将它与我将要获取的其他数据(例如通讯组)一起输出到 csv 文件。
我正在运行的代码脚本出现错误:
方法调用失败,因为 [System.Management.Automation.PSObject] 不包含名为“op_Addition”的方法。
该脚本是一个简单的 for 循环:
$ActiveDirectoryList=@()
$UserDetails = get-aduser -filter {enabled -eq $true} -properties * | Select DisplayName,EmailAddress, SAMAccountName
$counter = 0
foreach($User in $UserDetails){
$ActiveDirectoryList = New-Object PSObject
$Users = get-aduser $User.SAMAccountName -properties *
if(!$Users.EmailAddress -eq ""){
$counter++
$ActiveDirectoryList | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $Users.DisplayName
$ActiveDirectoryList | Add-Member -MemberType NoteProperty -Name "Email Address" -Value $Users.EmailAddress
write-host $Users.DisplayName
$ActiveDirectoryList+=$ActiveDirectoryList
}
}
Run Code Online (Sandbox Code Playgroud)
尝试在互联网上寻找解决方案,但他们似乎没有解决任何问题。
不要为数组重复使用相同的变量名,以及要添加到数组中的单个对象。在这里,我已将PSObject变量重命名为$ActiveDirectoryObject:
$ActiveDirectoryList=@()
$UserDetails = get-aduser -filter {enabled -eq $true} -properties * | Select DisplayName,EmailAddress, SAMAccountName
$counter = 0
foreach($User in $UserDetails){
$ActiveDirectoryObject = New-Object PSObject
$Users = get-aduser $User.SAMAccountName -properties *
if(!$Users.EmailAddress -eq ""){
$counter++
$ActiveDirectoryObject | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $Users.DisplayName
$ActiveDirectoryObject | Add-Member -MemberType NoteProperty -Name "Email Address" -Value $Users.EmailAddress
write-host $Users.DisplayName
$ActiveDirectoryList += $ActiveDirectoryObject
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59065 次 |
| 最近记录: |