AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows-Sandbox

Ein Thema von himitsu · begonnen am 28. Feb 2021 · letzter Beitrag vom 12. Apr 2021
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#1

Windows-Sandbox

  Alt 28. Feb 2021, 20:02
N'abend,

hat schon wer mal die Windows Sandbox ausprobiert?
https://docs.microsoft.com/de-de/win...ndbox-overview

Also direkt zu Nutzen ist das Ding ja eigentlich garnicht. (außer man schreibt eine XML, die aber extrem einfach ist, oder nutzt Fremdprogramme)
* starten dauert recht lange (aber gefühlt schneller, als eine eigene "große" VM und man muß das OS nicht selbst installieren)
* der installierte Edge ist uralt und beim Start sagt er selber dass er zu alt ist
* das Startmenü ist noch viele langsamer (reagiert oft gefühlt nicht, aber man muß nur paar Minuten warten) und die Suchleiste funktioniert nicht
* Strg+Shift-ESC und alles mit [Win] ist im Fenstermodus nicht nutzbar (nur im Vollbild, halt wie ein normaler RDP)
* nach 'ner Weile piept das AntiVirus, weil ist ja nicht aktiv

* gibt es ab Windows Pro und baut auf Hyper-V auf (also 64 Bit und passende CPU/BIOS sind nötig, aber dürfte heute überall vorhanden sein)
* da ist quasi ein kleines Windows installiert (nichtlizenziert, aber egal, da man das Ding eh nie mehr als 30 Tage am Stück nutzen wird)
* im Gegensatz zu "normalen" VMs oder Sandboxen, kann der Zustand nicht gespeichert werden (wird nach Verwendung wieder gelöscht/zurückgesetzt)
* und eigentlich ist diese "Sandbox" eine VM mit einem winzigen Windows welche via RDP angezeigt wird. (es ist auch nur eine Instanz möglich)

* also im Pinzip ist es die halbherzige Neuauflage des XP-Modus, nur ohne das Seamless
* aber es klingt fast so, als hätte man noch viel vor. https://docs.microsoft.com/de-de/vir...ers/containerd


Also eigentlich nicht wirklich nutzbar, aber wenn man es "fernsteurt", dann vielleicht doch.

Meine Überlegung war, dort den RemoteDebugger draufzuschieben und dann den Delphi-Debugger draufgehn zu lassen,
also quasi im IDE-"Start"-Menü ein "in WinVM starten" -> die "Sandbox" starten, den RDP draufschieben und starten, das ExeOutput-Verzeichnis sharen und Delphi verbinden -> EXE starten und Debuggen.

* ein Windows ohne "irgendwas", also kann man da auch wunderbar Abhängigkeiten prüfen, ob man was vergessen hat, was zufällig auf dem Entwicklungsrechner drauf ist
* und mal schauen wie der virtuelle Monitor sich bei HighDPI / 4k verhällt, also ob man dort einen normalen HD ohne Saklierung bekommt (im Fenstermodus)



Ach ja, hatte lange nicht mehr geschaut, aber Sandboxie ist seit letztem Jahr Freeware und sogar OpenSource.
https://www.sandboxie.com/
https://github.com/sandboxie/sandboxie
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Feb 2021 um 21:20 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Windows-Sandbox

  Alt 1. Mär 2021, 09:40
ein Windows ohne "irgendwas", also kann man da auch wunderbar Abhängigkeiten prüfen, ob man was vergessen hat, was zufällig auf dem Entwicklungsrechner drauf ist
Das ist doch schon mal was. Wenn du wirklich Remote Debugging und vielleicht USB-Geräte oder serielle Ports durchschleifen willst dann ist natürlich weiterhin eine "richtige" VM die bessere Wahl. Aber um "mal kurz etwas auszuprobieren" ist es eigentlich genau richtig. Es wurde ja auch nicht primär für Delphi-Entwickler erschaffen, sondern eben um "mal kurz etwas auszuprobieren". Brauche ich z.B. eine Software nur ein einziges mal und/oder bin mir nicht sicher was das Ding alles auf meiner Kiste installieren will mache ich das über die Sandbox.

