Windows-Sandbox-Konfiguration

Windows-Sandbox unterstützt einfache Konfigurationsdateien, die einen minimalen Satz von Anpassungsparametern für Sandbox bereitstellen. Dieses Feature kann mit Windows 10, Build 18342 oder Windows 11 verwendet werden. Windows-Sandbox-Konfigurationsdateien sind als XML formatiert und mit der .wsb-Dateierweiterung Sandbox zugeordnet.

Eine Konfigurationsdatei ermöglicht es dem Benutzer, die folgenden Aspekte von Windows-Sandbox zu steuern:

  • vGPU (virtualisierte GPU): Aktiviert oder deaktiviert die virtualisierte GPU. Wenn vGPU deaktiviert ist, verwendet die Sandbox Windows Advanced Rasterization Platform (WARP).
  • Networking: Aktiviert oder deaktiviert den Netzwerkzugriff innerhalb der Sandbox.
  • Zugeordnete Ordner: Freigeben von Ordnern vom Host mit Lese- oder Schreibberechtigungen. Das Verfügbarmachen von Hostverzeichnissen kann es zulassen, dass schadhafte Software das System beeinflusst oder Daten stehlen kann.
  • Anmeldebefehl: Ein Befehl, der beim Starten von Windows-Sandbox ausgeführt wird.
  • Audioeingang: Gibt den Mikrofoneingang des Hosts in die Sandbox frei.
  • Videoeingang: Gibt den Webcameingang des Hosts in die Sandbox frei.
  • Geschützter Client: Places erhöhte Sicherheitseinstellungen für die RDP-Sitzung (Remotedesktopprotokoll) für die Sandbox.
  • Druckerumleitung: Gibt Drucker des Hosts für die Sandbox frei.
  • Zwischenablageumleitung: Gibt die Host-Zwischenablage für die Sandbox frei, sodass Text und Dateien hin und her eingefügt werden können.
  • Arbeitsspeicher in MB: Die Größe des Arbeitsspeicher in Megabyte, der der Sandbox zugewiesen werden soll.

Hinweis

Die Größe des Sandboxfensters kann derzeit nicht konfiguriert werden.

Erstellen einer Konfigurationsdatei

So erstellen Sie eine Konfigurationsdatei

  1. Öffnen Sie einen Nur-Text-Editor oder Quellcode-Editor (z. B. Editor, Visual Studio Code usw.).

  2. Fügen Sie die folgenden Zeilen ein:

    <Configuration>
    </Configuration>
    
  3. Fügen Sie den entsprechenden Konfigurationstext zwischen den beiden Zeilen hinzu. Ausführliche Informationen finden Sie in den Beispielen.

  4. Speichern Sie die Datei unter dem gewünschten Namen, stellen Sie jedoch sicher, dass die Dateinamenerweiterung .wsb ist. Im Windows-Editor sollten Sie den Dateinamen und die Erweiterung in doppelte Anführungszeichen einschließen, z. B. "My config file.wsb".

Verwenden einer Konfigurationsdatei

Um eine Konfigurationsdatei zu verwenden, doppelklicken Sie darauf, um Windows-Sandbox entsprechend den Einstellungen zu starten. Sie können sie auch über die Befehlszeile aufrufen, wie hier gezeigt:

C:\Temp> MyConfigFile.wsb

Schlüsselwörter, Werte und Limits

vGPU

Aktiviert oder deaktiviert die GPU-Freigabe.

<vGPU>value</vGPU>

Unterstützte Werte:

  • Enable: Aktiviert die vGPU-Unterstützung in der Sandbox.
  • Disable: Deaktiviert die vGPU-Unterstützung in der Sandbox. Wenn dieser Wert festgelegt ist, verwendet die Sandbox Softwarerendering, das möglicherweise langsamer ist als die virtualisierte GPU.
  • Default: Dieser Wert ist der Standardwert für die vGPU-Unterstützung. Zurzeit gibt dieser Standardwert an, dass vGPU deaktiviert ist.

Hinweis

Das Aktivieren der virtualisierten GPU kann die Angriffsfläche der Sandbox möglicherweise vergrößern.

Networking

Aktiviert oder deaktiviert den Netzwerkzugriff in der Sandbox. Sie können den Netzwerkzugriff deaktivieren, um die durch die Sandbox exponierte Angriffsfläche zu verringern.

<Networking>value</Networking>

Unterstützte Werte:

  • Enable: Aktiviert den Netzwerkzugriff in der Sandbox.
  • Disable: Deaktiviert den Netzwerkzugriff in der Sandbox.
  • Default: Dieser Wert ist der Standardwert für die Netzwerkunterstützung. Dieser Wert aktiviert den Netzwerkzugriff, indem ein virtueller Switch auf dem Host erstellt wird und die Sandbox über eine virtuelle Netzwerkkarte mit diesem verbunden wird.

Hinweis

Die Aktivierung des Netzwerkzugriffs setzt das interne Netzwerk der Gefahr von nicht vertrauenswürdigen Anwendungen aus.

