joe2017
Goto Top

Windows 10 Standardprogramme via Script oder GPO festlegen

Hallo zusammen,

ich versuche gerade in Windows 10 für einen Benutzer (kein Administrator) die Standardprogramme via Script oder GPO anzupassen.

Hierfür existiert folgende GPO welche meines Wissens aber nur in einer Domäne funktioniert.
Gruppenrichtlinienverwaltung\Computerkonfiguration\Richtlinien\Administrative Vorlagen\Windows-Komponenten\Datei-Explorer\Konfigurationsdatei für Standardzuordnungen festlegen

Die zuvor angepassten Standardprogramme werden über folgenden Befehl in eine XML exportiert.
Dism /Online /Export-DefaultAppAssociations:C:\AppAssociations.XML

Zusätzlich sollte man diese auch wieder über DISM importieren können.
Dism /Online /Import-DefaultAppAssociations:C:\AppAssociations.XML

Jedoch kann man DISM nur mit erhöhten Rechten (Ausführen als Administrator) ausführen. Somit sollten die importierten Daten auch nur für den Administrator greifen.
Jedoch funktioniert auch das nicht richtig.

Gibt es hierfür noch eine andere Möglichkeit? Ich würde auch gerne die Einstellungen unter System\Standard-Apps für alle lokalen Benutzer anpassen.

Content-ID: 287307

Url: https://administrator.de/contentid/287307

Ausgedruckt am: 09.11.2024 um 01:11 Uhr

DerWoWusste
DerWoWusste 02.11.2015 um 20:51:03 Uhr
Goto Top
Hi.

Eben getestet auf 10. Funktioniert.
Kann es wohl sein, dass Du die xml-Datei nicht im Netzwerk abgelegt hast? Leg sie mal auf eine erreichbare Freigabe.
joe2017
joe2017 03.11.2015 um 09:31:43 Uhr
Goto Top
Hallo,

ist dein Windows 10 Rechner in einer Arbeitsgruppe oder in einer Domäne? Wie bereits erwähnt funktioniert dies nicht in einer normalen Arbeitsgruppe.
Habe ich soeben nochmals getestet. Funktioniert leider auch nicht. Gibt es eine analoge Policy die hierfür aktiviert werden müsste?
DerWoWusste
DerWoWusste 03.11.2015 um 09:44:05 Uhr
Goto Top
In einer Domäne. Wird aber keinen Unterschied machen. Bitte gib mal an, wie er die xml einliest - wo liegt die?
joe2017
joe2017 03.11.2015 um 10:07:15 Uhr
Goto Top
Und ganau da liegt das Problem. Kannst du das mal ohne eine Domänenmitgliedschaft testen und dies in lokalen Richtlienen konfigurieren.
Wenn man sich die GP Beschreibung durchließt steht es auch noch ganz klar darin.

Wenn diese Gruppenrichtlinie aktiviert ist und der Clientcomputer einer Domäne angehört, wird die Datei beim Anmelden verarbeitet, und die Standardzuordnungen werrden angewendet.
DerWoWusste
DerWoWusste 03.11.2015 um 10:48:49 Uhr
Goto Top
Mach ich nachher mal, melde mich.
DerWoWusste
DerWoWusste 03.11.2015 um 17:57:59 Uhr
Goto Top
Ok, getestet, hast Recht, muss ein Bug sein: es geht nicht in der Workgroup.
Hatte in der lokalen GPO auf die exportierte xml direkt auf c: verwiesen - läuft nicht.

Irgendwie kommt mir der Bug bekannt vor. Microsoft hatte den glaube ich schon einmla hinbekommen beim Lockscreenbild, da war es ganz genau so.
joe2017
joe2017 04.11.2015 um 10:32:10 Uhr
Goto Top
Gibt es eine Möglichkeit die Standardprogramme mittels Powershell festzulegen?
Die beiden folgenden Befehle gehen leider nicht, da die CMD für Benutzer deaktiviert.
cmd /c assoc
cmd /c ftype
Die Registry ist ebenfalls für Benutzer gesperrt. Aber evtl. gibt es in der Powershell ebenfalls einen Befehl für die Bearbeitung der Standardprogramme (associate file extension).
DerWoWusste
DerWoWusste 04.11.2015 um 10:40:25 Uhr
Goto Top
Es geht auch anderweitig per GPO, siehe https://technet.microsoft.com/en-us/library/cc754587.aspx
joe2017
joe2017 04.11.2015 um 10:48:36 Uhr
Goto Top
Hallo DerWoWusste,

