====== Windows Defizite und Stärken ====== dies ist eine kleine Aufstellung praktische Unzulänglichkeiten. Natürlich kann man mit den richtigen Tools einige der nicht grundsätzlichen Probleme beheben. ===== Links ===== * [[https://www.infoworld.com/d/microsoft-windows/microsoft-in-the-media-unfair-and-unbalanced-190570?page=0,1|https://www.infoworld.com/d/microsoft-windows/microsoft-in-the-media-unfair-and-unbalanced-190570?page=0,1]] * [[http://www.lockergnome.com/news/2012/04/17/why-do-tech-bloggers-hate-microsoft/|Why Do Tech Bloggers Hate Microsoft?]] ===== Stärken ===== * Fokus auf Konzerne * hohe Konfigurierbarkeit über **Richtlinien** * **Starke Rechtevergabe (ACLs)** incl. Vererbung sowohl für Dateien als auch der Registry * Integration von **Snapshots** (Volume Shadow Dienst) als Standardfeature * **BITS** - intelligenter Hintergrundübertragungsdienst * **NTFS** hat viele features die allerdings nicht von allen Programmen/APIs unterstützt werden (Beispiele s.u. Explorer, xcopy, Robocopy) * (Re)**Deployment** von Anwendungen über Silent-install (.exe) oder MSI-Pakete global oder Teilgruppen möglich FIXME Natürlich fehlt hier noch einiges! ===== Defizite ===== TOP-Probleme: - historische Altlasten - fehlende Transparenz ((bei Fehlern der eng-verzahnten Komponenten, komplexe Anwendungsfehler mit 3rd level-Support lohnen i.d.R. gegenüber Neu-Installation nicht)) - politische Entscheidungen von Microsoft ==== Architektur ==== * **kein allgemeines und zentrales Updatesystem** bzw. [[Paketmanager]] vorhanden, aktuell wird nur Microsoft-Software zentral aktuell gehalten (jede Anwendung nervt mit eigenen Updateprogrammen) siehe [[http://www.heise.de/security/artikel/Mein-Wunschzettel-fuer-Windows-7-Updates-fuer-Alle-270132.html|Updates für Alle]] - das Update-system funktioniert übrigens nicht ohne Internet-Explorer, eine Deinstallation ist also ausgeschlossen * Neustarts sind (immer noch) viel zu oft nötig (Grund ist das Dateilocking, s. u.) und bei Updates fast immer fällig * **Dateilocking**: man kann keine Dateien löschen die in Benutzung sind (Grund: Windows und Programme sperren die Dateien die geöffnet sind, d. h. solche die einen [[wpde>handle|file handle]] haben, das ist auch der Grund warum Windows oft Neustarts braucht). Moderne Systeme stört das nicht und Programme müssen einen gleichzeitigen Zugriff bereits bei der Programmierung berücksichtigen. * **Versionenkompatibilität** * Parallelinstallationen mehrerer Windows-versionen zerstört Daten: * WinXP überschreibt die Wiederherstellungpunkte und Datensicherungspunkte/Schattenkopien von Vista/Win7 wenn der Datenträger eingehangen wird((Grund ist die fehlende Schattenkopienfunktionaliät unter WinXP, ein grundsätzlicher Fix wird nicht kommen da zu aufwändig. workaround wärre nur den Datenträger Offline zu nehmen: unterhalb von ''HKEY_LOCAL_MACHINE\System\Mounted-Devices'' den Schlüssel "Offline" anlegen und darin den DWORD-Unterschlüssel ''\DosDevices\D:'' mit dem Wert 1 wenn Win7 von XP aus gesehen auf Laufwerk D: ist)) * Dateisystem / Partitionierungskompatibilität: * WinXP startet von Sektor 63, spätere Versionen von Sektor 1024. Deshalb dürfen neue Partitionen nur mit Win7 angelegt werden, sonst ist die Win7-Partition verschwunden! * WinXP weigert sich auf von Win7 erstellte NTFS-Partitionen zu installieren * **Sicherheitslücken** sind (im Vergleich zu anderen Betriebssystemen) überdurchschnittlich häufig kritisch und eignen sich zur entfernten Ausnutzung. Aktuelle Lücken: siehe [[http://www.zerodayinitiative.com/upcoming_advisories.html|hier]] und [[http://research.eeye.com/html/advisories/upcoming/|hier]]. * DLL Hijacking dadurch das Suchpfad auch lokales Verzeichnis enthält: [[http://www.heise.de/security/meldung/Microsoft-warnt-vor-DLL-Luecke-in-Anwendungen-1064330.html|DLL-Lücke in Anwendungen]] [[http://www.heise.de/newsticker/meldung/DLL-Sicherheitsproblem-zieht-weite-Kreise-Update-1066132.html|DLL-Sicherheitsproblem zieht weite Kreise]] * [[http://www.heise.de/newsticker/meldung/Authentifizierung-unter-Windows-Ein-schwelendes-Sicherheitsproblem-1059244.html|Authentifizierung unter Windows: Ein schwelendes Sicherheitsproblem]] * [[http://www.heise.de/security/meldung/Microsoft-bestaetigt-USB-Trojaner-Luecke-1039915.html|Sicherheitslücke bei LNK-Dateien]] * das **Signalkonzept beachtet keinen User/Security-Kontext**, das führt zu allerlei Sicherheitsproblemen (z.B. kann eine beliebige Anwendung andere Anwendung Benutzer-aktionen vorgaukeln oder einem Programm vorspielen dass Windows heruntergefahren wird) * das Dateisystem **NTFS fragmentiert** stark, weil alle Dateien an den Anfang der Festplatte gelegt werden). Moderne Dateisysteme verteilen die Daten gleichmäßig auf der Platte und packen nicht linear alle Datei hintereinander an den Anfang. * **Erkennung der Dateitypen** findet auschließlich anhand der Dateiendungen statt, umbenennen heißt: Dateityp unbekannt. (moderne Systeme erkennen am **MIME-Typ** oder charakteristischen Zeichenketten den Dateityp) * Windows ist **nur auf wenigen Architekturen lauffähig** - aufgrund der oft nötigen binär-Kompatibilität (kein Quellcode verfügbar zur Portierung oder unwirtschaftlich) ist de facto nur noch Intel x86 von Bedeutung (incl. AMD64 bzw. x64 oder x86-64): * Itantium wurde nach Windows XP bzw. Windows Server 2008 R2 eingestellt * Windows RT (Arm) wurde 2015 eingestellt * -> zum Vergleich die Architekturliste von [[linux:Linux]]: IA-32, AMD64/x64, Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, IA-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa und Blackfin. * Internet Explorer ((auch böshaft als Internet Exploiter bezeichnet)) * ist gleichzeitig Dateimanager, Desktopmanager und Browser (konzeptionelle Sicherheitslücke) - ist jedoch zugunsten vom Browser Edge abgekündigt * durch **Active-X**-Controls können böswillige Seiten nach einer Sicherheitsabfrage (die Benutzer normalerweise nicht verstehen) im Browser bequem Programme mit den Rechten des Benutzers ausführen, ein stringentes Sicherheitskonzept fehlt bis heute. Auch **Silverlight** 5 wird die Möglichkeit haben [[http://www.heise.de/newsticker/meldung/Silverlight-5-erscheint-verspaetet-und-diskret-1393319.html|nativen Code]] auszuführen (der aber immerhin signiert sein muss). * UNC-Pfade sind mit [[netzwerke:ipv6]]-Adressen nur durch einen [[netzwerke:ipv6#Ipv6 in Windows|nicht durchgängig funktionierenden workaround]] nutzbar * unnötige **Wartezeiten** bei der Arbeit im LAN (wenn ein Computer oder Drucker nicht mehr verfügbar ist, kann man zwangsläufig für 30sek im Explorer nichts mehr machen; das Durchsuchen von Netzwerken dauert lange, teilweise ist erst nach einigen Minuten überhaupt alles zu sehen. Devise: Warten und hoffen.) * das Standard-protokoll für Freigabe (hieß früher SMB, jetzt CIFS = "Common Internet File System") ist für langsame(re) WAN-Verbindungen nicht geeignet, CIFS ist ein reiner Marketingname, es ist weder allgemein gebräuchlich („common“) noch wird es im Internet benutzt, noch ist es tatsächlich ein Dateisystem („File System“). * es ist nicht möglich einen **Datenträger schreibgeschützt** zu verwenden ohne auf den Datenträger zu schreiben (wichtig speziell für forensische Analysen bzw. bei fehlerhaften Geräten). Einseits hängt Windows selbstständig neu-erkannte Datenträger sofort ein (was abschaltbar ist), der Status "nur schreibgeschützt einhängen" muss aber auf den Datenträger geschrieben werden und funktioniert nicht auf allen Versionen. Auch bei der Installation lassen sich NTFS-Partitionen nicht sicher vom Zugriff ausschließen. * ineffiziente Caches, die Auslagerungsdatei wird (unnötigerweise z. B. für Kernelspace-auslagerungen) sehr früh benutzt um mehr Cache anbieten zu können. ==== Umsetzung ==== * Rechtesystem intransparent: Manche Programme starten nie mit Administrationsrechten (Datei-Explorer) andere dagegen ohne Nachfrage (Datenträgerverwaltung), viele Programme erkennen nicht ob Sie genügend Rechte haben und geben irreführende Fehlermeldungen. Einige Drittanbieter-updater installieren extra Dienste für den Updateprozess *** mitgelieferte Software** hat große Funktionslücken "crapware" * **Windows-Explorer** * ist umkomfortabler als (das könnte man allerdings als Gewöhnungsfrage abheften) * bricht bei einer Kopieraktion nach einem Fehler bei einer Datei den kompletten Kopiervorgang ab, kein überspringen möglich * kann auch keine hard-links (ein NTFS-feature) richtig zählen: {{:windows:explorer-cannot-count.png?200|Explorer kann nicht zählen}} Zahlreiche Alternativen zeigen wie es geht: [[http://www.softwareok.de/?seite=Freeware/Q-Dir|Q-Dir]], [[http://www.ghisler.com/deutsch.htm|Total-Commander]], [[http://qttabbar.wikidot.com/|QTTabBar]]... * xcopy und Robocopy kennen keine hard-links daher belegen diese Dateien auf dem Ziel plötzlich doppelt Platz * notepad kann nicht einmal Zeilenumbrüche von Mac/Linux/Unix richtig darstellen * notepad und wordpad können keine Zeilennummern anzeigen * paint kennt keine Ebenen und andere wichtige Funktionen und das obwohl Microsoft [[http://paint.net/|paint.net]] mitentwickelt hat * interner Packer kennt weder das rar noch das 7zip-Format * Brennfunktionen von XP kann nur CDs brennen * **Pfadnamen** ((siehe: [[http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx|Naming Files, Paths, and Namespaces]] und [[https://social.technet.microsoft.com/Forums/en/winservergen/thread/cc7491ae-5039-4cf5-8347-d43f22389bb0|Answer Maximum Path Length Limitation]])) * Die Länge des Pfades + Dateiname darf theoretisch 260 Zeichen nicht überschreiten, praktisch eher 255 Zeichen((wobei aber einige Unicode-Versionen Funktionen ungefähr 32 000 Zeichen unterstützen, zusammengesetzt aus Teilen von 255 Zeichen.)) * Viele Sonderzeichen ( ''< > : " / \ | ? *'' ) dürfen nicht im Namen vorkommen (([[software:Sharepoint]] hat zusätzliche [[http://support.microsoft.com/default.aspx?scid=kb;en-us;905231|Dateinamens-Einschränkungen]])) * Gerätenamen (Relikt aus DOS-Zeiten!) dürfen nicht im Namen vorkommen: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. * Unicode wird nicht von allen (System-) Funktionen unterstützt (und sogar Dateinamen stillschweigend in die aktuelle Codepage, eingestellt unter "language for non-unicode programs", umgewandelt), es verwenden viele Programme nicht die "wide character"-Versionen der Systemfunktionen (_wfopen, etc.) * Symlinks (symbolische Verknüpfungen) sind schlecht und unvollständig implementiert: * Anwendungsunterstützung schlecht (auch erst seit Vista dabei) * Anwender können Symlinks nicht ordentlich benutzen (aktuell nur als elevated/Administrator-Benutzer nutzbar - aber nicht als Benutzer "SYSTEM"), zukünftig (Plan: [[https://blogs.windows.com/buildingapps/2016/12/02/symlinks-windows-10/#6gt1RPfSeGsr1FUo.97|Windows 10 Insiders build 14972]] - dort aber nur wenn System und Programm im [[https://msdn.microsoft.com/en-us/windows/uwp/get-started/enable-your-device-for-development|DEV-mode]]), in Zukunft muss ''SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE'' in der [[https://msdn.microsoft.com/en-us/library/windows/desktop/aa363866(v=vs.85).aspx|CreateSymbolicLink API]] benutzt werden * merkwürdige fallback-Strategie bei mklink: ohne Admin-recht oder Parameter wird eine lnk-Datei erstellt, ansonsten muss man angeben ob das Ziel ein Verzeichnis (-d) oder eine Datei (-f) ist * der mit gelieferte **NTP-Dienst** ist ungenau: Er soll lediglich dafür sorgen, dass die Abweichung der Systemzeit von der Quelle höchstens im unteren Minutenbereich liegt, damit die Kerberos-Authentifizierung innerhalb von Domänen funktioniert." [[http://www.heise.de/ct/hotline/NTP-Software-statt-W32Time-948225.html|Quelle]]. * **Offlinedateien** kommen mit einem wichtigen Fall nicht zurecht: Dateien sind auf Server gelöscht und während der Offlinezeit lokal geändert worden. Man kann die lokalen Dateien nicht einfach wieder auf den Server stellen sondern muss manuell jede einzelne Datei wieder an ihrem Ort kopieren. ((Der Dialog unter Win7 zeigt nicht mal vollständig an wo diese vorher lag, das muss man sich aus einer xml-Datei selbst heraussuchen.)) * **Speicherverbrauch** (Bespiel: [[windows:Vista]]. Unter 1 GB geht zum arbeiten nicht viel). Statt daran zu arbeiten erfindet Microsoft Sachen wie ReadyBoost um Sticks als Cache zu benutzen. Der wird dann auch noch verschlüsselt ((notwendig weil der Stick sensible Daten des Arbeitsspeichers enthält und abgezogen werden kann)) was dann aber wiederum Rechenzeit kostet. Der Arbeitsspeicher wird natürlich nicht erweitert, da auch ein USB-Stick zu langsam als Arbeitsspeicher ist. Win7 verhält sich deutlich sparsamer belegt allerdings immer noch zuviel Speicher (der nicht als Cache oder Stand-by gekennzeichnet ist) als nötig, dieser steht bei weniger verbautem Speicher plötzlich doch zur Verfügung. * Windows geht beim Bevormunden des Benutzers zu weit: **Ordnernamen werden gnadenlos eingedeutscht**, ab Vista sogar noch extremer, da sich die Ablageverzeichnissen geändert haben. Tatsächlich sind die Ordner englisch auf der Festplatte, Beispiel Der Ordner "Program files" wird als Programme angezeigt, existiert aber als Ordner nicht. Andere Ordner sind nicht direkt erreichbar, z. B. ist ''C:\Windows\system32\SnippingTool.exe'' von einem 32 Bit-Programm aus nur über ''C:\Windows\Sysnative\SnippingTool.exe'' erreichbar. * **Suchpfad**: Jedes Programm das es braucht muss den Suchpfad (%path%) um den eigenen Installationspfad erweitern. Sinnvoller wäre ein ordentliches systemweites Verzeichnisschema gewesen mit einem einzigen bin-Ordner der alle exe-Programme enthält. * **Internet Explorer** (abgekündigt, Nachfolder h[[ttp://www.heise.de/newsticker/meldung/Microsoft-Edge-beerdigt-proprietaere-Internet-Explorer-Techniken-2638228.html|Microsoft Edge]]) * hängt permanent den W3C-Standards hinterher (ebenso mit der Javascript-performance) obwohl das Problem mit aktuellen Versionen deutlich entschärft ist * Addons werden deaktiviert wenn die Toolbar ausgeblendet werden soll (bug oder feature?) * diverse propreitäre Erweiterungen (VML, [[https://msdn.microsoft.com/en-us/library/t0aew7h6.aspx|VBScript]], [[https://msdn.microsoft.com/en-us/library/bx9c54kf(VS.71).aspx|Active Documents]]) * die **Dokumentation** ist dürftig, die Hilfe gibt nur allgemeine Informationen * Integration von verbreiteten **Standards** schlecht ([[netzwerke:SSH]] in Vorbereitung ((Stand Anfang 2016)), [[netzwerke:WebDAV]] sehr langsam und fehlerhaft, [[netzwerke:FTP]] so halbwegs) * **unsinnige Standardvorgaben** (Beispiel: Dateiendungen ausblenden, starkes Stück für ein Betriebssystem das MIME-Types ignoriert und ausschließlich anhand der Endung das verknüpfte Programm startet oder eine Datei als Programm ansieht) * die **Systemprotokolle** zur Fehlerdiagnose sind kaum zu gebrauchen (wenn überhaupt kann man mit den [[http://www.eventid.net/|Event-IDs nur im Internet nachschauen]] bzw. in der know-something-base ;-) * **servergespeicherte Profile** * können nicht gleichzeitig für Win 2000/XP und Vista-Arbeitsplätze gelten, da mit Vista ein neues Format existiert (es wird ".V2" nach dem Benutzernamen angehängt). Somit müssen pro Benutzer zwei unabhängige Profile gepflegt werden falls ein MA sowohl auf XP als auch auf Vista/7 arbeitet. * werden lokal gecacht und verstopfen die Festplatten auf C:, löschen geht nur manuell und zu lange Dateiname könnten auch das verhindern. Glücklicherweise gibt es Programme wie [[http://4sysops.com/archives/free-delprof2-reliably-delete-a-user-profile/|delprof2]] die den Wahnsinn fixen. ==== Usability ==== * Terminal/Eingabeaufforderung lässt sich nicht beliebig skalieren (WTF?) * Netzwerk-Einstellungen lassen sich nicht temporär (bis zu neustart) festlegen, mann muss wieder zurückstellen * **keine virtuellen Desktops** (mit dem Fenstergruppieren kann doch keiner produktiv arbeiten) * Es gibt keinen systemweiten Passwortmanager/Schlüsselbund, somit bildet jede Anwendung ihre eigene Insel * **nervige** Meldungen und Pop-up Fenster (Beispiel: Der Assistent für unbenutzte Icons auf dem Bildschirm, die Tastatur-sprachumschaltung: Tauscht überhaupt jemand regelmäßig seine Tastaturen gegen ausländische Modelle aus???) * Ostereiersuche nach Einstellungen (gutes Beispiel: Die Netzwerkeinstellungen) * Kommandozeilen-Befehle sind umständlich und lang. Beispiele: netsh interface ipv4 set dnsserver “Local Area Connection” static DNS-IP * Auf der Kommandozeile den Server zu konfigurieren ist umständlich bis gar nicht möglich. * Eine nachträgliche Installation der grafischen Oberfläche ist bei "Core" nicht vorgesehen ===== Wie Windows immer mehr zu Unix wird ===== * Ab Vista/Win7 erfordert die Ablage von Dateien außerhalb des Home-Ordners abfragen nach Administrativen Rechten * Im Explorer gibt es unter Win7 schon die Option Laufwerkbuchstaben auszublenden * Dateiattribute werden immer unwichtiger (Archiv, ...)