プロジェクト

全般

プロフィール

[GGH5.X/ExPack] 拡張パックの GGEasyPassword で複数のGGサーバー (ワークグループ) のアカウントのパスワードを変更したい.

技術ノート
2016/11/02

[番号]
技術ノート KGTN 2016102401

[現象]
[GGH5.X/ExPack] 拡張パックの GGEasyPassword で複数のGGサーバー (ワークグループ) のアカウントのパスワードを変更したい.

[説明]
以下に設定のサンプルを示します.

ファイル: GGEasyPassword.ini

[default]
logLevel = 9
logd = %TEMP%
command = psexec64 -u Administrator -p Passwd C:\PS1\GGEasyPassword\changePassword.bat %s %s

ファイル: changePassword.bat

echo off
echo パスワードの変更処理を開始しました。
echo しばらくお待ち下さい…
:: changePassword.bat "wguser9012" "Passwd" 
powershell C:\PS1\GGEasyPassword\changePassword.ps1 %1 %2
:: --- [EOF] ---

ファイル: changePassword.ps1

# 引数のチェック
if($Args.Length -ne 2)
{
Write-Host "Usage: changePassword.ps1 <userid> <password>" 
Exit 1001
}
$argUser = $Args[0] # ユーザーID ... "wguser9012" 
$argPass = $Args[1] # パスワード ... "Passwd" 
# パスワードを変更するサーバー
$hostList = @("192.168.102.60","192.168.102.72","192.168.102.110")
Function changePassword ([string]$user,[string]$pass)
{
# 共通
[bool]$myError = $false
$hostname = hostname
# パスワードの変更
try
{
[ADSI]$UpdateUser = "WinNT://$hostname/$user,User" 
[void]$UpdateUser.SetPassword($pass)
[void]$UpdateUser.SetInfo()
Write-Host "changePassword: SetPassword = OK (" $hostname ")" 
}
catch
{
$myError = $true
Write-Host "changePassword: SetPassword = NG (" $hostname ")" 
}
return "{0,-16}, {1,-16}, {2}" -f $hostname,$user,!$myError
}
# 各サーバーでパスワードを変更
$ii = 0
ForEach($target In $hostList)
{
$ret = Invoke-Command $target -ScriptBlock ${function:changePassword} -ArgumentList
$argUser,$argPass
++$ii
"[{0}] {1}" -f $ii,$ret
}
#--- EOF ---

ファイル

KGTN2016102401.pdf (194 KB) kitasp 技術センター, 2016/11/02 15:41

KGTN2016102401.jpg 表示 (37.7 KB) kitasp 技術センター, 2016/11/02 15:41