起こったこと
RPA実行のため、仮想サーバーに常にリモートデスクトップ接続する必要がある。
そのため、リモート接続用のPowerShellファイルを用意し、タスクスケジューラで1分おきに起動しました。
以前もこちらで質問をしました。
[PowerShell]警告ウィンドウを解除する方法
この時はTest-ConnectionでPing確認を行えば解決できると思っていましたが、また同じエラーが発生し、以降の1分おきのタスクスケジューラも起動しませんでした。
コード
powershell
1# RDP(リモートデスクトップ接続)する際のプロパティ 2$userid = "???????" 3$passwd = "*******" 4 5# サーバー名 6$serverName = "SV12345" 7 8# RDPを開始する関数 9Function Start-RDP($CONNECT_IP, $CONNECT_USER, $CONNECT_PASS){ 10 11 # Cmdkey用に、接続先情報にポート番号が指定されている場合は除外する 12 $CMDKEY_CONNECT_IP = $CONNECT_IP | ForEach-Object{ $_.Split(":")[0]} 13 Cmdkey.exe /generic:TERMSRV/"$CMDKEY_CONNECT_IP" /user:"$CONNECT_USER" /pass:"$CONNECT_PASS" 14 Start-Process mstsc /v:$CONNECT_IP 15 Timeout 5 16 Cmdkey.exe /delete:TERMSRV/$CMDKEY_CONNECT_IP 17} 18 19# 既存のRDPプロセスの存在確認 20Function Get-RDPProcess { 21 Return Get-Process -Name mstsc 22} 23 24# ---メインルーチン--- 25 26# RDPプロセスがあれば 27if(Get-RDPProcess){ 28 29 # RDP画面の最小化を解除する ※今回のエラーとは関係ない 30 31# RDPがなく、Ping応答が正常なら再接続 32}elseif (Test-Connection $serverName -Quiet) { 33 Start-RDP -CONNECT_IP $serverName -CONNECT_USER $userid -CONNECT_PASS $passwd # ←Ping応答は正常だが、再起動の途中だとエラーになる? 34 35# Ping応答が異常なら何もせず、次のスケジュールを待つ 36}else{ 37 38}
エラー
リモートデスクトップはリモートコンピューターに接続できません。次のいずれかが原因です。 1)サーバーへのリモートアクセスが有効にされていない 2)リモートコンピューターの電源が入っていない 3)リモートコンピューターがネットワークで使用できない リモートコンピューターの電源が入っていること、ネットワークに接続されていること、リモートアクセスが有効になっていることを確認してください。
やりたいこと
- ping応答以外にも、正常に仮想サーバーにサインインするための判断基準を用意する
- Start-RDPが失敗してもエラーウィンドウが出ないようにして、次のスケジュールまで待つ
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。