Dass das Ding beim Schließen alles löscht sagt es ja überdeutlich. Und so muss man sich auch keine Sorgen über Speicherplatz machen, das ist ja bei "richtigen" VMs nicht unbedingt so 😉
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#3

AW: Windows-Sandbox

  Alt 1. Mär 2021, 10:06
Jupp, da das Ding eigentlich so minimalistisch einfach ist und vorallem quasi im Windows schon drin, wäre es fast perfekt für AbhängigkeitsTest.
Oder zum Debuggen von Fokusierungsproblemen, denn in der VM bekommt das Programm nichts mit, wenn der Fokus zum Debugger/Sonstwohin geht.

z.B. weiß ich, dass im neuen Delphi 10.4-Compilat noch mindestens ein VCL-LaufzeitPackage fehlt (seit XE neu in der VCL), das werde ich dort heute gleich mal testen.



Das ist ein 2,3 GB großes Windows 10 64 Bit. Quasi mit einem Snapshot des Images, welches nie neu gespeichert wird.

Drucker, Zwischenablage, Mikrofon, Webcam und Internet/LAN werden durchgereicht. (lassen sich einzeln deaktivieren)
Ein USB könnte man sich z.B. über VirtualHere nachrüsten. (und Serial hat doch "Keiner" mehr, da wird sich der SerialUSB-Treiber auch durchschleifen lassen)

Die GPU/Graka wird standardmäßig über Direct3D WARP (Windows Advanced Rasterization Platform) behandelt/durchgereicht.


Das "Brauche ich z.B. eine Software nur ein einziges mal" wird wohl auch der Hauptzweck sein, denn Microsoft sich ausgedacht hat (das Werbevideo vom Hersteller ist ... naja),
bzw. gegen Viren/Würmer in Mails usw. (safer-surfing fällt standardmäßig ja weg, da der Browser krank ist, aber beim Start könnte man sich auch einen richtigen Broser installieren lassen)

Es geht ALLES, so lange das Windows nicht neu gestartet werden muß, dennn das funktioniert nicht.
Beim Windows-Neustarten verliert das eingebettete RDP die Verbindung und stürzt ab. (auch das VM-Windows beenden, zum Beenden, wirft eine Exception)


Oder mal mit VisualStudio fremdgehen, ohne dass Delphi irgendwas merkt und dann sauer auf dich wird.
Code:
<Configuration>
  <LogonCommand>
    <Command>cmd /c start cmd /c curl -L https://update.code.visualstudio.com/latest/win32-x64-user/stable --output C:\Users\WDAGUtilityAccount\Desktop\vscode.exe ^&amp; C:\Users\WDAGUtilityAccount\Desktop\vscode.exe /verysilent /suppressmsgboxes</Command>
  </LogonCommand>
</Configuration>
Als xyz.wsb speichern und Diese starten.
* doppeltes CMD, da die erste Instanz/Befehl unsichtbar ausgeführt wird)
* und auch wenn der Aufbau der XML es nahe legt, es kann nur ein Befehl ausgeführt werden, aber man kann ja ein/mehrere Verzeichnisse/CMD einbringen und Dieses dann starten
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Mär 2021 um 10:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#4

AW: Windows-Sandbox

  Alt 3. Mär 2021, 10:18
Diese Dateien nach C:\Program Files (x86)\Embarcadero\Sandbox
aber vorher in SBLoad.wsb bei den <HostFolder>C:\Users\Home-Server\ euren %USERNAME% eintragen.
(das Verzeichnis ist schreibgeschützt und die WSB wo anders hin kopieren wollte ich noch nicht)

SBLoad.cmd : SBLoad.ps1 ausführen (PowerShell-Scripte können standardmäßig nicht direkt gestartet werden ... wegen Sicherheitsblabla, oder so)
SBLoad.ps1 : Starten/Stoppen der Sandbox und Auslesen/Anzeigen von Parametern
SBLoad.wsb : die Settings für die Sandbox (könnte man auch direkt starten)

