获取 ADUser:无效的类型 'System.String[]'



我试图获取连接到Windows RAS服务器的用户列表(基本上是VPN连接用户的列表(并获取其AD帐户属性,

以下命令返回数据如下(它返回 100+ 个用户,但为了简洁起见,我刚刚展示了一个(

Get-RemoteAccessConnectionStatistics | fl
ClientIPAddress       : 1.2.3.4
UserName              : {Bob.Jones@company.com}
ConnectionDuration(s) : 696055
ConnectionType        : Vpn

所以我写了下面的脚本:

$users = Get-RemoteAccessConnectionStatistics
foreach ($user in $users) {
$UPN = $user.username
Get-ADUser -Filter {UserPrincipalName -eq $UPN }
}

但是,在运行脚本时,我收到以下错误:

Get-ADUser : Invalid type 'System.String[]'.
Parameter name: userPrincipalName
At line:7 char:1
+ Get-ADUser -Filter {UserPrincipalName -eq $UPN }
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADUser

谁能帮忙?我不确定我做错了什么

Get-RemoteAccessConnectionStatistics返回的UserName属性是一个数组(请注意Format-List输出中值周围的{}(,仅获取第一个值:

$users = Get-RemoteAccessConnectionStatistics
foreach ($user in $users) {
$UPN = $user.username |Select -First 1
Get-ADUser -Filter "UserPrincipalName -eq '$UPN'"
}

相关内容

最新更新