ひっそりと生きるプログラマのブログ

日頃気になった事なりを書き留めるブログです。関心ごとは多くもう少し更新頻度を上げたいところです。

PowerShellでユーザーアカウントを追加する※管理者権限

実装するに辺り、過去に投稿した↓の関数を使用します。
※なので、単体では動かないのでご注意を!!

saboten-sakura.hatenablog.com
PowerShellでユーザー(ローカル)を追加する - ひっそりと生きるプログラマのブログ

[void][reflection.assembly]::LoadWithPartialName("System.DirectoryServices")
[void][reflection.assembly]::LoadWithPartialName("System.DirectoryServices.AccountManagement")

function New-Administrator-Account($context, $userName) {
    # 管理者権限のグループを取得
    # ※投稿した過去記事を参照
    $administratorGroup = Get-Group $context "Administrators"
    if($administratorGroup -eq $null) {
        # 管理者権限を取得できなかったので処理を抜ける
        Write-Host "管理者権限を取得できませんでした。"
        return
    }
    
    # アカウントを取得
    # ※投稿した過去記事を参照
    $userPrincipal = New-Account $context $userName
    if($userPrincipal -eq $null) {
        # 既に存在するアカウントなので処理を抜ける。
        return
    }

    Write-Host $userName "アカウントへ管理者権限を追加します..."
    # グループへ追加
    $administratorGroup.Members.Add($userPrincipal)
    $administratorGroup.Save()
    Write-Host $userName "アカウントへ管理者権限を追加しました..."
    
    return $userPrincipal
}

# テストコード
$context = New-Object System.DirectoryServices.AccountManagement.PrincipalContext([System.DirectoryServices.AccountManagement.ContextType]::Machine)
New-Administrator-Account $context "Hoge4"