从密码过期通知中排除特定的OU



各位,我正在更新一个PS脚本,该脚本会在用户的AD密码即将过期时通知用户,以从通知中排除/省略某些OU示例:排除">远程用户";以及">AppUsers";我在脚本的开头创建了一个变量$Searchxyzbase="DC=example,DC=com",后面跟着以下内容:

# Get Enabled Users From AD RemoteUsers and AppUsers OU
Import-Module ActiveDirectory
$users = get-aduser -SearchBase $Searchxyzbase -Filter {(enabled -eq $true) -and (passwordNeverExpires -eq $false)} |  -properties sAMAccountName, displayName, PasswordNeverExpires, PasswordExpired, 
PasswordLastSet, EmailAddress, lastLogon, whenCreated
$DefaultmaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge

我知道我应该传递以下内容,但不确定代码中的确切位置。

? {$_.distinguishedname -notmatch 'OU=RemoteUsers|OU=AppUsers'}

我添加如下:

# Get Enabled Users From AD RemoteUsers and AppUsers OU
Import-Module ActiveDirectory
$users = get-aduser -SearchBase $Searchxyzbase -Filter {(enabled -eq $true) -and 
(passwordNeverExpires -eq $false)} | ? {$_.distinguishedname -notmatch 'OU=RemoteUsers|OU=AppUsers'} -properties sAMAccountName, displayName, PasswordNeverExpires, 
PasswordExpired, 
PasswordLastSet, EmailAddress, lastLogon, whenCreated
$DefaultmaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge

当我执行代码时,它会运行并返回以下错误:

`Where-Object : A parameter cannot be found that matches parameter name 'properties'.
At C:codeps.ps1:69 char:176
+ ... inguishedname -notmatch 'OU=RemoteUsers|OU=AppUsers'} -properties sAMAcco ...
+                                                       ~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Where-Object], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.WhereObjectCommand`
Doug的建议奏效了。感谢

最新更新