プロジェクト

全般

プロフィール

[Windows/PowerShell/ExPack] PowerShell で複数サーバーの複数アカウントに連続してログオンしたい.

技術ノート
2016/12/14

[番号]
技術ノート KGTN 2016120601

[現象]
[Windows/PowerShell/ExPack] PowerShell で複数サーバーの複数アカウントに連続してログオンしたい.

[説明]
ローカルアカウントで Windows PowerShell を 「管理者として実行する」 で起動し,その中で下記のコマンドを実行して下さい.

#
# GG サーバーに連続ログオンするバッチを生成するスクリプト
#
# 設定情報
$FilePrefix = "Gen\RDSrdsLogon" # 生成するファイルのプリフィックス
# ホスト情報およびユーザー情報の設定など
Try
{
. (".\Conf\confHostList.ps1")
. (".\Conf\confUserList.ps1")
}
Catch
{
Write-Host "インクルードファイルが見つかりません。" 
Exit 1001
}
# 引数のチェック
if($Args.Length -ne 0)
{
Write-Host "Usage: genRDSLogonList.ps1" 
Exit 1002
}
# 既存ファイルの削除
ForEach($targetH In $hostList)
{
if ((Test-Path "$FilePrefix-$targetH.bat") -eq $True)
{
Remove-Item ("$FilePrefix-$targetH.bat")
}
}

# RDS へのログオンバッチの生成(サーバー単位)
$ii = 0
ForEach($targetU In $userList)
{
++$ii
$jj = 0
ForEach($targetH In $hostList)
{
# 各サーバーでコマンドを実行
# cmdkey /generic:TERMSRV/%HOST% /user:%USER% /pass:%PASS% >NUL
$OutMessage = "cmdkey /generic:TERMSRV/{0} /user:{1} /pass:{2} >NUL" -f
$targetH,$targetU[0],$targetU[1]
write-output $OutMessage | out-file -filepath ("$FilePrefix-$targetH.bat") -encoding
default -append
# mstsc /v:%HOST% >NUL
$OutMessage = "mstsc /v:{0} >NUL" -f $targetH
write-output $OutMessage | out-file -filepath ("$FilePrefix-$targetH.bat") -encoding
default -append
# cmdkey /delete:TERMSRV/%HOST% >NUL
$OutMessage = "cmdkey /delete:TERMSRV/{0} >NUL" -f $targetH
write-output $OutMessage | out-file -filepath ("$FilePrefix-$targetH.bat") -encoding
default -append
# cmdkey /delete:TERMSRV/%HOST% >NUL
$OutMessage = "::" 
write-output $OutMessage | out-file -filepath ("$FilePrefix-$targetH.bat") -encoding
default -append
#---
++$jj
}
}

生成されるバッチファイルの内容のサンプルは,以下の通りです.

cmdkey /generic:TERMSRV/192.168.0.9 /user:localUser001 /pass:Pass.Word >NUL
mstsc /v:192.168.0.9 >NUL
cmdkey /delete:TERMSRV/192.168.0.9 >NUL
::
cmdkey /generic:TERMSRV/192.168.0.9 /user:localUser002 /pass:Pass.Word >NUL
mstsc /v:192.168.0.9 >NUL
cmdkey /delete:TERMSRV/192.168.0.9 >NUL
::
cmdkey /generic:TERMSRV/192.168.0.9 /user:localUser003 /pass:Pass.Word >NUL
mstsc /v:192.168.0.9 >NUL
cmdkey /delete:TERMSRV/192.168.0.9 >NUL
::

ファイル

KGTN2016120601.pdf (73.8 KB) kitasp 技術センター, 2016/12/14 17:59