1. 程式人生 > >AD賬號密碼過期郵件提醒-powershell實現--密碼加密(新增)

AD賬號密碼過期郵件提醒-powershell實現--密碼加密(新增)

加密部分參考:http://www.bubuko.com/infodetail-1846894.html

首先將在某臺主機上上建立一個share folder,設定許可權為Everyone讀取,裡面將儲存加密後的密碼檔案,檔案命名為Password.txt。

新建一個加密的powershell檔案,內容如下:用於把密碼加密儲存至Password.txt

$File = "\\SHSV2018\SharePath\Password.txt"
[Byte[]] $key = (1..16)
$Password = "[email protected]" | ConvertTo-SecureString -AsPlainText -Force
$Password | ConvertFrom-SecureString -key $key | Out-File $File
然後我們就可以直接在所需要呼叫密碼的地方讀取Password.txt,具體參見標紅的部分

#leader的需求是,AD密碼過期15天之前通過郵件通知使用者,告知還有多少天密碼就要過期了

#由於不是特別熟悉powershell,所以會寫的比較笨,不過功能是實現了

#我們設定的是使用者密碼90天就過期

$File = "\\SHSV2018\SharePath\Password.txt"
[Byte[]] $key = (1..16)
$smtpPassword=Get-Content $File | ConvertTo-SecureString -Key $key
$user=Get-ADUser -searchbase 'OU=XX,DC=XX,DC=XX,DC=XX' -Filter * -Properties * |Select-Object displayname,passwordlastset,mail #這邊的ou和DC填自己的,獲取域賬戶所需的資訊
$today=Get-Date #獲取今天的日期
$today_75=$today.AddDays(-75) #獲取75天的日期
$today_90=$today.AddDays(-90) #獲取90天的日期
$Mailtouser=$user |Where-Object {$_.passwordlastset -le $today_75 -and $_.passwordlastset -ge $today_90 -and $_.passwordlastset -gt 0 -and $_.displayname -ne 'user1' -and $_.displayname -ne 'user2'} #獲取需要郵件通知的使用者,通過過期時間排除,其中也排除了user1和user2這樣的特殊使用者
$Mailusernum=$Mailtouser.Count #這樣賬戶的總數
$MailtoAddress=$Mailtouser.mail #這些賬戶的mail郵箱
$Mailtouser_ed=$user |Where-Object {$_.passwordlastset -lt $today_90  -and $_.passwordlastset -gt 0 -and $_.displayname -ne 'user1' -and $_.displayname -ne 'user2'} #這是獲取已經過期了的賬戶,其中也排除了user1和user2這樣的特殊使用者
$Mailusernum_ed=$Mailtouser_ed.Count #這樣賬戶的總數
$MailtoAddress_ed=$Mailtouser_ed.mail #這些賬戶的mail郵箱
$smtpServer="smtp.exmail.qq.com" #你的smtp伺服器,樓主的是qq
$smtpUser="
[email protected]
" #賬戶
#$smtpPassword="password"#密碼 註釋掉 
$mail=New-Object System.Net.Mail.MailMessage
$MailAddress="[email protected]" #發件人地址
$mail.From=New-Object System.Net.Mail.MailAddress($MailAddress)
$mail.Subject="主題"
$smtp=New-Object System.Net.Mail.SmtpClient -ArgumentList $smtpServer
$smtp.Credentials=New-Object System.Net.NetworkCredential -ArgumentList $smtpUser,$smtpPassword
for ($i=0;$i -lt $Mailusernum;$i++) #迴圈併發送郵件----還有多少天過期
{
$mail.To.Add($MailtoAddress[$i])
$days_array=((New-TimeSpan $Mailtouser.passwordlastset[$i] -end $today_75).Days) #獲取還有多少天過期
$mail.Body="你的密碼還有$days_array 天過期了"
$smtp.Send($mail) #傳送郵件
$mail.To.Clear()

}

for ($i=0;$i -lt $Mailusernum_ed;$i++) #迴圈併發送郵件----已經過期多少天了
{
$mail.To.Add($MailtoAddress_ed[$i])
$days_array=((New-TimeSpan $Mailtouser_ed.passwordlastset[$i] -end $today_90).Days)#獲取你過期多少天了
$mail.Body="你的密碼已經過期 $days_array 天了"
$smtp.Send($mail)
$mail.To.Clear()
}

相關推薦

AD賬號密碼過期郵件提醒-powershell實現--密碼加密新增

加密部分參考:http://www.bubuko.com/infodetail-1846894.html 首先將在某臺主機上上建立一個share folder,設定許可權為Everyone讀取,裡面將儲存加密後的密碼檔案,檔案命名為Password.txt。 新建一個加密

Windows server 2012 R2 AD密碼過期郵件提醒

無線 ad域 cli 最終 lis end msg tex 已過期 最近接領導指示,說要做一個域密碼提醒的服務,這樣會更人性化些,員工也就不必等過期了來找管理員重置。但是但是本人不懂腳本,就幹脆從網上找了些鏈接做為參考,這裏感謝此鏈接的作者 https://www.yebo

域帳號密碼過期郵件提醒

