Remote Desktop Connection Manager ご存じの方も多い 複数のRemote Desktop 接続 をツリー上に管理できる MS謹製 のツールです。
今回は、 Windows を使っていて Remote Desktop (mstsc) を利用する方におすすめのこれを紹介します。
複数の Windowsサーバー管理をするに当たり、 CUI は PowerShell でいけます。
が、 GUI はやはり 大多数で Remote Desktop が主流だとおもうので、 ぜひ。
ダウンロード
MS 公式からどうぞ。
Remote Desktop Connection Manager
インストール
ダウンロードしたファイルの実行でインストールできます。
が、せっかくなので PowerShell で自動インストールしてみましょう。
ダウンロードしたファイルを cmd で /? 付きで実行するとヘルプが出て、自動インストールが可能なことが分かります。
RDCMan.msi /?
これを利用してみます。
Windows ® Installer. V 5.0.9200.16384
msiexec /Option <Required Parameter> [Optional Parameter]
Install Options
</package | /i> <Product.msi>
Installs or configures a product
/a <Product.msi>
Administrative install - Installs a product on the network
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
Advertises a product - m to all users, u to current user
</uninstall | /x> <Product.msi | ProductCode>
Uninstalls the product
Display Options
/quiet
Quiet mode, no user interaction
/passive
Unattended mode - progress bar only
/q[n|b|r|f]
Sets user interface level
n - No UI
b - Basic UI
r - Reduced UI
f - Full UI (default)
/help
Help information
Restart Options
/norestart
Do not restart after the installation is complete
/promptrestart
Prompts the user for restart if necessary
/forcerestart
Always restart the computer after installation
Logging Options
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
i - Status messages
w - Nonfatal warnings
e - All error messages
a - Start up of actions
r - Action-specific records
u - User requests
c - Initial UI parameters
m - Out-of-memory or fatal exit information
o - Out-of-disk-space messages
p - Terminal properties
v - Verbose output
x - Extra debugging information
+ - Append to existing log file
! - Flush each line to the log
* - Log all information, except for v and x options
/log <LogFile>
Equivalent of /l* <LogFile>
Update Options
/update <Update1.msp>[;Update2.msp]
Applies update(s)
/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
Remove update(s) for a product
Repair Options
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
Repairs a product
p - only if file is missing
o - if file is missing or an older version is installed (default)
e - if file is missing or an equal or older version is installed
d - if file is missing or a different version is installed
c - if file is missing or checksum does not match the calculated value
a - forces all files to be reinstalled
u - all required user-specific registry entries (default)
m - all required computer-specific registry entries (default)
s - all existing shortcuts (default)
v - runs from source and recaches local package
Setting Public Properties
[PROPERTY=PropertyValue]
Consult the Windows ® Installer SDK for additional documentation on the
command line syntax.
Copyright © Microsoft Corporation. All rights reserved.
Portions of this software are based in part on the work of the Independent JPEG Group.
共有フォルダなどにおいた インストーラーを 使って、PowerShell でインストールしましょう。
$path の箇所に、 インストーラをおいたパスを入れてください。
インストールにおいて、 RDCMan.msi を %Temp%にコピーしてRemote Desktop Connection Managerのインストーラを実行するようにしています。
ファイル名は Install-RemoteDesktopConnectionManager.ps1 とでもして保存します。
# Define
$software = "RDCMan.msi"
$path = Join-Path "Path to Installer (c:\hogehoge)" $software
$destination = Join-Path "C:\Windows\Temp" $software
# run
if (Test-Path $path)
{
try
{
# Copy Software
Copy-Item -Path $path -Destination $destination -Force -ErrorAction Stop
}
catch
{
throw $_
}
# install Software
if (Test-Path $destination)
{
try
{
Start-Process -FilePath $destination -ArgumentList "/m /quiet /passive"
Write-Host "Installation Complete" -ForegroundColor Cyan
}
catch
{
throw $_
}
}
else
{
Write-Warning "$destination not found!"
}
}
else
{
Write-Warning "$path not found!"
}
あとは、 右クリックで [PowerShell でインストール] か インストール用のバッチファイルでいいでしょう。
以下のバッチコマンドを 上記の RemoteDesktopConnectionManger インストール用 PowerShell Script と同一パスにおいてください。
pushd %~dp0
powershell -File ".\Install-RemoteDesktopConnectionManager.ps1"
pause
後は、バッチファイル をダブルクリックでインストールできます。
設定の共有
Remote Desktop Connection Manager は、接続設定などを共有可能です。
パスワードなどを保持するのもアレなので 社内ポリシーに従って貰うとしてできることはできるということで。
設定ファイルは、.rdg という形で xml で保持されています。
一定の規則を持った複数の接続先がある場合、 私は 直接 xml を生成する PowerShell コードを作って追記しています。
例えば 特定の IP末尾で作りたいならこんな感じで。
function Add-RemoteDesctopConnectionManagerServers{
param(
[string[]]
$servers
)
$result = @()
foreach($server in $servers)
{
$result += " <server>"
$result += " <name>192.168.0.$server</name>"
$result += " <displayName>192.168.0.$server</displayName>"
$result += " <comment />"
$result += ' <logonCredentials inherit="FromParent" />'
$result += ' <connectionSettings inherit="FromParent" />'
$result += ' <gatewaySettings inherit="FromParent" />'
$result += ' <remoteDesktop inherit="FromParent" />'
$result += ' <localResources inherit="FromParent" />'
$result += ' <securitySettings inherit="FromParent" />'
$result += ' <displaySettings inherit="FromParent" />'
$result += " </server>"
}
return $result
}
実行時はこのようなかんじで。
Add-RemoteDesctopConnectionManagerServers -servers $(10..20)
Add-RemoteDesctopConnectionManagerServers -servers $(30..35)
Remote Desktop Connection Manager から File > Open で、接続設定xmlを追加できるので是非どうぞ。
GitHub
コードを一応おいておきますね。
https://github.com/guitarrapc/PowerShellUtil/tree/master/Install-RemoteDesktopConnectionManager