翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マップサーバーメッセージブロック (SMB) ネットワークドライブ
のターゲットネットワーク下にある任意のマシンを使用できますSMBs。セッションスクリプトを使用して設定する場合は、まず、ユーザーがログオンしたときに呼び出されるスクリプトを作成する必要があります。セッションスクリプトはイメージごとに設定されます。
Server Message Block (SMB) ネットワークドライブをマッピングするには、次のステップを実行します。
ステップ 1: サービスが実行されていることを確認する
スタートメニューから [services.msc] を開き、次のサービスがすべて実行されていることを確認します。
-
DNS クライアント
-
関数検出リソースの発行
-
SSDP 検出
-
UPnP デバイスホスト
ステップ 2: SMBフォルダを作成する
File Explorer SMBを使用して を作成できます。
File Explorer を使用してSMB共有フォルダを設定するには
-
SMB フォルダを右クリックし、プロパティ、共有を選択します。
-
[高度な共有] を選択します。
-
[高度な共有] で、[このフォルダを共有] をチェックし、[アクセス許可] を選択します。
-
すべてのユーザーにアクセス許可を付与する場合は、デフォルト設定のままにします。
特定のユーザーを追加する場合は、[アクセス許可の共有] で、[全員]、[削除] を選択します。次に、[追加] を選択し、ファイル共有にアクセスするユーザーまたはグループを入力します。
追加するユーザーまたはグループごとに、[許可] を選択して、[フルコントロール]、[変更]、または [読み取りアクセス許可] を割り当てます。
-
[適用]、[OK]、[OK]、[閉じる] を選択します。
ステップ 3: ドメインで SMB にアクセスできることを確認する
同じセキュリティグループを使用し、同じドメインに結合する別のサーバーからファイルエクスプローラーを開きます。ネットワークパスフォルダに移動して、提供されたネットワークパス経由でネットワーク共有にアクセスします。[プロパティ]、[共有]、[ネットワークパス] を選択します。
ステップ 4: ユーザーがローカル/ドメイングループポリシーからシンボリックリンクを作成できるようにする
ユーザーのローカル/ドメイングループポリシーからのシンボリックリンクの作成を有効にして、グループポリシーで定義されているセッションスクリプトまたはログオンスクリプトを確認します。これにより、ユーザーアクセス許可を持つスクリプトをステップ 5 で作成できます。
ユーザーがローカル/ドメイングループポリシーからシンボリックリンクを作成できるようにするには
-
このポリシーを定義するために使用される GPOで、コンピュータ設定、Windows 設定、セキュリティ設定、ユーザー権限の割り当て、ポリシー、シンボリックリンクの作成を選択します。次に、追加するユーザーのアクセス許可を更新します。シンボリックリンクの作成の詳細については、「Create symbolic links
」を参照してください。 -
デフォルトでは、 remote-to-remote (別の同様のシンボリックリンク内のネットワーク共有へのシンボリックリンクマッピングなど) および remote-to-local (シンボリックリンクマッピングとネットワーク共有へのシンボリックリンクマッピングなど) アクセスは無効になっています。シンボリックリンクマッピングが必要な場合は、以下のコマンドを実行します。
-
アクセスを有効にする remote-to-remoteには -
fsutil behavior set SymlinkEvaluation R2R:1
-
アクセスを有効にする remote-to-localには -
fsutil behavior set SymlinkEvaluation R2L:1
-
ステップ 5: ユーザーがログオンしたときに呼び出されるスクリプトを作成する
ユーザーが AppStream 2.0 セッションスクリプトまたはGPOログオンスクリプトを使用してログオンしたときに呼び出されるスクリプトを作成します。 AppStream 2.0 セッションスクリプトを使用することを選択した場合、セッションスクリプトはその特定の AppStream 2.0 イメージにのみ適用されます。GPO ログオンスクリプトを使用する場合、 はドメイン/OU に適用GPOsされ、フリートに設定できます。これにより、所有するすべてのイメージにスクリプトを設定する必要はありません。
セッションスクリプトを使用してSMB共有フォルダを My Files にマウントするには (Powershell を使用)
-
ユーザーアクセス許可を正常に定義したら、ユーザーコンテキストまたはシステムコンテキストを使用して次のサンプルスクリプトを設定します。
ユーザーコンテキストを使用する config.json スクリプトの例を次に示します。
"SessionStart": { "executables": [ { "context": "system", "filename": "", "arguments": "", "s3LogEnabled": true }, { "context": "user", "filename": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "arguments": "-File \"C:\\AppStream\\SessionScripts\\userStart.ps1\"", "s3LogEnabled": true } ], "waitingTime": 30
以下は、システムコンテキストを使用するスクリプトの例です。
"SessionStart": { "executables": [ { "context": "system", "filename": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "arguments": "-File \"C:\\AppStream\\SessionScripts\\systemStart.ps1\"", "s3LogEnabled": true }, { "context": "user", "filename": "", "arguments": "", "s3LogEnabled": true } ], "waitingTime": 30
-
マルチセッションフリートを使用している場合は、システム環境変数
$env:AppStream_Session_UserName
を使用してユーザーのマイファイルフォルダに移動できます。これにより、システムコンテキスト$env:USERNAME
を使用する際に、ユーザー名の代わりにAdmin
にマッピングできます。# Define the target application path $targetPathes = "<SMB-PATH>" # Define the shortcut location $symlinkLocation = "C:\Users\$Env:AppStream_Session_UserName\My Files\Custom Folder" # Create the junction for Custom Home Folder under MyFiles New-Item -ItemType SymbolicLink -Path $symlinkLocation -Target $targetPaths
-
ファイルまたはフォルダにシンボリックファインクを作成して、SMB共有フォルダをマウントします。詳細については、「例 7: ファイルまたはフォルダへのシンボリックリンクを作成する
」を参照してください。 -
次のスクリプトを追加して、マイファイルの下にカスタムホームフォルダのジャンクションを作成します。
# Define the target application path $targetPathes = "<SMB-PATH>" # Define the shortcut location $symlinkLocation = "C:\Users\$env:Username\My Files\Custom Folder" # Create the junction for Custom Home Folder under MyFiles New-Item -ItemType SymbolicLink -Path $symlinkLocation -Target $targetPaths
Windows Server 2022 イメージを使用している場合、ログオンスクリプトが正常に完了するまでマイファイルフォルダが作成されない問題が発生する可能性があります。これにより、ログオンスクリプトを使用してSMBマウント操作を実行するとタイムアウトが発生する可能性があります。この問題を解決するには、 をマウントしながらSMB、以下を実行してログオンスクリプトを使用して独立したプロセス (
Start-Process
) をトリガーします。-
ログオンスクリプトを作成します。
# Define the log file path $logFilePath = "<This-is-where-your-log-files-are-saved>" # Function to write log messages function Write-Log { param ( [string]$message ) $timestamp = get-date -format "yyyy-MM-dd HH:mm:ss" $logMessage = "$timestamp - $message" $logMessage | Out-File -FilePath $logFilePath -Append -Encoding UTF8 } try { Write-Log "Setting execution policy..." Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force Write-Log "Unblocking logon script file..." $filePath = "<This-is-where-your-actual-logon-script-is-linked>" Unblock-File -Path $filePath Write-Log "Running actual logon script..." Start-Process -FilePath 'Powershell.exe' -ArgumentList "-File `"$filePath`"" } catch { Write-Log "An error occurred: $_" "ERROR" }
-
必要に応じて、グループポリシーを使用して、このログオンスクリプトの遅延設定を更新します。詳細については、「ログオン スクリプトの遅延を構成する
」を参照してください。ログオンスクリプトの遅延時間は、非同期ログオンスクリプトをトリガーするまでの遅延時間です。デフォルトの遅延は 5 分です。 -
フリートを再起動して、ログオンスクリプトの遅延を適用します。
-