Windows 沙箱設定

Windows沙箱支援簡單的組組檔案,為沙箱提供一組最小的自訂參數。 此功能可與內部Windows 10 18342 或 Windows 11 一Windows使用。 Windows沙箱組設定檔的格式會格式化為 XML,並透過副檔名與沙箱 .wsb 相關聯。

組設定檔可讓使用者控制沙箱Windows方面:

  • **vGPU (虛擬化 GPU) : **啟用或停用虛擬化的 GPU。 如果 vGPU 停用,沙箱會使用WINDOWS或 WARP (模式) 。
  • 網路:啟用或停用沙箱內的網路存取。
  • 對應資料夾:從具有讀取或寫入權限的** 主機共用資料夾。 請注意,公開主機目錄可能會允許惡意軟體影響系統或竊取資料。
  • 登入命令:沙箱啟動時Windows命令。
  • 音訊輸入:將主機的麥克風輸入分享到沙箱中。
  • 視訊輸入:將主機的網路相機輸入共用至沙箱。
  • 受保護的用戶端:在 RDP 會話上將增強的安全性設定放在沙箱中。
  • 印表機重新導向:將印表機從主機共用至沙箱。
  • 剪貼簿重新導向:與沙箱共用主剪貼簿,以便來回貼上文字和檔案。
  • MB 記憶體:要指派給沙箱的儲存體量 ,以 MB 為單位。

建立組設定檔

若要建立簡單的組組檔案:

  1. 開啟純文字編輯器或原始程式碼編輯器 (例如記事本、Visual Studio Code等)

  2. 插入下列行:

    <Configuration>
    </Configuration>
    
  3. 在兩行之間新增適當的組組文字。 有關詳細資料,請參閱正確的語法及下列範例。

  4. 使用所需名稱儲存檔案,但請確定其副檔名為 .wsb 。 在 記事本中,您應該將檔案名和副檔名括在雙引號內,例如 "My config file.wsb"

使用組設定檔

若要使用設定檔,請按兩下該檔案,Windows沙箱的設定。 您也可以透過命令列來調用它,如下所示:

C:\Temp> MyConfigFile.wsb 

關鍵字、值和限制

vGPU

啟用或停用 GPU 共用。

<vGPU>value</vGPU>

支援的值:

  • 啟用:啟用沙箱中的 vGPU 支援。
  • 停用:停用沙箱中的 vGPU 支援。 如果已設定此值,沙箱會使用軟體呈現,其速度可能會比虛擬化的 GPU 慢。
  • 預設 這是 vGPU 支援的預設值。 目前這表示 vGPU 已停用。

注意

啟用虛擬化 GPU 可能會增加沙箱的攻擊面。

網路功能

啟用或停用沙箱中的網路。 您可以停用網路存取,以減少沙箱顯示的攻擊面。

<Networking>value</Networking>

支援的值:

  • 停用:停用沙箱中的網路。
  • 預設值:這是網路支援的預設值。 此值可在主機上建立虛擬開關,並透過虛擬 NIC 將沙箱連接到它,以啟用網路。

注意

啟用網路可能會將不受信任的應用程式公開至內部網路。

對應資料夾

資料夾陣列,每個資料夾代表主機上要共用至指定路徑沙箱的位置。 目前不支援相對路徑。 如果未指定路徑,資料夾會對應到容器使用者的桌面。

<MappedFolders>
  <MappedFolder> 
    <HostFolder>absolute path to the host folder</HostFolder> 
    <SandboxFolder>absolute path to the sandbox folder</SandboxFolder> 
    <ReadOnly>value</ReadOnly> 
  </MappedFolder>
  <MappedFolder>  
    ...
  </MappedFolder>
</MappedFolders>

HostFolder: 指定要共用至沙箱的主機電腦資料夾。 請注意,該資料夾必須存在於主機上,否則容器將無法啟動。

沙箱資料夾:指定沙箱中的目的地,以將資料夾地圖至。 如果資料夾不存在,就會建立該資料夾。 如果未指定沙箱資料夾,資料夾會對應到容器桌面。

*ReadOnly:*如果為 True, 會強制從容器內對共用資料夾進行唯讀存取。 支援的值 :true / false。 預設值為 false

注意

從主機對應到的檔案和資料夾可能會遭到沙箱中的應用程式入侵,或可能會影響主機。

登入命令

指定在沙箱登錄後,會自動調用的單一命令。 沙箱中的應用程式會以容器使用者帳戶執行。

<LogonCommand>
  <Command>command to be invoked</Command>
</LogonCommand>

命令:在容器內可執行或腳本的路徑,該路徑將在登入後執行。

注意

