Wie kann ich Windows 7-Bibliotheken über Gruppenrichtlinien bearbeiten?

11

Ich versuche, Bibliotheksspeicherorte für jeden meiner Benutzer zu den "Bibliotheksspeicherorten" von Windows 7 hinzuzufügen und daraus zu entfernen.

Wie kann ich Speicherorte zu einem Bibliotheksstandort hinzufügen oder daraus entfernen (z. B. c: \ users \ public \ documents aus der Dokumentbibliothek des Benutzers entfernen) , obwohl dies auf dem Desktop einfach möglich ist und Bibliotheken im Explorer einfach deaktiviert werden können?

Ich muss ihre Liste der Bibliotheksstandorte nicht sperren. Ich freue mich, dass sie ihre eigenen Standorte nach Belieben hinzufügen und entfernen können, aber ich möchte die anfänglichen Standorte steuern, die ihnen angeboten werden.

Rob Moir
quelle
Diese Frage und Antwort wurde hinzugefügt, um etwas zu dokumentieren, das ich nur schwer lösen konnte, damit es anderen helfen kann. Ich bin immer noch sehr daran interessiert, von anderen Methoden zu hören, besonders von einfacheren, die ich verpasst habe!
Rob Moir

Antworten:

11

Die Windows 7-Bibliotheken sind eigentlich nur XML-Dateien, die von einigen cleveren Shell-Erweiterungen verwaltet werden. Sie heißen alle [Library_Name] .library-ms (z. B. Pictures.library-ms) und können in jedem Texteditor wie z. B. Notepad durch Ziehen und Ablegen geöffnet werden.

Die Dateien können dann mit jedem normalen Mechanismus veröffentlicht werden - Skripten, Gruppenrichtlinieneinstellungen usw.

Ich habe einige Dinge entdeckt, die Sie beachten sollten:

  • Das XML speichert Informationen über den Benutzer, der die Bibliotheksdatei verwendet

  • Windows aktualisiert / überschreibt das XML automatisch, wenn Sie darauf doppelklicken / es bearbeiten. Dies ist besonders problematisch als Administrator, bei dem ein Doppelklick Ihre Datei für Benutzer unbrauchbar macht

  • Wenn Sie die Datei schreibgeschützt machen, wird die Bibliothek dadurch schreibgeschützt angezeigt, sodass Benutzer nicht speichern können.

Nach einigem Ausprobieren habe ich einige 'leere' Vorlagen unter Verwendung der Standardbibliotheken entwickelt, die ich unten veröffentlichen werde.

Sie können das folgende Handbuch für bekannte Ordner verwenden, um neue Standardspeicherorte anzupassen:

http://msdn.microsoft.com/en-us/library/bb882665.aspx

Und ich habe festgestellt, dass die folgenden Referenzen in Bezug auf die Bibliotheksarchitektur nützlich sind:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd798389(v=vs.85).aspx http://msdn.microsoft.com/en-us/magazine/dd861346.aspx

Im Wesentlichen war es für mich am besten, einfach über die GUI Änderungen vorzunehmen und zu untersuchen, was geändert wurde.

Unterlagen

<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
  <name>@shell32.dll,-34575</name>
  <version>20</version>
  <isLibraryPinned>true</isLibraryPinned>
  <iconReference>imageres.dll,-1002</iconReference>
  <templateInfo>
    <folderType>{7d49d726-3c21-4f05-99aa-fdc2c9474656}</folderType>
  </templateInfo>
  <propertyStore>
    <property name="HasModifiedLocations" type="boolean"><![CDATA[false]]></property>
  </propertyStore>
  <searchConnectorDescriptionList>
    <searchConnectorDescription publisher="Microsoft" product="Windows">
      <description>@shell32.dll,-34577</description>
      <isDefaultSaveLocation>true</isDefaultSaveLocation>
      <isDefaultNonOwnerSaveLocation>true</isDefaultNonOwnerSaveLocation>
      <isSupported>true</isSupported>
      <simpleLocation>
        <url>knownfolder:{FDD39AD0-238F-46AF-ADB4-6C85480369C7}</url>
      </simpleLocation>
    </searchConnectorDescription>
  </searchConnectorDescriptionList>
</libraryDescription>

Musik

