tech.guitarrapc.cóm

Technical updates

PowerShellでRemote Desktopを起動させる

Remote DesktopはWindowsのリモートセッションでは標準であるうえ性能の向上が著しいため多くのヒトが使っているいることでしょう。 Remote Desktopで毎回IPを入力するのもめんどくさい、あるいはRDP構成ファイルを触るのもやだなどという場合に、PowerShellで下準備をしてあげる方法です。

guitarrapc/PowerShellUtil - Start-RDP/Start-RDP.ps1 | GitHub

RemoteDesktop接続が可能な相手かを確認する

ただ単にRemoteDesktop起動画面を出すのでは面白くないわけで。 そもそも相手がRemote Desktopできる対象か調べるといいのでは的な。

$server = "192.168.1.1"
$RDPPort = 3389
New-Object System.Net.Sockets.TCPClient -ArgumentList $server,$RDPPort

このようにすると接続先がRDPに対応しているかBoolで判定されます。Test-ConnectionなどでIP判定とかもろもろするといいのですが、今回は省きます。

function Start-RDP {
    [CmdletBinding()]
    param(
    [parameter(
        mandatory,
        position = 0)]
    [string]
    $server,

    [parameter(
        mandatory = 0,
        position = 1)]
    [string]
    $RDPPort = 3389
    )

    # Test RemoteDesktop Connection is valid or not
    $TestRemoteDesktop = New-Object System.Net.Sockets.TCPClient -ArgumentList $server,$RDPPort

    # Execute RDP Connection
    if ($TestRemoteDesktop)
    {
        Invoke-Expression "mstsc /v:$server"
    }
    else
    {
        Write-Warning "RemoteDesktop 接続ができませんでした。ネットワーク接続を確認してください。"
    }
}

利用するときはこのような感じで。

Start-RDP -server "ServerIp"