[Windows/PowerShell] PowerShell を使用して複数のリモートコンピューター上の同一アカウントのパスワードを変更したい.
技術ノート
2016/11/02
[番号]
技術ノート KGTN 2016101904
[現象]
[Windows/PowerShell] PowerShell を使用して複数のリモートコンピューター上の同一アカウントのパスワードを変更したい.
[説明]
以下に,各リモートコンピューターの同一アカウントのパスワードを変更するサンプルを示します.
$hostList = @("192.168.102.60","192.168.102.72","192.168.102.110")
$argUser = "wguser9012"
$argPass = "Pass.Word"
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,-16}, {3}" -f $hostname,$user,$pass,!$myError
}
$ii = 0
ForEach($target In $hostList)
{
$ret = Invoke-Command $target -ScriptBlock ${function:changePassword} -ArgumentList
$argUser,$argPass
++$ii
"[{0}] {1}" -f $ii,$ret
}