因原始版本包含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,儲存...