我是Powershell脚本的新手。我正在尝试在GUI框中检索域用户信息,如帐户信息,密码过期/锁定信息,DL组,邮箱,安全组(用户是其成员)等。
我可以获取帐户/密码信息,但无法在文本框中获取组成员资格信息。我只是从小组成员中获得第一组。 这是一个代码:
$userinfo = (Get-aduser $user -Properties *)
"============================================================================================================"
"`t `t `t `t `t `t ACCOUNT DETAILS"
"============================================================================================================"
$userinfo | fl DisplayName, EmailAddress, Enabled, Title, @{n="Manager";e={(Get-aduser -id $_.manager).name}},Department,@{n="Extension";e={$_.IPphone}}, TelephoneNumber, Created, Modified, UserPrincipalName, SamAccountName,@{n="Country";e={$_.co}}, Office, msExchWhenMailboxCreated
"============================================================================================================"
"`t `t `t `t `t PASSWORD/LOCKOUT DETAILS"
"============================================================================================================"
$userinfo | fl LockedOut, PasswordExpired, lockoutTime, LastLogonDate , LastBadPasswordAttempt, PasswordLastSet, @{Name="Password Expires in (days)";Expression={(new-timespan -start $EndDate -end ([datetime]::FromFileTime((Get-aduser $user -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))).Days}}
"============================================================================================================"
"`t `t `t `t `t Distribution Groups (AD)"
"============================================================================================================"
$userinfo.memberof | %{(get-adgroup -id $_ -Properties:groupcategory| ?{$_.groupcategory -match "Distribution" }).name}
这是输出文本框。
在文本框中显示结果时,Foreach似乎无法正常工作。如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
$userinfo = (Get-aduser $user -Properties *)
"============================================================================================================"
"`t `t `t `t `t `t ACCOUNT DETAILS"
"============================================================================================================"
$userinfo | fl DisplayName, EmailAddress, Enabled, Title, @{n="Manager";e={(Get-aduser -id $_.manager).name}},Department,@{n="Extension";e={$_.IPphone}}, TelephoneNumber, Created, Modified, UserPrincipalName, SamAccountName,@{n="Country";e={$_.co}}, Office, msExchWhenMailboxCreated
"============================================================================================================"
"`t `t `t `t `t PASSWORD/LOCKOUT DETAILS"
"============================================================================================================"
$userinfo | fl LockedOut, PasswordExpired, lockoutTime, LastLogonDate , LastBadPasswordAttempt, PasswordLastSet, @{Name="Password Expires in (days)";Expression={(new-timespan -start $EndDate -end ([datetime]::FromFileTime((Get-aduser $user -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))).Days}}
"============================================================================================================"
"`t `t `t `t `t Distribution Groups (AD)"
"============================================================================================================"
($userinfo.memberof | foreach { Get-ADGroup $_ } | Where {$_.GroupCategory -eq "Distribution"}).Name | FL
最后一行现在使用您在第一行中为用户的成员资格创建的$userinfo
对象,并进行相应的Where
比较。
如果您确实打算在最后一行中使用$miduser
,那么它可能无效的一个原因是Where
语句的结果属性区分大小写。我不确定为什么你只收到一个结果,而不是其他结果。