Zugeordnete Ordner

Ein Array von Ordnern, die jeweils einen Speicherort auf dem Hostcomputer darstellen, der für die Sandbox am angegebenen Pfad freigegeben wird. Zurzeit werden relative Pfade nicht unterstützt. Wenn kein Pfad angegeben wird, wird der Ordner dem Desktop des Containerbenutzers zugeordnet.

<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: Gibt den Ordner auf dem Hostcomputer an, der in der Sandbox freigegeben werden soll. Der Ordner muss bereits auf dem Host vorhanden sein, andernfalls kann der Container nicht gestartet werden.
  • SandboxFolder: Gibt das Ziel in der Sandbox an, dem der Ordner zugeordnet werden soll. Wenn der Ordner nicht vorhanden ist, wird er erstellt. Wenn kein Sandboxordner angegeben ist, wird der Ordner dem Containerdesktop zugeordnet.
  • ReadOnly: Wenn true, wird der schreibgeschützte Zugriff auf den freigegebenen Ordner innerhalb des Containers erzwungen. Unterstützte Werte: true/false. Der Standardwert ist false.

Hinweis

Dateien und Ordner, die vom Host zugeordnet sind, können von Apps in der Sandbox kompromittiert werden oder sich möglicherweise auf den Host auswirken.

Befehl "Logon command"

Gibt einen einzelnen Befehl an, der automatisch aufgerufen wird, nachdem sich die Sandbox angemeldet hat. Apps in der Sandbox werden unter dem Containerbenutzerkonto ausgeführt. Das Containerbenutzerkonto muss ein Administratorkonto sein.

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

Befehl: Ein Pfad zu einer ausführbaren Datei oder einem Skript innerhalb des Containers, die/das nach der Anmeldung ausgeführt wird.

Hinweis

Obwohl sehr einfache Befehle funktionieren (z. B. das Starten einer ausführbaren Datei oder eines Skripts), sollten komplexere Szenarien mit mehreren Schritten in eine Skriptdatei aufgenommen werden. Diese Skriptdatei kann über einen freigegebenen Ordner dem Container zugeordnet und dann über die Richtlinie LogonCommand ausgeführt werden.

Audioeingang

Aktiviert oder deaktiviert den Audioeingang in die Sandbox.

<AudioInput>value</AudioInput>

Unterstützte Werte:

  • Enable: Aktiviert den Audioeingang in der Sandbox. Wenn dieser Wert festgelegt ist, kann die Sandbox Audioeingaben vom Benutzer empfangen. Für Anwendungen, die ein Mikrofon verwenden, ist diese Funktion möglicherweise erforderlich.
  • Disable: Deaktiviert den Audioeingang in der Sandbox. Wenn dieser Wert festgelegt ist, kann die Sandbox keine Audiosignale des Benutzers empfangen. Anwendungen, die ein Mikrofon verwenden, funktionieren mit dieser Einstellung möglicherweise nicht ordnungsgemäß.
  • Default: Dieser Wert ist der Standardwert für die Unterstützung des Audioeingangs. Zurzeit gibt dieser Standardwert an, dass die Audioeingabe aktiviert ist.

Hinweis

Die Bereitstellung des Hostaudioeingangs für den Container kann Auswirkungen auf die Sicherheit haben.

Videoeingang

Aktiviert oder deaktiviert den Videoeingang in der Sandbox.

<VideoInput>value</VideoInput>

Unterstützte Werte:

  • Enable: Aktiviert den Videoeingang in der Sandbox.
  • Disable: Deaktiviert den Videoeingang in der Sandbox. Anwendungen, die den Videoeingang verwenden, funktionieren in der Sandbox möglicherweise nicht ordnungsgemäß.
  • Default: Dieser Wert ist der Standardwert für die Unterstützung des Videoeingangs. Zurzeit gibt dieser Standardwert an, dass die Videoeingabe deaktiviert ist. Anwendungen, die den Videoeingang verwenden, funktionieren in der Sandbox möglicherweise nicht ordnungsgemäß.

Hinweis

Die Bereitstellung des Host-Videoeingangs für den Container kann Auswirkungen auf die Sicherheit haben.

Geschützter Client

Wenn der geschützte Clientmodus aktiviert ist, fügt die Sandbox eine neue Sicherheitsebene hinzu, indem sie innerhalb einer AppContainer-Isolation-Ausführungsumgebung ausgeführt wird.

Die AppContainer-Isolation ermöglicht die Isolation von Anmeldeinformationen, Geräten, Dateien, Netzwerken, Prozessen und Fenstern.

<ProtectedClient>value</ProtectedClient>

Unterstützte Werte:

  • Enable: Führt die Windows-Sandbox im geschützten Clientmodus aus. Wenn dieser Wert festgelegt ist, wird die Sandbox in AppContainer-Isolation ausgeführt.
  • Disable: Führt die Sandbox im Standardmodus ohne zusätzliche Sicherheitsvorkehrungen aus.
  • Default: Dieser Wert ist der Standardwert für den geschützten Clientmodus. Zurzeit gibt dieser Standardwert an, dass die Sandbox nicht im geschützten Clientmodus ausgeführt wird.

