0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ADユーザのパスワードがパスワード一覧のパスワードと合っているかをチェックするPowerShellスクリプト

Posted at

職場で約1800のADアカウントのパスワードがパスワード一覧と合っているか?をチェックする為に
PowerShellスクリプトをChatGPTと共に作成しました。

パスワード一覧ファイル

aduser_check_input.csv
ADUserID,Password
User1,password1
User2,password2
User3,password3

Powershellスクリプト

ADUser_Check.ps1
# 管理者権限の接続情報
$AdminUserID = 'Domain\adminuser'
$AdminPW = "password"
$ADServer = "101.101.200.100"

# CSVファイルのパスを設定
$inputCsvPath = "C:\Work_AD2\aduser_check_input.csv"
$outputCsvPath = "C:\Work_AD2\aduser_check_output.csv"

# 管理者権限の資格情報を作成
$AdminSecurePassword = ConvertTo-SecureString -String $AdminPW -AsPlainText -Force
$AdminCredential = New-Object System.Management.Automation.PSCredential($AdminUserID, $AdminSecurePassword)

# CSVファイルを読み込む
$users = Import-Csv -Path $inputCsvPath

# 結果を格納する配列
$results = @()

function Test-UserCredentials {
    param (
        [string]$ADUserID,
        [string]$Password,
        [string]$ADServer
    )

    $securePassword = ConvertTo-SecureString $Password -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential($ADUserID, $securePassword)

    try {
        $ldapConnection = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$ADServer", $ADUserID, $Password)
        if ($ldapConnection.Properties["distinguishedName"].Count -gt 0) {
            return $true
        }
    } catch {
        return $false
    }

    return $false
}

foreach ($user in $users) {
    $ADUserID = $user.ADUserID
    $Password = $user.Password

    # パスワードが正しいかどうかを確認
    $authResult = Test-UserCredentials -ADUserID $ADUserID -Password $Password -ADServer $ADServer

    # 結果を配列に追加
    $results += [pscustomobject]@{
        ADUserID = $ADUserID
        AuthResult = $authResult
    }
}

# 結果をCSVファイルにエクスポート
$results | Export-Csv -Path $outputCsvPath -NoTypeInformation

Write-Output "認証結果を $outputCsvPath にエクスポートしました。"

3.まとめ

1800という大量のアカウント数のパスワードが台帳と一致しているか?を無事に確認することが出来ました。
ちなみに処理時間は30分程度でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?