PowerShell批量檢查域密碼弱口令

2021-09-05 06:57:52 字數 1323 閱讀 9968

需求:標題就是需求,想用密碼庫批量檢測一下域內的弱密碼。

解決:powershell來實現,不需要第三方工具,不怕被人偷了密碼。

本指令碼需要3個檔案,空的即可,位於d:/pwd下

1 name.csv,儲存需要測試的使用者名稱列表

2 pwd.csv,儲存需要測試的密碼列表

3 name2.csv,儲存驗證成功的密碼

域不能限制測試密碼次數,必須管理員方式執行

echo "本指令碼需要3個檔案,位於d:/pwd下"

echo "1 name.csv,儲存需要測試的使用者名稱列表 "

echo "2 pwd.csv,儲存需要測試的密碼列表"

echo "3 name2.csv,儲存驗證成功的密碼"

echo "域不能限制測試密碼次數,必須管理員方式執行"

$files = (get-childitem d:\pwd\name2.csv).pspath

$content = get-content $files

import-csv -path d:\pwd\name.csv | foreach " -f $_.name

$username = "tech\" +"$bb"

import-csv -path d:\pwd\pwd.csv | foreach " -f $_.pwd

$pass = convertto-securestring -asplaintext $_.pwd -force

$cred = new-object system.management.automation.pscredential($username,$pass) 

$dcred = $cred

$dusername = $dcred.username

$dpassword = $dcred.getnetworkcredential().password

$currentdomain = "ldap://" + ([adsi]"").distinguishedname

$auth = new-object system.directoryservices.directoryentry($currentdomain,$dusername,$dpassword)

if ($auth.name -eq $null)

else

}    }

如果有密碼驗證成功的,會自動追加寫入到d:\pwd\name2.csv下,同時,控制台會綠色顯示那條記錄。

在上面的指令碼中,我注釋掉了兩行,可以顯示密碼驗證失敗的時候,以紅色顯示記錄,考慮到不顯示會更節省記憶體,所以注釋掉了。這個指令碼用到了很多powershell的知識點,有興趣的同學可以自己看看。

Powershell 批量互換域使用者屬性資訊 聽聞

需求描述 因生產環境資料介面需求,需要對某時間段已上線使用者屬性進行批量互換,涉及欄位employeenumber,employeeid 環境資訊 windows server 2012 r2 activedirectory 操作步驟 ps.操作之初,建議先對當前環境屬性字段進行備份匯出操作。方法一...

Powershell批量建立AD賬戶

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

powershell 指令碼檢查已安裝證書

額,前面的指令碼能自動安裝了,客戶來了句我怎麼知道已經安裝好了?我答 不是已經顯示success了嗎?客戶 那以後呢,我忘了怎麼辦?可以用mmc啊,然後選證書,本地計算機 mmc是什麼?額 我寫指令碼吧 讓心裡的神獸再奔騰一會兒的分割線 function check certificate if f...