<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
  <name>@shell32.dll,-34584</name>
  <version>12</version>
  <isLibraryPinned>true</isLibraryPinned>
  <iconReference>imageres.dll,-1004</iconReference>
  <templateInfo>
    <folderType>{94d6ddcc-4a68-4175-a374-bd584a510b78}</folderType>
  </templateInfo>
  <propertyStore>
    <property name="HasModifiedLocations" type="boolean"><![CDATA[false]]></property>
  </propertyStore>
  <searchConnectorDescriptionList>
    <searchConnectorDescription publisher="Microsoft" product="Windows">
      <description>@shell32.dll,-34577</description>
      <isDefaultSaveLocation>true</isDefaultSaveLocation>
      <isDefaultNonOwnerSaveLocation>true</isDefaultNonOwnerSaveLocation>
      <isSupported>true</isSupported>
      <simpleLocation>
        <url>knownfolder:{4BD8D571-6D19-48D3-BE97-422220080E43}</url>
        </simpleLocation>
    </searchConnectorDescription>
  </searchConnectorDescriptionList>
</libraryDescription>

Bilder

<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
  <name>@shell32.dll,-34595</name>
  <ownerSID></ownerSID>
  <version>6</version>
  <isLibraryPinned>true</isLibraryPinned>
  <iconReference>imageres.dll,-1003</iconReference>
  <templateInfo>
    <folderType>{b3690e58-e961-423b-b687-386ebfd83239}</folderType>
  </templateInfo>
  <propertyStore>
    <property name="HasModifiedLocations" type="boolean"><![CDATA[false]]></property>
  </propertyStore>
  <searchConnectorDescriptionList>
    <searchConnectorDescription publisher="Microsoft" product="Windows">
      <description>@shell32.dll,-34577</description>
      <isDefaultSaveLocation>true</isDefaultSaveLocation>
      <isDefaultNonOwnerSaveLocation>true</isDefaultNonOwnerSaveLocation>
      <isSupported>false</isSupported>
      <simpleLocation>
        <url>knownfolder:{33E28130-4E1E-4676-835A-98395C3BC3BB}</url>
      </simpleLocation>
    </searchConnectorDescription>
  </searchConnectorDescriptionList>
</libraryDescription>

Videos

<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
  <name>@shell32.dll,-34620</name>
  <ownerSID></ownerSID>
  <version>4</version>
  <isLibraryPinned>true</isLibraryPinned>
  <iconReference>imageres.dll,-1005</iconReference>
  <templateInfo>
    <folderType>{5fa96407-7e77-483c-ac93-691d05850de8}</folderType>
  </templateInfo>
  <propertyStore>
    <property name="HasModifiedLocations" type="boolean"><![CDATA[false]]></property>
  </propertyStore>
  <searchConnectorDescriptionList>
    <searchConnectorDescription publisher="Microsoft" product="Windows">
      <description>@shell32.dll,-34577</description>
      <isDefaultSaveLocation>true</isDefaultSaveLocation>
      <isDefaultNonOwnerSaveLocation>true</isDefaultNonOwnerSaveLocation>
      <isSupported>false</isSupported>
      <simpleLocation>
        <url>knownfolder:{18989B1D-99B5-455B-841C-AB7C74E4DDFC}</url>
       </simpleLocation>
    </searchConnectorDescription>
  </searchConnectorDescriptionList>
</libraryDescription>
Dan
quelle
2
Für diejenigen, die sich fragen, wo sie gespeichert sind, finden Sie sie unter%APPDATA%\Microsoft\Windows\Libraries
Agent_9191
Ein nettes Update wäre eine Möglichkeit , eine Bibliothek zu einer Netzwerkfreigabe zu Punkt: \\server\%username%\documents, \\server\%username%\musicusw, während es egal welche Benutzer anmeldet funktioniert.
Joel Coel
7

Die einzige Methode, die ich gefunden habe, ist die Verwendung der Windows 7 Powershell-Erweiterungen für Bibliotheken, die hier von Codeplex erhältlich sind .

Dies kann in einem Anmeldeskript verwendet werden (es muss für jeden Benutzer in seinem Kontext ausgeführt werden) und enthält Methoden zum Hinzufügen und Entfernen von Bibliotheksspeicherorten.

Beispielcode

Import-Module "\\myserver\location\Windows7Library\Windows7Library.psm1"
# Before we can use the new commands from this module, it needs to be imported.

add-LibraryFolder -LibraryPath (Get-KnownFolder "VideosLibrary").path -FolderPath "\\borehamwood\dvds"
# add location to video library
#
Remove-LibraryFolder -LibraryPath (Get-KnownFolder "DocumentsLibrary").path -FolderPath "C:\users\Public\Documents"
Remove-LibraryFolder -LibraryPath (Get-KnownFolder "MusicLibrary").path -FolderPath "C:\users\Public\Music"
# remove locations from both the documents, and then the music library.
Rob Moir
quelle