anscheinend hast du mich noch immer nicht verstanden.
Mein Client befindet sich NICHT innerhalb einer DOMÄNE !!!

Diese GPO gibt es nur in einer DOMÄNE
DerWoWusste
DerWoWusste 04.11.2015 aktualisiert um 13:28:11 Uhr
Goto Top
Und Du meinst, deswegen würde mir Fettdruck auf die Sprünge helfen?
Sorry, ich hatte zuvor geschrieben, dass ich für Dich getestet habe - in einer Workgroup - und hatte Dir Recht gegeben. Dann habe ich Dir eine Alternative rausgesucht - GPP - was nicht Teil des lokalen Gruppenrichtlinienmanagers ist - soweit korrekt - aber dennoch nichts anderes als Registry settings sind, die Du einfach mal zusammenklicken und auslesen solltest, damit Du sie auf Deiner Workgroup verteilen kannst per Doppelklick auf eine Regdatei.

Schau an, ich komme ganz ohne !!! aus und kann mich auch verständlich machen.
Edit: und ja, ich habe auch gelesen, dass regedit gesperrt ist. Dennoch kannst Du es über registrymounting erreichen, dass allen vorhandenen Benutzern diese Werte reingezimmert werden. Ich mach Dir gern eine bebilderte Anleitung fertig.
joe2017
joe2017 04.11.2015 um 14:58:56 Uhr
Goto Top
Hallo DerWoWusste,

ich glaube du hast mich falsch verstanden. Ich wollte dich damit nicht dumm darstellen oder angreifen.
Ich bin dir natürlich dankbar für deine Ideen und Mithilfe. Jedoch helfen die Lösungsansätze leider nur innerhalb einer Domäne weiter in der ich mich nicht befinde. Ich wollte dies mit dem Fettdruck nur noch einmal verdeutlichen mehr nicht. Solltest du dich angegriffen fühlen, entschuldige ich mich hiermit noch einmal. face-wink

Gibt es nicht eine Möglichkeit dies via Powershell anzupassen oder aber auch via batch für alle Benutzer (als Administrator).
Die Registry und CMD sind für Benutzer deaktiviert.
DerWoWusste
DerWoWusste 04.11.2015 um 15:25:01 Uhr
Goto Top
Ok, man versteht sich leicht miss face-smile

Ich schrieb ja schon: mach eine Domänenrichtlinie (in einer Testdomäne), schau dort rein, welche Keys das sind und hau sie dann über Registrymounting rein - da kann regedit ruhig gesperrt sein und du brauchst auch keine Domäne.

Beispiel: wir verteilen hier einen Dateitype .sna und ordnen ihn c:\windows\drivesnapshot.exe zu. Das sieht in der xml-Datei der Policy so aus:
<?xml version="1.0" encoding="utf-8"?> 
<FolderOptions clsid="{8AB5F5D7-F676-48ab-A94E-1186E120EFDC}"><OpenWith clsid="{100B9C09-906A-4f5a-9C41-1BD98B6CA022}" name="sna" userContext="1" image="2" changed="2015-11-04 14:14:14" uid="{2CC883E5-A5F9-488E-A393-46D2B73CA1E1}"><Properties action="U" fileExtension="sna" applicationPath="C:\Windows\drivesnapshot.exe" default="1"/></OpenWith> 
</FolderOptions>
Das mach nun mal mit Deinen Dateitypen und schau, wo das, was in der xml steht, in der Registry zu finden ist, mach ein Regfile draus und dann lass es vom Taskplaner in die Registry kloppen - unabhängig von Userrechten oder Domänen.
joe2017
joe2017 04.11.2015 um 15:42:24 Uhr
Goto Top
Ja, kann schon mal passieren.