SBInit.ps1 : das InitScript für in der Sandbox
* paar ShortCuts auf den Desktop (denn wenn RDP nicht als Vollbild, dann funktionieren die System-Shortcuts nicht, bzw. sie landen beim Host)
* einige Explorer-Settings (weil alles blöd)
* "Desktop\PAServer\setup_paserver.exe /s" -> PAServer installieren (auskommentiert, weil geht nicht)
* "regsvr32 /s Desktop\BDSBIN\bordbk270.dll" -> Debugger Kernel registrieren
* "Desktop\BDSBIN\rmtdbg270.exe" -> RemoteDebugger starten und dazu die Firewall erlauben
* IP und ComputerName anzeigen

> Verzeichnisse und Links
Desktop\Sandbox (readonly) = dieses Verzeichnis (zum Ausführen des SBInit.ps1)
Desktop\BDSBIN (readonly) = C:\Program Files (x86)\Embarcadero\Studio\21.0\bin (für RemoteDebugger)
Desktop\PAServer (readonly) = C:\Program Files (x86)\Embarcadero\Studio\21.0\PAServer (für PAServer-Setup )
Desktop\Downloads = C:\Users\%USERNAME%\Downloads (zum Dateiaustausch, aber geht auch über die Zwischenablage)
Desktop\Projekte = C:\Users\%USERNAME%\Documents\Embarcadero\Studio\Projekte
Desktop\CMD
Desktop\PowerShell
Desktop\Explorer
Desktop\Task-Manager

Das InitialScript "SBInit" wurde verschachtelt über zwei CMD aufgerufen, denn standardmäßig wird der LogonCommand-Command unsichtbar ausgeführt, aber ich wollte Fortschritt und Status sehn können.
Auch wenn es so aussieht, aber man kann nicht mehrere LogonCommand-Command's angeben und mehrzeilig geht auch nicht. (aber via CMD mit ^& könnte man dort Mehreres machen)


SOOOOO,

Probleme hab ich noch mit dem RemoteDebugger/PAServer.
* der PAServer lässt sich aktuell nur manuell installieren : Desktop\PAServer\setup_paserver.exe (mit Parameter /s wie silent)
* innerhalb des SBInit.ps1 macht die setup_paserver.exe aber garnichts (ja, natürlich auch dann nicht, wenn die Zeile nicht auskommentiert wäre)
* aber zumindestens der RemoteDebugger (rmtdbg270.exe) wird mit Standardparametern minimiert gestartet (und ist hoffentlich auch in der Firewall freigegeben)

PING auf IP oder Computername geht,
aber weder mit paserver.exe oder rmtdbg270.exe bekomm ich derzeit vom Delphi aus eine Verbindung.
* C:\Program Files (x86)\Embarcadero\PAServer\21.0\paserver.exe
* C:\Users\WDAGUtilityAccount\Desktop\BDSBIN\rmtdbg270.exe


C:\Program Files (x86)\Embarcadero\Sandbox\SBLoad.cmd oder direkt \SBLoad.wsb im Explorer starten (NICHT vergessen einmal in der WSB den UserName anzupassen)
Code:
ContainerId = b487c246-69ba-48d5-a4b7-e16d8448cf2b
RDP-Username = WDAGUtilityAccount
RDP-Password = a7899a1f-c756-4902-9d9d-0cacdca51a07

IP          = 192.168.197.97 (IPv6 gibt es auch)
Gateway     = 192.168.192.1

ComputerName = AC9CCB23-AA0A-4 (aus Systemsteuerung\System: ac9ccb23-aa0a-48ed-b8cb-943d8119956d)
RDP-UserName = b487c246-69ba-4
SessionName = 31C5CE94259D4006A9E4#0
ComputerName und SessionName scheinen (bei mir aktuell) immer gleich zu sein,
aber IP, ContainerId und RDP-Passwort ändern sich jedes Mal (Letztere lassen sich aber auslesen).


PING auf 192.168.197.97 , AC9CCB23-AA0A-4 oder AC9CCB23-AA0A-48ED-B8CB-943D8119956D

