読者です 読者をやめる 読者になる 読者になる

PowerShell でリモート デスクトップ サービス構築を行う @ Windows Server 2012 R2

こんにちは。

 

検証環境で リモート デスクトップ サービスを構築することが多いので、少しでも効率化しようと、PowerShell の RemoteDesktop Module を使って、リモート デスクトップ サービス構築の自動化を行ってみました。

今回はそれを紹介したいと思います。

 

また、Windows Server 2012 および 2012 R2 での標準的なリモート デスクトップ 構築は、こちらの情報があります。

Windows Server 2012 標準的なリモート デスクトップ サービス環境構築手順について - Ask CORE - Site Home - TechNet Blogs

今回は、ドメイン環境で RD 接続ブローカー、RD Web アクセス、RD セッション ホスト、RD ライセンスをすべて 1 台のマシンにインストールし、構築します。

複数台で構成される場合は、<サーバー名> と表示されている部分に、適切なサーバー名を指定してください。

<役割の追加>

まずは、Install-WindowsFeature を使って、以下の役割をインストールします。

  • RD 接続ブローカー:RDS-Connection-Broker
  • RD Web アクセス:RDS-Web-Access
  • RD セッション ホスト:RDS-RD-Server
    ※RD セッション ホストの役割を入れるサーバーは、再起動が必要になります。
  • RD ライセンス:RDS-Licensing, RDS-Licensing-UI
    ※リモート デスクトップ ライセンス マネージャーもインストールします。
> Install-WindowsFeature -Name RDS-Connection-Broker -Computer <サーバー名>
> Install-WindowsFeature -Name RDS-Web-Access-Computer <サーバー名>
> Install-WindowsFeature -Name RDS-Licensing,RDS-Licensing-UI -Computer <サーバー名>
> Install-WindowsFeature -Name RDS-Connection-Broker -Computer <サーバー名> -Restart

f:id:yaimairi:20151205232710p:plain

<リモート デスクトップ サービスの展開>

再起動が終わったら、リモート デスクトップ サービスの展開を行います。

まず初めに、PowerShell モジュールをインポートします。

> Import-Module RemoteDesktop

こうすることで、RemoteDesktop 関連のコマンドレットが使用できるようになります。

RemoteDesktop モジュールに含まれているコマンドレットは以下の情報を参考にしてください。

Remote Desktop Cmdlets in Windows PowerShell

 

RD 接続ブローカー、RD Web アクセス、RD セッション ホストをセッション ベースとして展開します。

> New-RDSessionDeployment -ConnectionBroker <サーバー名> -WebAccessServer <サーバー名> -SessionHost <サーバー名>

続いて、セッション コレクションを作成します。

> New-RDSessionCollection -CollectionName <コレクション名> -SessionHost <サーバー名> -ConnectionBroker <サーバー名>

ここまでで、とりあえず、リモート デスクトップ接続は行えるようになります。

リモート デスクトップ接続が可能なユーザーは、既定で DomainUsers になっております。変更する場合は、Remote Desktop Users グループを変更してください。

<ライセンス サーバー と ライセンス モードの指定>

セッション ホスト サーバーで、ライセンス サーバーとライセンス モードを指定します。ライセンス モードは、PerUser (接続ユーザー数) と PerDevice (接続デバイス数) を指定します。

> Set-RDLicenseConfiguration -LicenseServer <サーバー名> -Mode <ライセンス モード {PerUser, PerDevice}> -ConnectionBroker <サーバー名> -Force

<RemoteApp プログラムの公開>

RemoteApp プログラムを、以下のコマンドで公開します。

> New-RDRemoteApp -CollectionName <コレクション名> -Alias <エイリアス名> -DisplayName <表示名> -FilePath <実行プログラムのファイルパス> -ShowInWebAccess 1 -ConnectionBroker <サーバー名>

f:id:yaimairi:20151205235722p:plain

 

以上で、基本的なリモート デスクトップ サービスの展開ができます。

次回は、この PowerShell の操作を、PowerShell スクリプト ファイルに保存し、コマンド一つ叩けばあとは待つだけ! という状態にしたいと思います。