Das wird dann leider nicht funktionieren, da die User via GPO das Bearbeiten der Registry vorboten bekommen haben. face-sad
DerWoWusste
DerWoWusste 04.11.2015 aktualisiert um 15:45:35 Uhr
Goto Top
Hm, ich schreib doch wieder und wieder, dass das der Taskplaner machen kann, unabhängig von Usern oder verbotenem regedit.
joe2017
joe2017 04.11.2015 um 16:57:58 Uhr
Goto Top
Ich muss das bei ca 150 Clients durchführen. Ein Script wäre da schon etwas einfacher.
DerWoWusste
DerWoWusste 04.11.2015 um 17:14:24 Uhr
Goto Top
Ok, ich rekapituliere:
GPO ist simpel, geht nicht, keine Domäne.
Regedit merge ist simpel, geht niht, regedit abgeschaltet.
Taskplaner merge geht, erscheint DIr aber nicht simpel genug, da Dir offenbar kein Weg naheliegendend ist, den Task zu verteilen, richtig?
Das ginge mit psexec von remote. Oder mit einem Startskript (welches auch bei nicht-Domänenmitgliedern auf einem Netzlaufwerk liegen kann, man muss es natürlich einmal einrichten).

Aber nun mal ehrlich: 150 PCs und keine Domäne? Das ist doch kaum normal zu nennen face-wink

Wenn Du eine Skriptlösung willst, nimm psexec.
joe2017
joe2017 04.11.2015 um 17:24:41 Uhr
Goto Top
Ja ich weiß, ist alles nicht so einfach. Zusätzlich ist aus Sicherheitsgründen das Remotemanagement jeglicher Art deaktiviert.
Mir hätte lediglich ein Powershell Script weiterhelfen können. Anscheinend muss ich doch noch etwas warten bis unsere AD Migration abgeschlossen wurde. Falls irgendwem dennoch etwas einfällt bin ich sehr dankbar.

Trotzdem vielen Dank!
DerWoWusste
DerWoWusste 04.11.2015 um 17:27:16 Uhr
Goto Top
Darf ich fragen, wie Du das Powershellskript (oder was auch immer für'n Skript) denn dann starten würdest?
joe2017
joe2017 05.11.2015 um 09:12:46 Uhr
Goto Top
Darfst du.

ich habe ein Zertifikat für meine PS Scripts und lasse Signierte PS Scripts per GPO zu. face-wink
DerWoWusste
DerWoWusste 05.11.2015 aktualisiert um 09:15:48 Uhr
Goto Top
Und wer startet diese Skripte? Autostart, geplante Tasks, manuell, ...?
joe2017
joe2017 05.11.2015 um 09:40:26 Uhr
Goto Top
Entweder über ein Login Script oder in meinem Fall manuell bei der Einrichtung.
DerWoWusste
DerWoWusste 05.11.2015 um 09:48:09 Uhr
Goto Top
Manuell kannst Du doch weiterhin alles machen. Sinnigerweise sperrt man Registry-Editing nicht für den Admin, das geht mit MLGPOs auch auf Nicht-Domänencomputern. Generell halte ich die Idee, Registry-Editing zu sperren, für überzogen, da man wenig gewinnt und viele Probleme erzeugt.

Wenn Du ein Loginskript nutzt, wo liegt das denn dann? Man sollte bei der Einrichtung von zentral verwalteten Nicht-Domänenclients immer ein Logon- und Startskript auf das Netzwerk weisen einrichten, damit man das jederzeit zenztral ändern kann. Hättest Du das gemacht, hättest Du kein Problem.
joe2017
joe2017 05.11.2015 um 09:50:03 Uhr
Goto Top
Ich hatte gestern noch eine weitere Idee. Habe jedoch nichts dazu gefunden.
Gibt es vielleicht einen Powershell Befehl der ein öffnen mit mit der Angabe des Programms inklusive Immer diese App zum öffnen von .xxx Dateien verwenden durchführt? Vielleicht ist das ein möglicher Ansatz.
joe2017
joe2017 05.11.2015 um 09:56:40 Uhr
Goto Top
Also das Bearbeiten der Registry und CMD ist selbstverständlich nur für nicht Administratoren gesperrt. Administratoren dürfen dies natürlich. Meines Wissens liegen die Zuweisungen der Standardprogramme unter dem Zweig HKEY_CURRENT_USER und nicht unter HKEY_LOCAL_MACHINE da es sich doch hierbei um persönliche Benutzereinstellungen handelt.

Mein Login Script verweist selbstverständlich auf ein Netzlaufwerk. Deshalb bin ich ja auch auf der Suche dies mit einem Powershell Script zu bewerkstelligen. face-wink
DerWoWusste
DerWoWusste 05.11.2015 um 10:00:17 Uhr
Goto Top
Ich denke, nein.
DerWoWusste
DerWoWusste 05.11.2015 um 10:01:46 Uhr
Goto Top
Hast Du auch ein Startskript, welches auf's Netzwerk weist? Dann mach es damit. Das kann natürlich nicht HKCU, aber, wie ich ca. 3 Mal schon erwähnt habe, Du kannst fremde Registryhives mounten und es so lösen.
joe2017
joe2017 05.11.2015 um 10:04:13 Uhr
Goto Top
Dann hätte ich ja doch noch einen Ansatz. Ich muss nur noch herausfinden wie ich Bsp. ein .html Standardmäßig einem beliebigen Browser zuweise.
Danke schon mal. Ich werde das mal Prüfen und hier noch einmal eine Lösung posten. face-wink

Es sei denn du wüsstest schon genau wo sich diese Information verbirgt.
DerWoWusste
DerWoWusste 05.11.2015 um 10:08:15 Uhr
Goto Top
Bei Browsern ist das nicht ganz trivial, jedenfalls nicht mehr. Vielleicht ist es bei 7 noch einfach.
Ich geb Dir mal ein regfile, welches den IE zum Standard macht (ging so unter 2008 R2, was ja 7 gleicht):
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.htm]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.htm\OpenWithProgids]
"htmlfile"=hex(0):  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.htm\UserChoice]
"Progid"="IE.AssocFile.HTM"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\OpenWithProgids]
"htmlfile"=hex(0):  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice]
"Progid"="IE.AssocFile.HTM"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mht]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mht\OpenWithProgids]
"mhtmlfile"=hex(0):  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mht\UserChoice]
"Progid"="IE.AssocFile.MHT"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mhtml]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mhtml\OpenWithProgids]
"mhtmlfile"=hex(0):  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mhtml\UserChoice]
"Progid"="IE.AssocFile.MHT"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.partial]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.partial\UserChoice]
"Progid"="IE.AssocFile.PARTIAL"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.svg]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.svg\UserChoice]
"Progid"="IE.AssocFile.SVG"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.url]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.url\UserChoice]
"Progid"="IE.AssocFile.URL"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.website]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.website\UserChoice]
"Progid"="IE.AssocFile.WEBSITE"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xht]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xht\UserChoice]
"Progid"="IE.AssocFile.XHT"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xhtml]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xhtml\UserChoice]
"Progid"="IE.AssocFile.XHT"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\message/rfc822]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\message/rfc822\UserChoice]
"Progid"="IE.message/rfc822"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\text/html]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\text/html\UserChoice]
"Progid"="IE.text/html"  
 
[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet]
@="IEXPLORE.EXE"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\ftp\UserChoice]
"Progid"="IE.FTP"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"Progid"="IE.HTTP"  
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https]
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice]
"Progid"="IE.HTTPS"  
joe2017
joe2017 12.11.2015 um 11:35:47 Uhr
Goto Top
Hallo Zusammen,

ich habe dies jetzt anders lösen können. Ich habe diverse REGISTRY Einträge welche sich unter HKEY_CURRENT_USER befinden unter HKEY_LOCAL_MACHINE eingefügt um diverse Portable Apps als Applikationen für alle Benutzer zu registrieren. Somit konnte ich diese mit öffnen mit als Standard Programm festlegen.

Danke für die Lösungsansätze.