python 密碼過期提醒 域控 思路,通過AD工具取得全部OU下人員工號、郵箱地址,再檢測工號多少天沒修改密碼,超過設定的天數,就執行發送郵件# -*- coding:utf-8 -*- import smtplib import os import smtplib from email.mim

用Java實現AES加密

密鑰 工具 mex 嚴格 keys 生產 ner for 創建 一)什麽是AES? 高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),是一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。 那麽為什麽

郵件實現詳解------JavaMail 發送帶圖片和附件和接收郵件

發送 網絡圖 發送對象 true n) com 訪問權限 sub map   好了,進入這個系列教程最主要的步驟了,前面郵件的理論知識我們都了解了,那麽這篇博客我們將用代碼完成郵件的發送。這在實際項目中應用的非常廣泛,比如註冊需要發送郵件進行賬號激活,再比如OA項目中利用郵

國密SM —— SM3單向雜湊、SM3案例實現、SM4分組密碼標準、Go語言實現SM4加密

func main() { hash := sm3.New() hash.Write([]byte("i am wek $$ The_Reader !")) result := hash.Sum(nil) println("sm3 hash = ",hex.EncodeToStri

oracle 11g密碼過期但不想更新密碼

SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edi

國密SM —— SM3單向雜湊、SM3案例實現、SM4分組密碼標準、Go語言實現SM4加密

func main() { hash := sm3.New() hash.Write([]byte("i am wek $$ The_Reader !")) result := hash.Su

Keepalived+Nginx實現高可用HA

nginx+keepalived ha高可用高可用有2中方式。1、Nginx+keepalived 主從配置這種方案,使用一個vip地址,前端使用2臺機器,一臺做主,一臺做備,但同時只有一臺機器工作,另一臺備份機器在主機器不出現故障的時候,永遠處於浪費狀態,對於服務器不多的網站,該方案不經濟實惠。2、Ngin

容器+AOP實現動態部署

集合 tar details class 處理 tid ret con sta 上節咱們談到容器的基本特性,這次繼續說容器怎樣與AOP進行結合。增強咱們的對象。為對象加入額外的方法。 咱們下面方圖為說明 業務對象通過busi

優先隊列底層實現是堆heap操作系統進程調度

集合 進程 有一個 新元素 tex 隊列 tro 作業 eap 只有一個CPU的情況下,比如作業系統中的調度程序,當一個作業完成後,需要在所有等待調度的作業中選擇一個優先級最高的作業來執行(刪除),並且也可以添加一個新的作業到作業的優先隊列中(插入)。 插入操作 插入操作是

Collection的實現——學生選課

string 類型 pack 傳遞參數 pri student 課程 log ret 學生選課——創建學生類和課程類 創建課程類 Course package xuanke; /* * 課程類 */ public class Course {

Collection的實現——學生選課

最大 es2017 語言 位置 一個數 超過 類型 img .cn 通過addAll方法往list對象添加課程: Course []course={new Course("3","離散數學"),new Course("4","匯編語言")};

一個基於JRTPLIB的輕量級RTSP客戶端(myRTSPClient)——實現篇:RTP音視頻傳輸解析層之音視頻數據傳輸格式

客戶端 會有 服務 client 基本 cnblogs 存在 額外 導致 一、差異 本地音視頻數據格式和用來傳輸的音視頻數據格式存在些許差異,由於音視頻數據流到達客戶端時,需要考慮數據流的數據邊界、分包、組包順序等問題,所以傳輸中的音視頻數據往往會多一些字節。 舉個例子

SQL Server橫向擴展:設計,實現與維護2- 分布式分區視圖

做的 img attach one 遠程 cnblogs ole out 不同的 為了使得朋友們對分布式分區視圖有個概念,也為了方便後面的內容展開,我們先看看下面一個圖: 講述分布式分區視圖之前,很有必要將之與我們常常熟悉的分區表和索引

Corosync+pacemaker+DRBD+mysqlmariadb實現高可用ha的mysql集群centos7

corosync+pacemaker+drbd+mysql(mariadb)實現高可用(ha)的mysql集群(centos7)Corosync+pacemaker+DRBD+mysql(mariadb)實現高可用(ha)的mysql集群(centos7)目錄:介紹環境借助pcs安裝與配置corosync和p

Elasticsearch+logstash+kibana實現日誌分析實驗

elasticsearch logstash kibana Elasticsearch+logstash+kibana實現日誌分析(實驗)一、前言 Elastic Stack(舊稱ELK Stack),是一種能夠從任意數據源抽取數據,並實時對數據進行搜索、分析和可視化展現的數據分析框架。(h

java實現post請求PostMethod

postmethod json項目要求:實現post請求,且請求格式是json格式。maven依賴包<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>ht

AI實現五子棋機器人

而是 fec 指定 pie soft lis href 遊戲 bsp 前言:   前幾天在 csdn 下載資源的時候才發現自己 csdn 有近 200 的下載積分,看了看共享的資源,哈哈 ... 7年前寫的五子棋遊戲很受歡迎。   下載地址:新手入門五子棋遊戲

C connect實現Timeout效果Windows

lose als sel const pre amp bsp oct spa int SocketClient::connectTimeOutForWin(SOCKET &connect_fd, const int &timeout, const sock