一般的なトラブルシューティング - Amazon AppStream 2.0
SAML フェデレーションが機能していません。ユーザーには AppStream 2.0 アプリケーションを閲覧する権限がありません。ADFS ポータルからのフェデレーション後に、ストリーミングセッションが開始されません。「接続が切断されました」というエラーが表示されます。無効なリダイレクト URI エラーが発生します。自分のイメージビルダーとフリートが [実行中] 状態になることはありません。自分の DNS サーバーは Simple AD ディレクトリにあります。ユーザーのためにアプリケーション設定の永続化を有効にしましたが、永続的なアプリケーション設定が保存またはロードされません。​ユーザーに対してアプリケーション設定の永続化を有効にしましたが、特定のストリーミングアプリケーションでは、ユーザーのパスワードがセッション間で永続化されません。Google Chrome データが、ユーザーの永続的なアプリケーション設定を保持する VHD ファイルに保存されます。このため、ユーザーの設定が保持されません。Chrome プロファイルを管理する方法を教えてください。埋め込み AppStream 2.0 ストリーミングセッション用にカスタムドメインを設定しましたが、 AppStream 2.0 ストリーミング URL がカスタムドメインにリダイレクトされません。スマートカード対応の AppStream 2.0 フリートでアプリケーションを起動しましたが、認証に使用できる証明書の数が限られている (またはまったくない)。スマートカード対応の 2.0 フリートでは、証明書伝達サービスが起動しません。 AppStream

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

一般的なトラブルシューティング

Amazon AppStream 2.0 を使用する際に発生する可能性のある一般的な問題は次のとおりです。

問題

SAML フェデレーションが機能していません。ユーザーには AppStream 2.0 アプリケーションを閲覧する権限がありません。

このエラーは、SAML 2.0 フェデレーションの IAM ロール用に埋め込まれているインラインポリシーに、スタック ARN へのアクセス許可が含まれていないことが原因で発生する可能性があります。IAM ロールは AppStream 2.0 スタックにアクセスしているフェデレーティッドユーザーが引き受けます。ロールのアクセス許可を編集して、スタック ARN を含めます。詳細については、IAM ユーザーガイドの「Amazon AppStream 2.0 と SAML 2.0 の統合」および「AWSでの SAML 2.0 フェデレーションのトラブルシューティング」を参照してください。

ADFS ポータルからのフェデレーション後に、ストリーミングセッションが開始されません。「接続が切断されました」というエラーが表示されます。

NameID SAML 属性で、クレームルールの [Incoming Claim Type] を [UPN] に設定し、接続をやり直してください。

無効なリダイレクト URI エラーが発生します。

このエラーは、 AppStream 2.0 スタックのリレーステート URL の形式が正しくないか、無効であることが原因で発生します。フェデレーション設定で設定されているリレー状態が、 AppStream 2.0 コンソールのスタック詳細に表示されるスタックリレー状態と同じであることを確認してください。これらが同じでも問題が解決しない場合は、お問い合わせください。 AWS Support詳細については、「Amazon AppStream 2.0 と SAML 2.0 の統合」を参照してください。

自分のイメージビルダーとフリートが [実行中] 状態になることはありません。自分の DNS サーバーは Simple AD ディレクトリにあります。

AppStream 2.0 では、VPC 内の DNS サーバーが、存在しないローカルドメイン名に対して存在しないドメイン (NXDOMAIN) レスポンスを返すことに依存しています。これにより、 AppStream 2.0 が管理するネットワークインターフェースが管理サーバーと通信できるようになります。

Simple AD でディレクトリを作成すると、ユーザーに代わって DNS サーバーとしても機能する 2 AWS Directory Service つのドメインコントローラーが作成されます。ドメインコントローラーは NXDOMAIN レスポンスを返さないため、2.0 では使用できません。 AppStream

ユーザーのためにアプリケーション設定の永続化を有効にしましたが、永続的なアプリケーション設定が保存またはロードされません。

