我试图获取连接到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'"
}