PowerShell通过CSV的UPN将AD用户添加到AD组


Import-CSV "C:Tempjacktest.csv" | Foreach-Object {
$aduser = Get-ADUser -Filter "UPN-eq '$($_.UPN)'"
if( $aduser ) {
Write-Output "Adding user $($aduser.SamAccountName) to groupname"
Add-ADGroupMember -Identity JackTest -Members $aduser
} else {
Write-Warning "Could not find user in AD with email address $($_.EmailAddress)"
}
}

我收到以下错误:

转录已启动,输出文件为C:\Temp\Add-ADUsers.logGet-ADUser:无法识别搜索筛选器行:19字符:15

  • $ADUser = Get-ADUser -Filter "UPN -eq '$UPN'" | Select-Object Sam ...
    
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • 类别信息:未指定:(:([Get-ADUser],ADException
    • FullyQualifiedErrorId:ActiveDirectoryServer:8254,Microsoft。ActiveDirectory。经营命令。GetAD用户

此答案旨在帮助您解决问题,以便我们了解CSV可能出现的问题。

注意,此代码假设您的CSV是逗号分隔的,并且CSV有一个名称为"的列;UserPrincipalName";。

$usersToAdd = foreach($line in Import-CSV "C:Tempjacktest.csv")
{
if([string]::IsNullOrWhiteSpace($line.UserPrincipalName))
{
Write-Warning 'Empty UserPrincialName Value:'
Write-Warning $line
continue
}
$aduser = Get-ADUser -Filter "UserPrincipalName -eq '$($line.UserPrincipalName)'"
if(-not $aduser)
{
Write-Warning "$($line.UserPrincipalName) could not be found."
continue
}
$aduser
}
if($usersToAdd)
{
Write-Host 'The following users will be added to the Group'
$usersToAdd.UserPrincialName
try
{
Add-ADGroupMember -Identity JackTest -Members $usersToAdd
}
catch
{
Write-Warning $_.Exception.Message
}
}

检查csv文件,似乎没有使用默认的分隔符。如果是,请将参数分隔符添加到import-csv cmdlet中。例如Tab分隔符:

Import-CSV "C:Tempjacktest.csv" -delimiter "`t"

最新更新