我试图获取连接到Windows RAS服务器的用户列表(基本上是VPN Connected用户的列表),并获取其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
有人可以帮忙吗?我不确定我做错了什么
答案 0 :(得分:1)
UserName
返回的Get-RemoteAccessConnectionStatistics
属性是一个数组(注意{}
输出中的值周围的Format-List
),仅获取第一个值:
$users = Get-RemoteAccessConnectionStatistics
foreach ($user in $users) {
$UPN = $user.username |Select -First 1
Get-ADUser -Filter "UserPrincipalName -eq '$UPN'"
}