将 CSV 中的 AD 用户与特定 OU 进行比较
Compare AD users from CSV to a specific OU
我有一个来自我整个域的用户名的 CSV 列表,我正在尝试将该列表与特定 OU 进行比较,并将匹配项发送到另一个文件。我是 Powershell 的新手,所以经过大量研究并与其他脚本进行比较后,我想到了这个:
$users = Import-csv C:\Users\me\Desktop\'RSA.csv'
$(ForEach ($user in $users)
{
Get-AdUser -identity $user -SearchBase "ou=Sub,ou=Root,dc=My,dc=Domain,dc=Name" -Filter *
}) |
Select-Object SamAccountName |
Export-CSV -Path C:\Users\me\Downloads\test\output.csv -NoTypeInformation
当我 运行 时,我收到错误“Get-ADUser:无法验证参数 'Identity' 上的参数。参数上的身份 属性
是 null 或空的。”如果我 运行 没有 -identity $user 它只会提取所有内容。关于如何使这项工作有什么建议吗?
当您调用 Get-ADUser 而不是给它一个仅包含用户名的字符串时,您传递的是一个带有 属性 名为用户名的对象。您可以使用 Select-Object -ExpandProperty Username
或仅引用 属性.
Import-Csv 'C:\Users\me\Desktop\RSA.csv' |
Where-Object {(!([string]::IsNullorWhiteSpace($_.UserName)))} |
ForEach-Object {
Get-ADUser -Identity $_.UserName
} |
Select-Object SamAccountName |
Export-CSV -Path C:\Users\me\Downloads\test\output.csv -NoTypeInformation
注意:更改为 ForEach-Object 循环以提高可读性,因为它看起来像您在尝试主要使用管道的地方。还添加了一个测试以跳过空白行或 whitespace/empty 字符串的用户名。删除了 SearchBase
和 Filter
,因为您是基于身份查找的,不能在命令中使用它们。因为没有允许您使用所有这些的参数集。 Get-Help Get-ADUser
显示可用的参数集。
我有一个来自我整个域的用户名的 CSV 列表,我正在尝试将该列表与特定 OU 进行比较,并将匹配项发送到另一个文件。我是 Powershell 的新手,所以经过大量研究并与其他脚本进行比较后,我想到了这个:
$users = Import-csv C:\Users\me\Desktop\'RSA.csv'
$(ForEach ($user in $users)
{
Get-AdUser -identity $user -SearchBase "ou=Sub,ou=Root,dc=My,dc=Domain,dc=Name" -Filter *
}) |
Select-Object SamAccountName |
Export-CSV -Path C:\Users\me\Downloads\test\output.csv -NoTypeInformation
当我 运行 时,我收到错误“Get-ADUser:无法验证参数 'Identity' 上的参数。参数上的身份 属性 是 null 或空的。”如果我 运行 没有 -identity $user 它只会提取所有内容。关于如何使这项工作有什么建议吗?
当您调用 Get-ADUser 而不是给它一个仅包含用户名的字符串时,您传递的是一个带有 属性 名为用户名的对象。您可以使用 Select-Object -ExpandProperty Username
或仅引用 属性.
Import-Csv 'C:\Users\me\Desktop\RSA.csv' |
Where-Object {(!([string]::IsNullorWhiteSpace($_.UserName)))} |
ForEach-Object {
Get-ADUser -Identity $_.UserName
} |
Select-Object SamAccountName |
Export-CSV -Path C:\Users\me\Downloads\test\output.csv -NoTypeInformation
注意:更改为 ForEach-Object 循环以提高可读性,因为它看起来像您在尝试主要使用管道的地方。还添加了一个测试以跳过空白行或 whitespace/empty 字符串的用户名。删除了 SearchBase
和 Filter
,因为您是基于身份查找的,不能在命令中使用它们。因为没有允许您使用所有这些的参数集。 Get-Help Get-ADUser
显示可用的参数集。