Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 排除禁用用户获取aduser_Powershell - Fatal编程技术网

Powershell 排除禁用用户获取aduser

Powershell 排除禁用用户获取aduser,powershell,Powershell,我想从这个脚本中排除禁用的用户,但似乎找不到我如何尝试-排除而没有运气 如果你有一个更好的方法来做这件事,也可以公开征求意见 import-module ActiveDirectory; $maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge Get-ADUser -filter * -properties PasswordLastSet, PasswordExpired, PasswordNe

我想从这个脚本中排除禁用的用户,但似乎找不到我如何尝试-排除而没有运气

如果你有一个更好的方法来做这件事,也可以公开征求意见

import-module ActiveDirectory;

$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge

Get-ADUser -filter * -properties PasswordLastSet, PasswordExpired, PasswordNeverExpires, EmailAddress, GivenName | foreach {

   $today=get-date
   $UserName=$_.GivenName
   $Email=$_.EmailAddress

   if (!$_.PasswordExpired -and !$_.PasswordNeverExpires) {

       $ExpiryDate=$_.PasswordLastSet + $maxPasswordAgeTimeSpan
       $DaysLeft=($ExpiryDate-$today).days

       if ($DaysLeft -lt 10 -and $DaysLeft -gt 0){

        $WarnMsg = "
<p style='font-family:arial'>Bonjour $UserName,</p>
<p style='font-family:arial'>Votre mot de passe va expirer dans $DaysLeft jours, S.V.P. changer votre mot de passe.</p>
<p style='font-family:arial'>Merci.</p>"

$enc  = New-Object System.Text.utf8encoding
ForEach ($email in $_.EmailAddress) { 
send-mailmessage -to test@test -from noreply@test.com -Subject "Votre mot de passe va expirer dans $DaysLeft jours" -body $WarnMsg  -smtpserver x.x.x.x -BodyAsHtml -Encoding $enc }

    }

   }
}
导入模块ActiveDirectory;
$maxPasswordAgeTimeSpan=(获取AddFaultDomainPasswordPolicy)。MaxPasswordAge
Get ADUser-filter*-属性PasswordLastSet、PasswordExpired、PasswordNeverExpires、EmailAddress、GivenName | foreach{
$today=获取日期
$UserName=$\u.GivenName
$Email=$\电子邮件地址
如果(!$\uu0.PasswordExpired-和!$\u0.PasswordNeverExpires){
$ExpiryDate=$\密码LastSet+$maxPasswordAgeTimeSpan
$DaysLeft=($ExpiryDate-$today)。天
如果($DaysLeft-lt 10-和$DaysLeft-gt 0){
$WarnMsg=”

你好$UserName

Votre mot de passe va呼气机dans$DaysLeft jours,S.V.p.转换器Votre mot de passe

谢谢。

$enc=新对象System.Text.utf8encoding ForEach($电子邮件地址){ 发送邮件至test@test-来自noreply@test.com-主题“Votre mot de passe va呼气机dans$DaysLeft jours”-正文$WarnMsg-smtpserver x.x.x.x-正文ASHTML-编码$enc} } } }
只需在获取AdUser将过滤器从
*
更改为
'enabled-eq“true”


这表现得更好。我们应该尽可能避免
-Filter*
,因为这样每次都会转储整个广告。既然
启用
是他的标准之一。。。
Get-ADUser -filter 'enabled -eq "true"' -properties ...