AppStream 2.0 は Windows インスタンスの特定の場所に作成されたアプリケーション設定を自動的に保存します。これらの設定が保存されるのは、アプリケーションによって以下のいずれかの場所に保存された場合に限ります。サポートされている場所のリストについては、「アプリケーション設定の永続化の仕組み」を参照してください。アプリケーションの保存先を C:\Users\%username% に設定していて、ユーザーのアプリケーション設定がセッション間で保持されないときは、マウントポイントが作成されていない場合があります。この場合は、ユーザーの永続的なアプリケーション設定の保存先である VHD ファイルに設定が保存されません。

この問題を解決するには、以下の手順を実行します。

  1. フリートインスタンスで File Explorer を開き、ユーザープロファイルディレクトリ (C:\Users\%username%) を参照します。

  2. このディレクトリにシンボリックリンクが含まれているかどうかを確認し、以下のいずれかの操作を行います。

    • シンボリックリンクがある場合は、それが D:\%username% を指していることを確認します。

    • シンボリックリンクがない場合は、C:\Users\%username% ディレクトリの削除を試行します。

      このディレクトリを削除できない場合は、このディレクトリ内で削除を妨げているファイルを特定し、このファイルを作成したアプリケーションを特定します。次に、ファイルのアクセス許可を変更する方法またはファイルを移動する方法について、アプリケーションベンダーに問い合わせます。

      このディレクトリを削除できる場合は、 AWS Support この問題を解決するための詳細なガイダンスを問い合わせてください。詳細については、AWS Support センターを参照してください。

​ユーザーに対してアプリケーション設定の永続化を有効にしましたが、特定のストリーミングアプリケーションでは、ユーザーのパスワードがセッション間で永続化されません。

次の場合にこの問題が発生します。

  • ユーザーは、Microsoft Data Protection API を使用する Microsoft Outlook などのストリーミングアプリケーションです。

  • アプリケーション設定の永続化は、Active Directory ドメインに参加していないストリーミングインスタンスに対して有効になります。

ストリーミングインスタンスが Active Directory ドメインに参加していない場合、Windows ユーザーはフリートインスタンスごとに異なります。 PhotonUserDPAPI セキュリティモデルの機能上の理由から、このシナリオで DPAPI を使用するアプリケーションではユーザーのパスワードは保持されません。​ ストリーミングインスタンスが Active Directory ドメインに参加していて、そのユーザーがドメインユーザーである場合、Windows ユーザー名はログインしているユーザーの名前であり、DPAPI を使用するアプリケーションではユーザーのパスワードは保持されます。

Google Chrome データが、ユーザーの永続的なアプリケーション設定を保持する VHD ファイルに保存されます。このため、ユーザーの設定が保持されません。Chrome プロファイルを管理する方法を教えてください。

デフォルトでは、Google Chrome はユーザーデータとローカルディスクキャッシュの両方を Windows ユーザープロファイルに保存します。ユーザーの永続的なアプリケーション設定が保持されている VHD ファイルにローカルディスクキャッシュデータが保存されないようにするには、ユーザーデータのみを保存するように Chrome を設定します。これを行うには、フリートインスタンスで管理者としてコマンドラインを開き、以下のパラメータを指定して Chrome を開始し、ディスクキャッシュの場所を変更します。

chrome.exe --disk-cache-dir C:\path-to-unsaved-location\

これらのパラメータを指定して Chrome を実行すると、 AppStream 2.0 セッションの間はディスクキャッシュが保持されなくなります。

埋め込み AppStream 2.0 ストリーミングセッション用にカスタムドメインを設定しましたが、 AppStream 2.0 ストリーミング URL がカスタムドメインにリダイレクトされません。

この問題を解決するには、 AppStream 2.0 ストリーミング URL を作成したときに、 AppStream 2.0 エンドポイントをカスタムドメインに置き換えたことを確認してください。デフォルトでは、 AppStream 2.0 ストリーミング URL は次のような形式になっています。

https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode

ストリーミング URL のデフォルト AppStream 2.0 エンドポイントを置き換えるには、URL https://appstream2. のリージョンをカスタムドメインに置き換えます。例えば、カスタムドメインが training.example.com の場合、新しいストリーミング URL は次の形式に従う必要があります。

https://training.example.com/authenticate?parameters=authenticationcode