Hinweis

Diese Einstellung kann die Möglichkeit des Benutzers einschränken, Dateien in und aus der Sandbox zu kopieren/einzufügen.

Druckerumleitung

Aktiviert oder deaktiviert die Druckerfreigabe vom Host in der Sandbox.

<PrinterRedirection>value</PrinterRedirection>

Unterstützte Werte:

  • Enable: Aktiviert die Freigabe von Hostdruckern in der Sandbox.
  • Disable: Deaktiviert die Druckerumleitung in der Sandbox. Wenn dieser Wert festgelegt ist, kann die Sandbox keine Drucker vom Host anzeigen.
  • Default: Dieser Wert ist der Standardwert für die Unterstützung der Druckerumleitung. Zurzeit gibt dieser Standardwert an, dass die Druckerumleitung deaktiviert ist.

Zwischenablageumleitung

Aktiviert oder deaktiviert die Freigabe der Host-Zwischenablage für die Sandbox.

<ClipboardRedirection>value</ClipboardRedirection>

Unterstützte Werte:

  • Enable: Aktiviert die Freigabe der Host-Zwischenablage für die Sandbox.
  • Disable: Deaktiviert die Umleitung der Zwischenablage in der Sandbox. Wenn dieser Wert festgelegt ist, ist das Kopieren/Einfügen in und aus der Sandbox eingeschränkt.
  • Default: Dieser Wert ist der Standardwert für die Umleitung der Zwischenablage. Zurzeit ist das Kopieren/Einfügen zwischen Host und Sandbox unter Standard zulässig.

Arbeitsspeicher in MB

Gibt die Speichermenge in Megabyte (MB) an, die Sandbox verwenden kann.

<MemoryInMB>value</MemoryInMB>

Wenn der angegebene Arbeitsspeicherwert nicht ausreicht, um eine Sandbox zu starten, wird er automatisch auf den erforderlichen Mindestwert erhöht.

Beispiele

Beispiel 1

Die folgende Konfigurationsdatei kann verwendet werden, um die heruntergeladenen Dateien einfach innerhalb der Sandbox zu testen. Um diesen Test zu erreichen, sind Netzwerk und vGPU deaktiviert, und der Sandbox wird schreibgeschützter Zugriff auf den freigegebenen Downloadordner gewährt. Der Einfachheit halber öffnet der Anmeldebefehl den Downloadordner innerhalb der Sandbox, wenn er gestartet wird.

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>

Beispiel 2

Die folgende Konfigurationsdatei installiert Visual Studio Code in der Sandbox, was ein etwas komplizierteres LogonCommand-Setup erfordert.

Der Sandbox werden zwei Ordner zugeordnet. das erste (SandboxScripts) enthält VSCodeInstall.cmd, mit dem Visual Studio Code installiert und ausgeführt wird. Der zweite Ordner (CodingProjects) enthält Projektdateien, die der Entwickler mit Visual Studio Code ändern möchte.

Da das Visual Studio Code-Installationsprogrammskript bereits der Sandbox zugeordnet ist, kann der Befehl "LogonCommand" darauf verweisen.

VSCodeInstall.cmd

Lädt VS Code in den Ordner herunter downloads und führt die Installation aus dem Ordner aus downloads .

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

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

VSCode.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\SandboxScripts</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads\sandbox</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
    <MappedFolder>
      <HostFolder>C:\CodingProjects</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Documents\Projects</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Downloads\sandbox\VSCodeInstall.cmd</Command>
  </LogonCommand>
</Configuration>

Beispiel 3

Die folgende Konfigurationsdatei führt ein PowerShell-Skript als Anmeldebefehl aus, um die primäre Maustaste für Linkshänder zu tauschen.

C:\sandbox Ordner auf dem Host wird dem C:\sandbox Ordner in der Sandbox zugeordnet, sodass auf das SwapMouse.ps1 Skript in der Sandboxkonfigurationsdatei verwiesen werden kann.

SwapMouse.ps1

Erstellen Sie ein PowerShell-Skript mit dem folgenden Code, und speichern Sie es im C:\sandbox Verzeichnis als SwapMouse.ps1.

[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null

$SwapButtons = Add-Type -MemberDefinition @'
[DllImport("user32.dll")]
public static extern bool SwapMouseButton(bool swap);
'@ -Name "NativeMethods" -Namespace "PInvoke" -PassThru

$SwapButtons::SwapMouseButton(!([System.Windows.Forms.SystemInformation]::MouseButtonsSwapped))

SwapMouse.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\sandbox</HostFolder>
      <SandboxFolder>C:\sandbox</SandboxFolder>
      <ReadOnly>True</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>powershell.exe -ExecutionPolicy Bypass -File C:\sandbox\SwapMouse.ps1</Command>
  </LogonCommand>
</Configuration>