●通常ログイン
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@echo off set srv=192.168.1.2 set usr=user set pwd=1234 cmdkey /delete:termsrv/%srv% cmdkey /generic:termsrv/%srv% /user:%usr% /pass:%pwd% start mstsc /v:%srv% /w:1600 /h:900 timeout 2 cmdkey /delete:termsrv/%srv% |
●EntraIDログイン
EntraIDでログインしているPCは上記バッチだと接続できない。
mstscを起動し、設定後、名前を付けて保存でrdpファイルを作成する。
作成したrdpファイルをエディタで開き以下を追加
enablecredsspsupport:i:0
username:s:\AzureAD\[xxx@xxx.com]
password 1:b:[xxx]
パスワードは端末ごとに生成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Add-Type -AssemblyName System.Security # 平文のパスワード $plaintextPassword = "123" # パスワードをバイト配列に変換 $passwordBytes = [System.Text.Encoding]::Unicode.GetBytes($plaintextPassword) # 暗号化のスコープ $scope = [System.Security.Cryptography.DataProtectionScope]::CurrentUser # パスワードの暗号化 $encryptedData = [System.Security.Cryptography.ProtectedData]::Protect($passwordBytes, $null, $scope) # 暗号化されたデータを16進数文字列に変換 $hexString = [System.BitConverter]::ToString($encryptedData) -replace '-', '' # 16進数文字列をクリップボードにコピー "password 51:b:" + $hexString | clip |