PowerShell 批量禁用AD賬號並記錄

2021-08-17 15:20:42 字數 2680 閱讀 5105

因原始版本包含ad組織資訊,以下為刪改版本,僅做個人備忘

write-host @"

## name.csv 存放要禁用的賬戶 中文名

# # log.txt 詳細記錄了針對使用者執行的每乙個執行操作(改description, 刪除每乙個組, 移動等等)

## 請認真閱讀黃色警告,對其中忽略處理的使用者,進行手動處理#"@

pause

# 除錯過程設定該引數不實際執行,只提示

# 要使用,請設定注釋掉該行並新增一行

# $needwhatif = "-whatif"

$needwhatif = ""

# 每執行乙個操作都提示確認

# 要取消,請設定注釋掉該行並新增一行

# $needconfirm = ""

$needconfirm = "-confirm"

$suffix = " "

-f$needwhatif, $needconfirm

$basedn = "dc=test,dc=com"

$resigningou = "ou=yourresigningou,dc=test,dc=com"

# $cmd 傳入要執行的命令字串

# 執行命令並記錄命令日誌和錯誤日誌

function logandexe($cmd)

}# $sam 傳入使用者的samaccountname

# 搜尋使用者所屬的組,並剔除掉『domain users』

# 返回 組 的字串列表 [group1, group2, .....]

function search_user_group($sam)

}return

$group_list

}# 開始執行主邏輯

start-process -wait notepad -argumentlist .\name.csv

$userlist = import-csv 'name.csv' -encoding default

$samlist = new-object system.collections.arraylist

$d = get-date

foreach($u

in$userlist)') -and (mobile -eq '')" -f $u.name, $u.mobile

$u.name = $u.name.trimend()

# 使用者可能有重名字尾,完全限定加上』+『,比如張三,張三01,則張三+完全限定

if($u.name.endswith("+"))"

""-f

$u.name

}else*"

""-f

$u.name

}$block = [scriptblock]::create($block_str)

$tmp = get-aduser -filter $block -searchbase $basedn

if($tmp

-eq$null)

# 如果使用者姓名有類似,進一步篩選

# 如: 張三

# 張三01將會給出警告,張三三不會給出警告

# 假定 給出的是 張三01, 不會搜尋到重複

elseif($tmp.gettype().name -eq

"object")

if($tmp2.gettype().name -eq

"object")

# 警告後,跳過新增,繼續處理下乙個使用者

continue

}else 與name.csv中的使用者: 不完全匹配,,因此忽略"

-f continue

}$tmp = $tmp2}}

elseif($tmp.name -ne

$u.name)

$samlist.add($tmp) | out-null

}# 對列表中使用者執行移動,剔除組,改名操作

foreach($u

in$samlist) -description

"@ -f

$u.samaccountname, ("`"disabled `""

-f$d.tostring("yyyy/m/dd"), $desc), $suffix

logandexe($cmd)

# 步驟2: 剔除使用者所屬的組

foreach($g

in search_user_group($u.samaccountname))" -members ""

"@ -f

$g, $u.samaccountname, $suffix

logandexe($cmd)

}# 步驟3: 禁用該使用者

$cmd = @"

disable-adaccount -identity

"@ -f

$u.samaccountname, $suffix

logandexe($cmd)

# 步驟4: 移動該使用者到對應的ou

$cmd = @"

move-adobject -identity "" -targetpath ""

"@ -f

$u.distinguishedname, $ou, $suffix

logandexe($cmd)

}}pause

Powershell批量建立AD賬戶

它是乙個單獨的命令列,即匯入乙個 csv 檔案並使用其中的資訊建立數十甚至數百個新的 active directory 使用者 import csv c provision1.csv foreach object 它確實是個很長的命令,但功能卻強大得令人驚訝。首先是 import csv 本機外殼 ...

在Powershell批量重新命名檔案

get childitem png rename item newname分析 get childitem png 是第乙個命令,這個命令的輸出,將通過管道 管道符 輸出給第二個命令。管道是程序間通訊的一種手段 第二個命令 rename item 進行重新命名,它會逐個接受前乙個命令裡的每乙個檔案資...

PowerShell批量檢查域密碼弱口令

需求 標題就是需求,想用密碼庫批量檢測一下域內的弱密碼。解決 powershell來實現,不需要第三方工具,不怕被人偷了密碼。本指令碼需要3個檔案,空的即可,位於d pwd下 1 name.csv,儲存需要測試的使用者名稱列表 2 pwd.csv,儲存需要測試的密碼列表 3 name2.csv,儲存...