RDP ログイン

2020/04/24 08:17 Macro::macro サンプル

RDP ログイン

ログインを自動化するマクロは ログイン自動化 にまとめてありますので、そちらを参照してください。

また、解説も付けたものもあります。
このページでは、目的や仕様別にいろいろ作ってみたものを配置します。

サンプルマクロの仕様

Windows 標準のプログラム mstsc を起動し、リモートデスクトップ接続を行います。

マクロサンプル

基本形

目的のサーバに対し、リモートデスクトップを起動するだけのマクロです。
hostname = 'example.jp'

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s" RDP hostname
exec CMD

ポート番号指定

基本形に、ポート番号を指定する機能を付けたものです。
hostname = 'example.jp'
portnumber = 3389

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s:%d" RDP hostname portnumber
exec CMD

ユーザアカウント指定(パスワード毎回入力)

Windows OS の cmdkey コマンドを使って、アカウント情報を登録したうえでアクセスする機能をつけたものです。
以下のものは、毎回パスワード入力を求めたうえで、登録情報を削除しています。
hostname = 'example.jp'
portnumber = 3389

username = 'user'

passwordbox 'Enter password' 'Login'
password = inputstr

; Windows OS へのアカウント登録
sprintf2 line "cmdkey /generic:TERMSRV/%s /user:%s /pass:%s" hostname username password
exec line

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s:%d" RDP hostname portnumber
exec CMD

; Windows OS に登録したアカウント情報の削除
pause 20
sprintf2 line "cmdkey /delete:TERMSRV/%s:%d" hostname portnumber
exec line

ユーザアカウント指定(パスワード初回入力)

Windows OS の cmdkey コマンドを使って、アカウント情報を登録したうえでアクセスする機能をつけたものです。
以下のものは、1度パスワード入力したら次回からは不要なうえ、毎回登録情報を削除しています。
hostname = '192.168.1.102'
portnumber = 3389

username = 'jimba'

pPasswdFile = 'password.dat'

sprintf2 pPasswdName "%s@%s" username hostname
getpassword pPasswdFile pPasswdName password

; Windows OS へのアカウント登録
sprintf2 line "cmdkey /generic:TERMSRV/%s /user:%s /pass:%s" hostname username password
exec line

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s:%d" RDP hostname portnumber
exec CMD

; Windows OS に登録したアカウント情報の削除
pause 20
sprintf2 line "cmdkey /delete:TERMSRV/%s:%d" hostname portnumber
exec line

パスワードを削除するもの

ユーザ名@ホスト名という構成の名前で登録したパスワードを削除するものです。
定期的にパスワードを変更する運用の場合に必要ですね。
hostname = '192.168.1.102'
username = 'jimba'
pPasswdFile = 'password.dat'

sprintf2 pPasswdName "%s@%s" username hostname
delpassword pPasswdFile pPasswdName