Discussion:
"Shell Folders" vs. "User Shell Folders"
(zu alt für eine Antwort)
Michael Heydekamp
2004-05-17 09:40:00 UTC
Permalink
Hi,

hat hier jemand Plan von dem im Subject genannten Thema?

Ich habe hier per Richtlinie alle Verzeichnisse, die in User Shell
Folders aufgefuehrt sind, auf Serververzeichnisse umgebogen (ausser
Cookies, History, Cache und so), also praktisch die "Ordnerumleitung"
erweitert, weil hier permanent alle User auf wechselnden - und teilweise
gleichzeitig auf mehreren - Maschinen angemeldet sind und Roaming schon
von daher nicht sinnvoll ist (ich halte es davon ab generell nicht fuer
sinnvoll, alle Verzeichnisse beim Login/Logout hin und her zu kopieren).

Dort verwende ich selbstverstaendlich Umgebungsvariablen wie
%LOGONSERVER% und %USERNAME%, ist ja schliesslich auch ein REG_EXPAND_SZ
und genau dafuer gedacht.

Nun scheint es irgendeinen Mechanismus zu geben, der dafuer sorgt, dass
ein Teil (warum nur ein Teil?) der Eintraege in "User Shell Folders"
nach "Shell Folders" automatisch uebernommen wird. Nur werden dabei
nicht alle Variablen expandiert, ich sehe dort Eintraege, bei denen
%LOGONSERVER% expandiert wurde, %USERNAME% im selben Eintrag aber nicht.
In anderen wiederum wurde beides expandiert.

Nun ist aber "Shell Folders" ein REG_SZ und kann daher eigentlich mit
Variablen nix anfangen - nehme ich mal an. Ich weiss nicht, ob und wie
sich diese nicht expandierten Eintraege in "Shell Folders" negativ
auswirken koennen, aber ich will kein Risiko eingehen. Soll ja
Programme geben, die in solche Keys reingucken...

Alle diese tollen Tweak-Seiten sprechen immer davon, einfach beide
Eintraege zu aendern, aber niemand scheint die echten Zusammenhaenge
wirklich zu kennen.

Einen interessante Seite habe ich dazu gefunden: Auf
http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx
erlaeutert jemand (offenbar ein MS-Entwickler?), dass man "Shell
Folders" eigentlich vergessen sollte und dieser Key quasi nur
versehentlich und aus historischen Gruenden existiert.

Nur scheint sich MS selbst nicht daran zu halten, denn ich finde in
"Shell Folders" Eintraege, die in "User Shell Folders" gar nicht
existieren (z.B. "Administrative Tools", "CD Burning"), so ganz tot
scheint dieser Key also wohl doch nicht zu sein...?

Ein moeglicher Workaround waere, die Eintraege, die man in "User Shell
Folders" vornimmt, einfach gleichzeitig auch in "Shell Folders"
vorzunehmen und dort ebenfalls mit REG_EXPAND_SZ zu arbeiten. Nur weiss
ich nicht, ob man einfach so den Typ aendern kann/darf, und bei einem
Test hat sich herausgestellt, dass Windows auch dann wieder ein
Eigenleben entwickelt und an den Eintraegen rumfummelt - nur ist es
jetzt wenigstens so, dass die Eintraege, die es wieder in einen REG_SZ
geaendert hat, korrekt und vollstaendig expandiert sind. Und die, bei
denen es den Typ nicht geaendert hat, sind nach wie vor eine 1:1-Kopie
des Eintrags in "User Shell Folders" - immerhin.

Na ja, wenn jemand was wirklich Handfestes dazu wuesste, wuerd's mich
freuen. Interessant waere natuerlich auch, wenn man alle diese
Verzeichnisse mit einer echten Policy umleiten koennte statt die
Registry zu patchen, aber das geht vermutlich nicht?

Ach so, falls es wichtig ist: Win2K SP4 Server und WinXP Pro SP1
Workstations.


Michael
Mark Heitbrink [MVP]
2004-05-17 10:32:28 UTC
Permalink
Hi,
Post by Michael Heydekamp
Interessant waere natuerlich auch, wenn man alle diese
Verzeichnisse mit einer echten Policy umleiten koennte
statt die Registry zu patchen, aber das geht vermutlich nicht?
Nur mal hier schon mal ein kleiner Einwand.
Eine "echte Policy" patched die Registry. Nichts anderes.
Deine ADM Templates und "echten Policys" sind nichts anderes
als Registry Einträge.

Für eine integrierte Ordnerunmleitung, wie sie für Anwendungsdaten
Eigene Dateien und Bilder exitiert, die nicht nur die Pfade
verändert, sondern auf vorhandene Dateien verschiebt fehlt leider
die richtige CSE (client Side Extension) die MS leider nicht
vollkonfigurierbar implementiert hat.

Tschö
Mark
--
Mark Heitbrink - MVP Windows Server
Homepage: www.gruppenrichtlinien.de
W2K FAQ : http://w2k-faq.ebend.de
PM: ***@Homepage, Versende-Adresse wird nicht abgerufen.
Michael Heydekamp
2004-05-17 11:25:00 UTC
Permalink
Post by Mark Heitbrink [MVP]
Post by Michael Heydekamp
Interessant waere natuerlich auch, wenn man alle diese
Verzeichnisse mit einer echten Policy umleiten koennte
statt die Registry zu patchen, aber das geht vermutlich nicht?
Nur mal hier schon mal ein kleiner Einwand.
Eine "echte Policy" patched die Registry. Nichts anderes.
Deine ADM Templates und "echten Policys" sind nichts anderes
als Registry Einträge.
Hmm, aber... Erstmal vorweg: Ich komme von NetWare 3.12 und bin völlig
neu in diesem GPO-Business. Kann also gut sein, daß mir noch einige
Basics fehlen.

Zu den "echten" Policies: Ich habe mich natürlich umgesehen (u.a. bei MS
selbst) und allenthalben gelesen, daß es einen wesentlichen Unterschied
gibt zwischen eben diesen "echten" Policies (die in zwei Zweige
geschrieben werden, in denen irgendwo "Policies" vorkommt, keine Lust,
jetzt die vollständige Bezeichnung rauszusuchen) und Richtlinien, die
direkt Registry-Einträge patchen und die per Default auch ausgeblendet
und nach dem Einblenden rot dargestellt werden.

Der Unterschied ist IIRC der, daß echte Policies (beim Logout?) komplett
bereinigt werden und es daher keine "Policy-Leichen" geben kann.

Gepatchte Registry-Einträge (wie es wohl unter NT4 ausschließlich üblich
war) haben den Nachteil, daß auch nach Entfernen einer Richtlinie diese
nach wie vor aktiv ist oder zumindest sein kann (wenn man z.B. vergessen
hat, sie vorher auf "Nicht konfiguriert" zu setzen). Ich habe das schon
am eigenen Leib erfahren, als ich mich mal bei einem Registry-Pfad
vertippt hatte und die Richtlinie mir daher einen bis dato nicht
existierenden Key erstellt hat. Selbst nach Korrektur des Fehlers in
der .adm wurde immer noch dieser falsche Key erstellt. Ich mußte erst
den fehlerhaften Zustand wieder herstellen, die Richtlinie deaktivieren
(bzw. nicht konfigurieren) und erst dann den fehlerhaften Eintrag
korrigieren bzw. entfernen.

Und wenn ich mir in den ADMs die "echten" Policy-Einträge ansehe, wird
da keinesfalls direkt der dazu korrespondierende Registry-Key gepatcht,
zumindest ist das im Template so nicht erkennbar.

Soweit mal das, was ich dazu verstanden habe und sehen kann. Wenn das
falsch ist, bitte korrigieren und MS informieren. ;)
Post by Mark Heitbrink [MVP]
Für eine integrierte Ordnerunmleitung, wie sie für Anwendungsdaten
Eigene Dateien und Bilder exitiert, die nicht nur die Pfade verändert,
sondern auf vorhandene Dateien verschiebt fehlt leider die richtige
CSE (client Side Extension) die MS leider nicht vollkonfigurierbar
implementiert hat.
Ok, dachte ich mir schon. Zu den eigentlichen Fragen hast Du aber nicht
zufällig noch was auf Lager?


Michael
Mark Heitbrink [MVP]
2004-05-17 12:34:39 UTC
Permalink
Hi,
daß es einen wesentlichen Unterschied gibt zwischen eben diesen
"echten" Policies (die in zwei Zweige geschrieben werden,
in denen irgendwo "Policies" vorkommt,
Ach so, diese Untescheidung meinst du ...
http://www.gruppenrichtlinien.de/Grundlagen/Vererbungen_Hierarchien.htm#NT4vsW2K
zusuchen) und Richtlinien, die direkt Registry-Einträge patchen und
die per Default auch ausgeblendet und nach dem Einblenden rot
dargestellt werden.
Das sind "Systemrichtlinien" nach "altem" Schema, die beim Löschen
der Richtlinie nicht ebenfalls direkt gelöscht werden, sondern
die Registry dauerhaft "tattoen"
Aber schau dir den Link an ...
Der Unterschied ist IIRC der, daß echte Policies (beim Logout?) komplett
bereinigt werden und es daher keine "Policy-Leichen" geben kann.
Nein. Siehe Link.
Gepatchte Registry-Einträge (wie es wohl unter NT4 ausschließlich üblich
war) haben den Nachteil, daß auch nach Entfernen einer Richtlinie diese
nach wie vor aktiv ist oder zumindest sein kann (wenn man z.B. vergessen
hat, sie vorher auf "Nicht konfiguriert" zu setzen).
Darauf läuft es hinaus.
Ok, dachte ich mir schon. Zu den eigentlichen Fragen hast Du aber
nicht zufällig noch was auf Lager?
Wieso? Habe ich doch beantwortet, sogar mit Template.

Ich ignoriere die Einträge in Shell Folders und komme damit
gut zurecht ...

Tschö
Mark
--
Mark Heitbrink - MVP Windows Server
Homepage: www.gruppenrichtlinien.de
W2K FAQ : http://w2k-faq.ebend.de
PM: ***@Homepage, Versende-Adresse wird nicht abgerufen.
Michael Heydekamp
2004-05-17 13:53:00 UTC
Permalink
Post by Mark Heitbrink [MVP]
daß es einen wesentlichen Unterschied gibt zwischen eben diesen
"echten" Policies (die in zwei Zweige geschrieben werden, in denen
irgendwo "Policies" vorkommt,
Ach so, diese Untescheidung meinst du ...
http://www.gruppenrichtlinien.de/Grundlagen/Vererbungen_Hierarchien.htm#NT4vsW2K
Jup, genau das meine ich.
Post by Mark Heitbrink [MVP]
Der Unterschied ist IIRC der, daß echte Policies (beim Logout?)
komplett bereinigt werden und es daher keine "Policy-Leichen" geben
kann.
Nein. Siehe Link.
Wie "Nein"? Genau das steht doch da (es findet kein "Tattooing" statt).
Bitte das Fragezeichen hinter "beim Logout" beachten, das war keine
sichere Aussage und *das* ist offenbar nicht der Fall, richtig. Aber
zumindest wird beim Entfernen der Richtlinie auch die Registry
upgedatet.
Post by Mark Heitbrink [MVP]
Ok, dachte ich mir schon. Zu den eigentlichen Fragen hast Du aber
nicht zufällig noch was auf Lager?
Wieso? Habe ich doch beantwortet,
Hmm? Ich fasse nochmal die Fragen aus dem Ausgangsposting zusammen:

1. Warum wird nur ein Teil der Einträge aus "User Shell Folders" nach
"Shell Folders" übernommen und welcher Mechanismus ist dafür
verantwortlich bzw. ist das überhaupt bekannt?

2. Warum werden bei diesem Schreiben nach "Shell Folders" manche
Einträge nur teilweise, andere aber wieder komplett expandiert?

3. Welche negativen Folgen kann dieses nicht vollständige Expandieren
haben?

4. Warum nimmt Windows manche Einträge in "Shell Folders" vor, nicht
aber in "User Shell Folders"?

5. Welche negativen Folgen kann das Fehlen dieser Einträge in "User
Shell Folders" haben und sollte man diese auch in "User Shell
Folders" eintragen?

6. Kann/sollte man den Datentyp in "Shell Folders" von REG_SZ auf
REG_EXPAND_SZ ändern, wenn man ggf. die Einträge aus "User Shell
Folders" per Policy dorthin übernimmt oder kann das negative Folgen
haben?

7. Welche Zusammenhänge und Abhängigkeiten zwischen "User Shell Folders"
und "Shell Folders" gibt es noch?

Dazu habe ich bisher keine Antworten gesehen. Kann natürlich gut sein,
daß es darauf auch keine gibt, aber auch das hast Du so klar bisher
nicht gesagt. ;)
Post by Mark Heitbrink [MVP]
sogar mit Template.
Template? Das hattest Du doch im Zusammenhang mit %ALLUSERSPROFILE%
geschickt (und beantwortete zudem eine Frage, die ich nicht gestellt und
eh bereits gelöst hatte, es ging ja nur um die Variable), das hatte aber
mit diesem Thread und seinen Fragen nix zu tun.
Post by Mark Heitbrink [MVP]
Ich ignoriere die Einträge in Shell Folders und komme damit gut
zurecht ...
Es ist nur die Frage, ob Windows selbst und alle übrigen Programme sie
auch ignorieren. Ich meine, es muß ja einen Grund haben, daß, obwohl
"Shell Folders" angeblich schon seit dem Erscheinen von Win95 obsolet
ist, wie in dem angegebenen Link zu lesen ist, auch im Jahre 2004 selbst
MS-Programme bzw. WinXP selbst dort immer noch Einträge vornehmen. Daß
das nur aus Jux und Dollerei passiert, kann ich mir nicht vorstellen
(aber auch nicht ausschließen ;)).


Michael
Mark Heitbrink [MVP]
2004-05-17 14:18:56 UTC
Permalink
Hi,
Post by Mark Heitbrink [MVP]
Post by Michael Heydekamp
Der Unterschied ist IIRC der, daß echte Policies (beim Logout?)
Nein. Siehe Link.
Wie "Nein"? [...] Bitte das Fragezeichen hinter "beim
Logout" beachten, [...]
Es geht nicht um den Logout, sondern um das Verhalten beim
Löschen der Richtlinie.
W2K konforme Richtlinie können gelöscht werden ohne daß Rückstände
in der lokalen Registry eines Clients (oder USers) zurückbleiben,
Systemrichtlinien (alte ntconfig.pol) eben nicht, dort müssen die
Einstellungen erst zurückgesetzt werden und dann erst könnte man
die Richtlinie löschen. Deswegen das "Nein"
1. Warum wird nur ein Teil der Einträge aus "User Shell Folders" nach
"Shell Folders" übernommen und welcher Mechanismus ist dafür
verantwortlich bzw. ist das überhaupt bekannt?
Gehört in die tiefen des Systems, die keiner mehr nachvollziehen kann.
Jedenfalls keiner, der über Google wirklich zu identifizieren ist.

Jedenfall hat keine Ordnerumleitung die du unter "Shell Folders"
setzt einen Effekt auf die Ordner im Profil. Die Umleitungen
funktionieren nur unter "User Shell Folders"
Dazu habe ich bisher keine Antworten gesehen. Kann natürlich gut sein,
daß es darauf auch keine gibt, aber auch das hast Du so klar bisher
nicht gesagt. ;)
Wie gesagt ich lebe schon verdammt lange sehr gut damit, daß ich
die Werte unter Shell Folders ignoriere.
Aber das sich irgendein scheddriger Programmierer trotzdem nicht
dran hält, die Garantie kann dir keiner geben.
[...] Auch im Jahre 2004 selbst MS-Programme bzw. WinXP selbst
dort immer noch Einträge vornehmen. Daß das nur aus Jux und
Dollerei passiert, kann ich mir nicht vorstellen (aber auch nicht
ausschließen ;)).
Du kannst den Key ja mal spasseshalber löschen, beim nächsten
Anmelden ist er wieder da. Hat aber keinen Effekt auf die
Ordner im Profil. Ich würde mir da berhaupt keine weiteren
Gedanken drum machen.

Tschö
Mark
--
Mark Heitbrink - MVP Windows Server
Homepage: www.gruppenrichtlinien.de
W2K FAQ : http://w2k-faq.ebend.de
PM: ***@Homepage, Versende-Adresse wird nicht abgerufen.
Denis Jedig
2004-05-30 15:38:41 UTC
Permalink
Post by Michael Heydekamp
1. Warum wird nur ein Teil der Einträge aus "User Shell Folders" nach
"Shell Folders" übernommen und welcher Mechanismus ist dafür
verantwortlich bzw. ist das überhaupt bekannt?
Das hast du doch selbst mit dem Link auf
http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx beantwortet
Post by Michael Heydekamp
2. Warum werden bei diesem Schreiben nach "Shell Folders" manche
Einträge nur teilweise, andere aber wieder komplett expandiert?
Auch das ist in dem Artikel beantwortet
Post by Michael Heydekamp
3. Welche negativen Folgen kann dieses nicht vollständige Expandieren
haben?
Und das kann man sich nach der Lektüre denken
Post by Michael Heydekamp
4. Warum nimmt Windows manche Einträge in "Shell Folders" vor, nicht
aber in "User Shell Folders"?
Ebenso wie das...
Post by Michael Heydekamp
5. Welche negativen Folgen kann das Fehlen dieser Einträge in "User
Shell Folders" haben und sollte man diese auch in "User Shell
Folders" eintragen?
Und das.
Post by Michael Heydekamp
6. Kann/sollte man den Datentyp in "Shell Folders" von REG_SZ auf
REG_EXPAND_SZ ändern, wenn man ggf. die Einträge aus "User Shell
Folders" per Policy dorthin übernimmt oder kann das negative Folgen
haben?
Das allerdins nicht ohne weiteres. Ich würde sagen, Versuch macht Kluch.
Wenn ich das richtig überblicke, ist der Datentyp REG_EXPAND_SZ rein
informativ, man sollte also in jedem Fall noch ExpandEnvironmentalStrings
aufrufen, um es aufzulösen:
http://msdn.microsoft.com/library/en-us/apcompat/apcompat/call_expandenvironmentstrings_before_reading_reg_expand_sz.asp
(Warum steht dies unter "Compatibility"?)
Damit behandelt jede Anwendung REG_EXPAND_SZ also unterschiedlich. Und wer
aus "Shell Folders" liest, wird voraussichtlich doch auch darauf
verzichten, ExpandEnvironmentalStrings aufzurufen.
Post by Michael Heydekamp
7. Welche Zusammenhänge und Abhängigkeiten zwischen "User Shell Folders"
und "Shell Folders" gibt es noch?
Unklar. Der einzige Zusammenhang, der deutlich wird, ist, dass man beide
nicht händisch anfassen sollte und besser die API-Funktionen
SHGetFolderLocation[*] und SHGetFolderPath benutzen sollte. Ich habe keine
Set-Gegenstücke dazu finden können, sollte es etwa keine geben?
Post by Michael Heydekamp
Post by Mark Heitbrink [MVP]
Ich ignoriere die Einträge in Shell Folders und komme damit gut
zurecht ...
Es ist nur die Frage, ob Windows selbst und alle übrigen Programme sie
auch ignorieren.
Da die Abhandlung immer über SHGetFolderLocation und SHGetFolderPath
erfolgt, ist diese Frage wohl auf die Frage nach der Implementation dieser
beiden Funktionen beschränkbar. Es gab doch mal den Windows-Code, der
irgendwo durch die Tauschbörsen spukte... :-)