雖然非常簡單的命令 (例如啟動可執行檔或腳本) ,但涉及多個步驟的複雜案例應該放在腳本檔案中。 此腳本檔案可能會透過共用資料夾對應到容器,然後透過 LogonCommand 指令 執行。

音訊輸入

啟用或停用沙箱的音訊輸入。

<AudioInput>value</AudioInput>

支援的值:

  • 啟用:啟用沙箱中的音訊輸入。 如果已設定此值,沙箱將能夠接收使用者的音訊輸入。 使用麥克風的應用程式可能需要此功能。
  • 停用:停用沙箱中的音訊輸入。 如果已設定此值,沙箱無法從使用者接收音訊輸入。 使用麥克風的應用程式可能無法使用此設定正常運作。
  • 預設值:這是音訊輸入支援的預設值。 目前這表示音訊輸入已啟用。

注意

將主機音訊輸入公開至容器可能會影響安全性。

視訊輸入

啟用或停用沙箱的視像輸入。

<VideoInput>value</VideoInput>

支援的值:

  • 啟用:啟用沙箱中的視訊輸入。
  • 停用:停用沙箱中的視訊輸入。 使用視像輸入的應用程式可能無法在沙箱中正常運作。
  • 預設值:這是視訊輸入支援的預設值。 目前這表示視音訊輸入已停用。 使用視像輸入的應用程式可能無法在沙箱中正常運作。

注意

將主機視音訊輸入公開至容器可能會帶來安全性影響。

受保護的用戶端

將其他安全性設定適用于沙箱遠端桌面用戶端,降低其攻擊面。

<ProtectedClient>value</ProtectedClient>

支援的值:

  • 啟用:在Windows用戶端模式中執行沙箱。 如果已設定此值,沙箱會以啟用額外的安全性降低功能執行。
  • 停用:在標準模式中執行沙箱,而不需要額外的安全性緩解措施。
  • 預設值:這是受保護的用戶端模式的預設值。 目前,這表示沙箱不會在受保護的用戶端模式中執行。

注意

這項設定可能會限制使用者在沙箱中複製/貼上檔案的能力。

印表機重新導向

啟用或停用從主機到沙箱的印表機共用。

<PrinterRedirection>value</PrinterRedirection>

支援的值:

  • 啟用:啟用主機印表機共用至沙箱。
  • 停用:停用沙箱中的印表機重新導向。 如果已設定此值,沙箱無法從主機查看印表機。
  • 預設值:這是印表機重新導向支援的預設值。 目前這表示印表機重新導向已停用。

剪貼簿重新導向

啟用或停用與沙箱共用主剪貼簿。

<ClipboardRedirection>value</ClipboardRedirection>

支援的值:

  • 停用:停用沙箱中的剪貼簿重新導向。 如果已設定此值,將限制在沙箱中複製/貼上。
  • 預設值:這是剪貼簿重新導向的預設值。 目前允許在主機和沙箱之間複製/貼上 。預設

MB 記憶體

指定沙箱可使用的 MB 或 MB (記憶體) 。

<MemoryInMB>value</MemoryInMB>

如果指定的記憶體值不足,無法啟動沙箱,系統會自動將它增加到所需的最小數量。

範例 1

下列設定檔可用來輕鬆測試沙箱內下載的檔案。 若要達成此目的,網路和 vGPU 會停用,沙箱允許以唯讀存取共用下載資料夾。 為了方便起見,登入命令會在啟動時開啟沙箱內的下載資料夾。

Downloads.wsb

<Configuration>
  <VGpu>Disable</VGpu>
  <Networking>Disable</Networking>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\Users\Public\Downloads</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>explorer.exe C:\users\WDAGUtilityAccount\Downloads</Command>
  </LogonCommand>
</Configuration>

範例 2

下列設定檔會安裝在沙Visual Studio Code,這需要稍微複雜的 LogonCommand 設定。

有兩個資料夾對應到沙箱中;第一個 (SandboxScripts) 包含 VSCodeInstall.cmd,將會安裝並Visual Studio Code。 第二個 (編碼Projects) 會假設包含開發人員想要使用專案檔案修改Visual Studio Code。

當Visual Studio Code腳本已對應到沙箱中時,LogonCommand 可以參照它。

VSCodeInstall.cmd

REM Download Visual Studio Code
curl -L "https://update.code.visualstudio.com/latest/win32-x64-user/stable" --output C:\users\WDAGUtilityAccount\Desktop\vscode.exe

REM Install and run Visual Studio Code
C:\users\WDAGUtilityAccount\Desktop\vscode.exe /verysilent /suppressmsgboxes

VSCode.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\SandboxScripts</HostFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
    <MappedFolder>
      <HostFolder>C:\CodingProjects</HostFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Desktop\SandboxScripts\VSCodeInstall.cmd</Command>
  </LogonCommand>
</Configuration>