und mit Debugger auf C:\Users\WDAGUtilityAccount\Desktop\Projekte\Win32\Debug\Project1.exe
Angehängte Dateien
Dateityp: zip Sandbox.zip (2,3 KB, 4x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 3. Mär 2021 um 23:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#5

AW: Windows-Sandbox

  Alt 6. Mär 2021, 23:01
Es fehlte nur noch bissl Feinschliff an der Firewall.

Vorbereitung:
* Dateien nach C:\Program Files (x86)\Embarcadero\Sandbox\ kopieren
* in SBLoad.wsb euren Usernamen eintragen: <MappedFolder><HostFolder>C:\Users\USERNAME\
* SBLoad.cmd oder direkt SBLoad.wsb starten (die SBLoad.ps1 lässt sich standardmäßig nicht ausführen, daher die CMD)

Testprojekt erstellen und kompilieren: C:\Users\%USERNAME%\Documents\Embarcadero\Studio\Projekte\Project1.dpr
(den Namen dürft ihr gern anpassen)

und nachfolgend die 3 Varianten zum Debuggen
* HostName/RemoteComputer eventuell anpassen, siehe Start-CMD in VM > IPAddress, ComputerName oder VMLocalAddress
* Variante 1 und 2 mit dem Remode-Debugger gehen direkt, da Remode-Debugger bereits gestartet wurde
* bei Variante 3 muß nach jedem Start der VM der PAServer installiert verden (automatisch geht nicht, da Setup blöd)



Start > Prozess laden... > Extern
* Debugger: Win32 oder Win64
* Remote-Pfad: C:\Users\WDAGUtilityAccount\Desktop\Projekte\Win32\Debug\Project1.exe
* Remote-Host: 88E841EF-48B5-4

in VM starten: C:\Users\WDAGUtilityAccount\Desktop\Projekte\Win32\Debug\Project1.exe
Start > Mit Prozess verbinden... > Extern
* Debugger: Win32 oder Win64
* Remote-Computer: 88E841EF-48B5-4
* [Aktualisieren]
* Project1.exe

PAServer installieren: Desktop > "PAServer Setup" (geht nicht automatisiert, weil die Setups von Embarcadero einfach nur Schrott sind und sowas nicht können)
PAServer starten: Desktop > PAServer
Delphi Projektverwaltung: Project1 > Zielplattform > Win32 oder Win64 > KontextMenü: Verbindung bearbeiten...
* Hinzufügen "Windows Sandbox"
* Plattform: Win32 oder Win64
* Host-Name: 88E841EF-48B5-4
* Port-Nummer: 64211
* Passwort: lassen (z.B. leer, oder was auch immer ihr beim Start des PAServers angegeben habt)
* Verbindung testen (wenn es hier schon knallt, dann Fehler suchen)
* Speichern
* F9 (wenn keine Verbindung zum PAServer besteht, dann Delphi über TaskManager abschießen, denn es reagiert nie wieder)



Also grundsätzlich ist die VM zum Debuggen nutzbar.


Was mir aufgefallen war:
* Im Explorer und Startmenü funktionieren Suche/Filter garnicht (liegt nicht an mir, das war schon so)
* Das Setup vom PAServer ist Mist, denn obwohl InstallShield, funktioniert eine automatische Instalation (Parameter /s) nicht ... das Setup macht dann einfach garnichts
* Warum steht in diesem Setup (PreInstallation/PreRequisites) nirgendwo, dass das Ding die Java- und C++-Runtime installiert?
* Wenn der PAServer nicht reagiert, dann bleibt Delphi 10.4.2 gnadenlos hängen und man kann nur via TaskManager antworten
* Wenn ich bei Win32/Win64 ein Remote-Profiel anlege, dann lässt sich nicht mehr lokal debuggen
* * ausgenommen den PAServer auch lokal installieren und ein Profil für "localhost"
* * oder in Projektverwaltung im Kontextmenü "Standard wiederherstellen", was aber auch bissl unpraktisch ist

* diese Sandbox nutzt die "Technologie" vom Hyper-V, aber wenn ich im Hyper-V nach VMs suche, dann ist die da nicht dabei (schade, dachte über die Hyper-V-API im Powershell an die IP kommen zu können ... aber egal, ich kann auch von StartStript die IP in eine Datei auf einer Freigabe schreiben, oder via TCP an die IP den Computername des Hosts schicken, welchen ich reingeben kann)
Angehängte Dateien
Dateityp: zip Sandbox.zip (3,0 KB, 6x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Mär 2021 um 12:55 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Windows-Sandbox

  Alt 24. Mär 2021, 19:27
Ich bin leider immer noch nicht dazu gekommen deine Templates auszuprobieren (bin immer noch gespannt), zeitgleich gibt es schon Neuigkeiten für kommende Versionen:

Quelle: https://blogs.windows.com/windows-in...w-build-21343/
Zitat:
Both Windows Sandbox and Microsoft Defender Application Guard take advantage of special container technology built into Windows 10. Previously, the container runtime matched the host. Starting with Build 21343, we are introducing a new runtime that is designed and optimized for container scenarios. It is lightweight and allows faster launch times for both Windows Sandbox and Microsoft Defender Application Guard.

We do not expect this change to affect the application compatibility inside Windows Sandbox. However, this is a significant change and users may encounter some differences in behavior.

Additionally, Windows Sandbox now includes the new Chromium based Microsoft Edge browser (as of Build 21313). Here are instructions on how to get started with Windows Sandbox.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#7

AW: Windows-Sandbox

  Alt 24. Mär 2021, 20:49
Ohne den PAServer ist eine "ideale" Anbindung an Delphi leider so nicht richtig möglich.
https://quality.embarcadero.com/browse/RSP-33502 (mal sehn)


Ein aktueller Edge kann nicht schaden (kann man ja von ausgehen, dass der in normalen Windowsen auch drauf ist)

aber ich hoffe die "verbessern" nicht all zuviel, denn aktuell ist dieses abgespeckte Windows ja gerade deswegen so praktisch,
da möglichst nix drauf, um Abhängigkeiten super testen zu können. (2,3 GB für das komplette 64 Bit-Windows)


Schneller starten klingt auch gut.
Die nutzen zwar die Techniken vom Hyper-V, aber leider den Hyper-V nicht direkt. (leider dadurch nicht dessen API nutzbar )

Aber über die Images der Sandbox war ich jetzt mal gestolpert und "eigentlich" sind die ganz normal, also die haben Snapshots und Dergleichen drin, auch wenn man sie (aktuell) nicht nutzen kann.
C:\ProgramData\Microsoft\Windows\Containers (die Images für die Windows Sandbox und den Windows Defender Application Guard)



Im Notfall könnte ich aber auch auf das Windows-SDK ausweichen und über WinPE (Windows Preinstallations Environment) ein Windows bauen
und im Hyper-V / VirtualBox / VMware installieren lassen.

Es gibt auch eine fertige Windows Entwickler-VM, aber das ist eine VM mit installiertem Visual Studio.
Für meinen Verwendungszweck (Minimal-Test) also komplett ungeeignet, aber wenn jemand mal "kurz" in Visual Studio gucken will. (oder wer gern auf Mac oder Linux kostenlos damit programmieren will)
https://developer.microsoft.com/de-d...tual-machines/ (20 GB alleine der Download)

Und dann gibt's eben noch die Test-VMs mit Internet Explorer / Edge.
https://developer.microsoft.com/en-u...dge/tools/vms/
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Mär 2021 um 21:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.035 Beiträge
 
Delphi 12 Athens
 
#8

AW: Windows-Sandbox

  Alt 9. Apr 2021, 16:20
Ach ja, wenn über Explorer aus der ZIP entpackt, dann in den Dateieigenschaften der CMD das "Zulassen" anhaken, sonst sperrt SmartScreen die Ausführung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.596 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Windows-Sandbox

  Alt 9. Apr 2021, 19:19
Nur falls sich jemand nach Installatin der Sandbox ebenfalls wundert: Sie scheint sich alleine dadurch, dass sie installiert ist, auf Spiele auszuwirken. Ich habe mich danach erstmal total gewundert, weshalb "Seven Kingdoms" plötzlich fast unspielbar wurde. Der Mauszeiger hatte eine dermaßen große Verzögerung, dass er kaum mehr sauber zu positionieren war. Nach Deinstallation der Sandbox war das Phänomen wieder weg.
Thomas Mueller
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Windows-Sandbox

  Alt 10. Apr 2021, 06:42
Sehr merkwürdig - Wie oft ist mir schon passiert dass im Hintergrund noch eine komplette VM lief und ich es selbst bei Videospielen nicht einmal bemerkt hatte. Und mein PC ist fünf Jahre alt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz