-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750

需求:根据要求对集团AD域及下属3个子域的所有AD账号进行统计,查询所有锁定的账号,解锁,并每天早上发送邮件到指向邮箱。(之前三十九的基础上略作调整,只发一封邮件即可)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Remove-Item C:\get_locked_user\ -Recurse -Force
if (!(test-path C:\get_locked_user)) {New-Item C:\get_locked_user -type directory}
Import-Module activedirectory
$yuntcloud_Lockeduser=Search-ADAccount -LockedOut -SearchBase  "dc=yuntcloud,dc=com"  -server dc01| select  name,samaccountname
$aaa_Lockeduser=Search-ADAccount -LockedOut -SearchBase  "dc=aaa,dc=yuntcloud,dc=com"  -server aaaDC1| select  name,samaccountname
$bbb_Lockeduser=Search-ADAccount -LockedOut -SearchBase  "dc=bbb,dc=yuntcloud,dc=com"  -server bbbdc1| select  name,samaccountname
$ccc_Lockeduser=Search-ADAccount -LockedOut -SearchBase  "dc=ccc,dc=yuntcloud,dc=com"  -server cccDC1| select  name,samaccountname
#send email
$UserName =  "test01@yuntcloud.com"       #定义管理员账户名称
$Password = ConvertTo-SecureString  "Anvf20170708"  -AsPlainText –Force
$cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
$nFrom= "test01@yuntcloud.com"
$nTo= "zhouping@yuntcloud.com"
$lockeduser=@()
#Unlock yuntcloud Locked user
if  ([ string ]::IsNullOrEmpty($($yuntcloud_Lockeduser|%{$_.name})))
{
Write-Host  "yuntcloud no locked user"
Start-Sleep 5
Set-Content C:\get_locked_user\locked.txt -Value  "yuntcloud no locked user"
#Send-MailMessage -From $nFrom -To $nTo -Subject "yuntcloud no locked user" -Body "yuntcloud no locked user" -Credential $cred -SmtpServer "mail.yuntcloud.com" -Encoding ([System.Text.Encoding]::UTF8)
}
else
{
Write-Host  "yuntcloud Locked user"
foreach ($i  in  $yuntcloud_Lockeduser)
{
Write-Host $i.name
$lockeduser+=$i
}
Start-Sleep 5
Search-ADAccount -LockedOut -SearchBase  "dc=yuntcloud,dc=com"  -server dc01 |Unlock-ADAccount
Write-Host  "yuntcloud all locked account were unlocked"
$lockeduser |Export-Csv -Path C:\get_locked_user\yuntcloud_lockeduser.csv -NoTypeInformation -Encoding utf8 
add-Content C:\get_locked_user\locked.txt -Value  "yuntcloud Locked user"
add-Content C:\get_locked_user\locked.txt -Value $($yuntcloud_Lockeduser|%{$_.name})
#Send-MailMessage -From $nfrom -To $nto -Subject "yuntcloud locked user" -Body "yuntcloud locked user" -Attachments "C:\get_locked_user\yuntcloud_lockeduser.csv" -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
Start-Sleep 3
}
#Unlock aaa.yuntcloud.com Locked user
$lockeduser=@()
if  ([ string ]::IsNullOrEmpty($($aaa_Lockeduser|%{$_.name})))
{
Write-Host  "aaa no locked user"
Start-Sleep 5
add-Content C:\get_locked_user\locked.txt -Value  "aaa no locked user"
#Send-MailMessage -From $nfrom -To $nto -Subject "aaa no locked user" -Body "aaa no locked user" -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8)
}
else
{
Write-Host  "aaa Locked user"
foreach ($i  in  $aaa_Lockeduser)
{
Write-Host $i.name
$lockeduser+=$i
}
Start-Sleep 5
Search-ADAccount -LockedOut -SearchBase  "dc=aaa,dc=yuntcloud,dc=com"  -server aaaDC1 |Unlock-ADAccount
Write-Host  "aaa all locked account were unlocked" 
$lockeduser |Export-Csv -Path C:\get_locked_user\aaa_lockeduser.csv -NoTypeInformation -Encoding utf8
add-Content C:\get_locked_user\locked.txt -Value  "aaa Locked user"
add-Content C:\get_locked_user\locked.txt -Value $($aaa_Lockeduser|%{$_.name})
#Send-MailMessage -From $nfrom -To $nto -Subject "aaa locked user" -Body "aaa locked user" -Attachments "C:\get_locked_user\aaa_lockeduser.csv" -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
Start-Sleep 3
}
#Unlock bbb.yuntcloud.com Locked user
$lockeduser=@()
if  ([ string ]::IsNullOrEmpty($($bbb_Lockeduser|%{$_.name})))
{
Write-Host  "bbb no locked user"
Start-Sleep 5
add-Content C:\get_locked_user\locked.txt -Value  "bbb no locked user"
#Send-MailMessage -From $nfrom -To $nto -Subject "bbb no locked user" -Body "bbb no locked user" -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8)
}
else
{
Write-Host  "bbb Locked user"
foreach ($i  in  $bbb_Lockeduser)
{
Write-Host $i.name
$lockeduser+=$i
}
Start-Sleep 5
Search-ADAccount -LockedOut -SearchBase  "dc=bbb,dc=yuntcloud,dc=com"  -server bbbdc1 |Unlock-ADAccount
Write-Host  "bbb all locked account were unlocked" 
$lockeduser |Export-Csv -Path C:\get_locked_user\bbb_lockeduser.csv -NoTypeInformation -Encoding utf8 
add-Content C:\get_locked_user\locked.txt -Value  "bbb Locked user"
add-Content C:\get_locked_user\locked.txt -Value $($bbb_Lockeduser|%{$_.name})
#Send-MailMessage -From $nfrom -To $nto -Subject "bbb locked user" -Body "bbb locked user" -Attachments "C:\get_locked_user\bbb_lockeduser.csv" -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
Start-Sleep 3
}
#Unlock ccc.yuntcloud.com Locked user
$lockeduser=@()
if  ([ string ]::IsNullOrEmpty($($ccc_Lockeduser|%{$_.name})))
{
Write-Host  "ccc no locked user"
Start-Sleep 5
add-Content C:\get_locked_user\locked.txt -Value  "ccc no locked user"
#Send-MailMessage -From $nfrom -To $nto -Subject "ccc no locked user" -Body "ccc no locked user" -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8)
}
else
{
Write-Host  "ccc Locked user"
foreach ($i  in  $ccc_Lockeduser)
{
Write-Host $i.name
$lockeduser+=$i
}
Start-Sleep 5
Search-ADAccount -LockedOut -SearchBase  "dc=ccc,dc=yuntcloud,dc=com"  -server cccDC1 |Unlock-ADAccount
Write-Host  "ccc all locked account were unlocked" 
$lockeduser |Export-Csv -Path C:\get_locked_user\ccc_lockeduser.csv -NoTypeInformation -Encoding utf8 
add-Content C:\get_locked_user\locked.txt -Value  "ccc Locked user"
add-Content C:\get_locked_user\locked.txt -Value $($ccc_Lockeduser|%{$_.name})
#Send-MailMessage -From $nfrom -To $nto -Subject "ccc locked user" -Body "ccc locked user" -Attachments "C:\get_locked_user\ccc_lockeduser.csv" -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
Start-Sleep 3
}
$body= get -Content C:\get_locked_user\locked.txt|Out-String
if  (((Test-Path C:\get_locked_user\yuntcloud_lockeduser.csv) -eq $ true ) -and  ((Test-Path C:\get_locked_user\aaa_lockeduser.csv) -eq $ false ) -and ((Test-Path C:\get_locked_user\bbb_lockeduser.csv) -eq $ false ) -and ((Test-Path C:\get_locked_user\ccc_lockeduser.csv) -eq $ false )) 
{
Send-MailMessage -From $nfrom -To $nto -Subject  "yuntcloud 4 domains all locked user information total"  -Body $body -Attachments  "C:\get_locked_user\yuntcloud_lockeduser.csv"  -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
}
elseif (((Test-Path C:\get_locked_user\yuntcloud_lockeduser.csv) -eq $ true ) -and  ((Test-Path C:\get_locked_user\aaa_lockeduser.csv) -eq $ true ) -and ((Test-Path C:\get_locked_user\bbb_lockeduser.csv) -eq $ false ) -and ((Test-Path C:\get_locked_user\ccc_lockeduser.csv) -eq $ false )) 
{
Send-MailMessage -From $nfrom -To $nto -Subject  "yuntcloud 4 domains all locked user information total"  -Body $body -Attachments  "C:\get_locked_user\yuntcloud_lockeduser.csv" , "C:\get_locked_user\aaa_lockeduser.csv"  -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
}
elseif (((Test-Path C:\get_locked_user\yuntcloud_lockeduser.csv) -eq $ true ) -and  ((Test-Path C:\get_locked_user\aaa_lockeduser.csv) -eq $ true ) -and ((Test-Path C:\get_locked_user\bbb_lockeduser.csv) -eq $ true ) -and ((Test-Path C:\get_locked_user\ccc_lockeduser.csv) -eq $ false )) 
{
Send-MailMessage -From $nfrom -To $nto -Subject  "yuntcloud 4 domains all locked user information total"  -Body $body -Attachments  "C:\get_locked_user\yuntcloud_lockeduser.csv" , "C:\get_locked_user\aaa_lockeduser.csv" , "C:\get_locked_user\bbb_lockeduser.csv"  -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
}
elseif (((Test-Path C:\get_locked_user\yuntcloud_lockeduser.csv) -eq $ true ) -and  ((Test-Path C:\get_locked_user\aaa_lockeduser.csv) -eq $ true ) -and ((Test-Path C:\get_locked_user\bbb_lockeduser.csv) -eq $ true ) -and ((Test-Path C:\get_locked_user\ccc_lockeduser.csv) -eq $ true )) 
{
Send-MailMessage -From $nfrom -To $nto -Subject  "yuntcloud 4 domains all locked user information total"  -Body $body -Attachments  "C:\get_locked_user\yuntcloud_lockeduser.csv" , "C:\get_locked_user\aaa_lockeduser.csv" , "C:\get_locked_user\bbb_lockeduser.csv" , "C:\get_locked_user\ccc_lockeduser.csv"  -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
}
else
{
Send-MailMessage -From $nfrom -To $nto -Subject  "yuntcloud 4 domains all locked user information total"  -Body $body -Credential $cred -SmtpServer mail.yuntcloud.com -Encoding ([System.Text.Encoding]::UTF8) 
}