論壇上看見有人問如何用powershell檢視管理員組的變化,豆子寫了個很簡單的指令碼實現這個功能,寫的非常簡單,就是乙個思路驗證了一下而已。
首先獲取一下當前的組成員資訊吧,powershell 3.0以後可以直接使用ad module裡面的很多命令,乙個比較好使的命令是 get-adreplicationattributemetadata,可以獲取物件相關的metadata 資訊。比如下面我可以獲取testgroup1裡面每個成員建立的時間狀態。
1
2
$dn
=(
get-adgroup
"testgroup1"
).distinguishedname
get-adreplicationattributemetadata
$dn
-server syddc01 -showalllinkedvalues |
where-object
| select firstoriginatingcreatetime, attributevalue |
export-csv
c:\temp\old.csv
可以看見,目前這個組只有2個成員
新加乙個成員進去,再次執行一下,可以看見新的成員變化
1
get-adreplicationattributemetadata
$dn
-server syddc01 -showalllinkedvalues |
where-object
| select firstoriginatingcreatetime, attributevalue |
export-csv
c:\temp\new.csv
把兩次結果都儲存下來,然後利用compare-object比較一下,如果不為空,傳送個郵件
1
2
3
4
5
6
7
8
$a
=
get-content
c:\temp\old.csv
$b
=
get-content
c:\temp\new.csv
$result
=
compare-object
$a
$b
if
(
$result
)
測試郵件如下所示,成功
Powershell批量建立AD賬戶
它是乙個單獨的命令列,即匯入乙個 csv 檔案並使用其中的資訊建立數十甚至數百個新的 active directory 使用者 import csv c provision1.csv foreach object 它確實是個很長的命令,但功能卻強大得令人驚訝。首先是 import csv 本機外殼 ...
利用Powershell查詢AD中電腦
以前如果要調查ad電腦中資訊可能需要借助工具來進行,或是用sms sccm這樣的系統 現在powershell引入ad後,如果靈活的利用powershell,可以達到很多你想要的功能.下面就是定製適合自已要求的查詢了,如果要知道所有電腦名 作業系統 servicepack版本 作業系統具體版本本並匯...
Windows中檢視PowerShell版本
我並不是很熟悉什麼是powershell,但是有種直覺是 如果想在windows中使用系統自帶的功能取代bash shell,powershell或許是比dos批處理更好的選擇。不過,從頭開始再來一門程式語言或許還是個不小的挑戰。功能相對齊全且通用的powershell版本現在是v3版本,我試看了別...