埋め込み AppStream 2.0 ストリーミングセッション用のカスタムドメインの設定について詳しくは、「」を参照してくださいカスタムドメインを使用するための設定要件

スマートカード対応の AppStream 2.0 フリートでアプリケーションを起動しましたが、認証に使用できる証明書の数が限られている (またはまったくない)。

この状況は、Certificate Propagation サービスが実行状態になる前にアプリケーションが起動された場合に発生します。

この問題を解決するには、Get-Service PowerShell モジュールを使用して証明書伝達サービスのステータスを照会し、アプリケーションを起動する前にサービスが実行状態であることを確認します。

例えば、次のスクリプトでは、Certificate Propagation サービスが実行されるまでアプリケーションは起動されません。

$logFile = "$Env:TEMP\AS2\Logging\$(Get-Date -Format "yyyy-MM-dd-HH-mm-ss")_applaunch.log" New-Item -path $logfile -ItemType File -Force | Out-Null Function Write-Log { Param ([string]$message) $stamp = Get-Date -Format "yyyy/MM/dd HH:mm:ss" $logoutput = "$stamp $message" Add-content $logfile -value $logoutput } if (Get-Service -Name "CertPropSvc" | Where-Object -Property Status -eq Running) { Write-Log "The Certificate Propagation Service is running. Launching Application..." try { Start-Process -FilePath "Path to Application" -WindowStyle Maximized -ErrorAction Stop } catch { Write-Log "There was an error launching the application: $_" } } else { do { $status = Get-Service "CertPropSvc" | select-object -ExpandProperty Status Write-Log "The Certificate Propagation service status is currently $status" Start-Sleep -Seconds 2 } until (Get-Service -Name "CertPropSvc" | Where-Object -Property Status -eq Running) write-log "The Certificate Propagation Service is running. Launching Application..." try { Start-Process -FilePath "Path to Application" -WindowStyle Maximized -ErrorAction Stop } catch { Write-Log "There was an error launching the application: $_" } }

スマートカード対応の 2.0 フリートでは、証明書伝達サービスが起動しません。 AppStream

Certificate Propagation サービスが開始されない場合、サービスのスタートアップタイプを [Disabled] (無効) に設定する必要があります。これを解決するには、フリートのイメージの作成に使用した AppStream 2.0 イメージビルダーで Windows Services Microsoft 管理コンソールを起動し、証明書伝達サービスのスタートアップタイプが [無効] に設定されていないことを確認します。

スタートアップの種類が Disabled に設定されておらず、まだ AppStream 2.0 フリートでサービスが開始されない場合は、フリートインスタンスの起動時に Start-Service PowerShell モジュールを使用して証明書伝達サービスを開始します。

たとえば、 PowerShell 次のスクリプトは、サービスが停止状態であることを検出するとサービスを開始します。

$logFile = "C:\AppStream\Logging\$(Get-Date -Format "yyyy-MM-dd-HH-mm-ss")_certpropcheck.log" New-Item -path $logfile -ItemType File -Force | Out-Null Function Write-Log { Param ([string]$message) $stamp = Get-Date -Format "yyyy/MM/dd HH:mm:ss" $logoutput = "$stamp $message" Add-content $logfile -value $logoutput } if (Get-Service -Name "CertPropSvc" | Where-Object -Property Status -eq Running) { Write-Log "The Certificate Propagation Service is running. Exiting..." Exit } else { do { if (Get-Service -Name "CertPropSvc" | Where-Object -Property Status -eq Stopped) { Write-Log "The Certificate Propagation Service is stopped, attepmting to start..." try { Start-Service -Name "CertPropSvc" -ErrorAction Stop } catch { Write-Log "There was a problem starting the service: $_" break } $status = Get-Service "CertPropSvc" | select-object -ExpandProperty Status Write-Log "The Certificate Propagation service status is currently $status" } else { $status = Get-Service "CertPropSvc" | select-object -ExpandProperty Status Write-Log "The Certificate Propagation service status is currently $status" break } } until (Get-Service -Name "CertPropSvc" | Where-Object -Property Status -eq Running) }