[*]
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/functions/shgetfolderlocation.asp
--
Denis Jedig
syneticon GbR
Michael Heydekamp
2004-06-27 22:06:00 UTC
Permalink
Post by Denis Jedig
Post by Michael Heydekamp
1. Warum wird nur ein Teil der Einträge aus "User Shell Folders"
nach "Shell Folders" übernommen und welcher Mechanismus ist dafür
verantwortlich bzw. ist das überhaupt bekannt?
Das hast du doch selbst mit dem Link auf
http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx beantwortet
Sehe ich nicht.

Da steht zwar, daß "Shell Folders" obsolet ist, nicht mehr benutzt
werden sollte und welche Historie dieser Eintrag hat.

Da steht aber nicht: "Wenn Eintrag #1 in 'User Shell Folders' geändert
wird, wird der entsprechende Eintrag in 'Shell Folders' automatisch
aktualisiert. Bei Eintrag #2 passiert das jedoch nicht. Der Grund ist,
daß das so sein muß, weil bla blubb usw. ..."

Nichts dergleichen.
Post by Denis Jedig
Post by Michael Heydekamp
2. Warum werden bei diesem Schreiben nach "Shell Folders" manche
Einträge nur teilweise, andere aber wieder komplett expandiert?
Auch das ist in dem Artikel beantwortet
Sehe ich auch nicht. Zitat?
Post by Denis Jedig
Post by Michael Heydekamp
3. Welche negativen Folgen kann dieses nicht vollständige
Expandieren haben?
Und das kann man sich nach der Lektüre denken
Ich kann mir vieles denken, aber gesichertes Wissen ist mir lieber.
Falls Du das hast, rück's doch mal raus bitte.


Michael
Denis Jedig
2004-07-07 13:04:07 UTC
Permalink
Post by Michael Heydekamp
Ich kann mir vieles denken, aber gesichertes Wissen ist mir lieber.
Falls Du das hast, rück's doch mal raus bitte.
In Arbeit. Es läuft als Support Request. Kann erfahrungsgemäß einige Wochen
dauern, stay tuned...
--
Denis Jedig
syneticon GbR
Michael Heydekamp
2004-07-07 16:14:00 UTC
Permalink
Post by Denis Jedig
Post by Michael Heydekamp
Ich kann mir vieles denken, aber gesichertes Wissen ist mir lieber.
Falls Du das hast, rück's doch mal raus bitte.
In Arbeit. Es läuft als Support Request.
Oh, well...
Post by Denis Jedig
Kann erfahrungsgemäß einige Wochen dauern, stay tuned...
Ok und danke.


Michael
Michael Heydekamp
2004-10-25 17:02:00 UTC
Permalink
Post by Denis Jedig
Post by Michael Heydekamp
Ich kann mir vieles denken, aber gesichertes Wissen ist mir lieber.
Falls Du das hast, rück's doch mal raus bitte.
In Arbeit. Es läuft als Support Request. Kann erfahrungsgemäß einige
Wochen dauern, stay tuned...
Da "einige Wochen" schon rum sind -- wie sieht's aus?


Michael

Loading...