Come posso manipolare le librerie di Windows 7 tramite Criteri di gruppo?


11

Sto cercando di aggiungere e rimuovere le posizioni della libreria dalle posizioni "Libreria" di Windows 7 per ciascuno dei miei utenti.

Mentre è facile farlo dal desktop ed è facile disabilitare le librerie che appaiono in explorer, come posso aggiungere o rimuovere posizioni da una posizione della biblioteca (es. Rimuovere c: \ utenti \ pubblico \ documenti dalla biblioteca di documenti dell'utente)?

Non ho bisogno di 'bloccare' il loro elenco di posizioni della biblioteca, sono felice che aggiungano e rimuovano le loro posizioni come desiderano, ma voglio controllare le posizioni iniziali che vengono offerte.


Aggiunta questa domanda e risposta per documentare qualcosa che ho trovato difficile da risolvere, in modo che possa aiutare gli altri. Sono ancora molto interessato a conoscere altri metodi, soprattutto quelli più semplici, che mi sono perso!
Rob Moir

Risposte:


11

Le librerie di Windows 7 sono in realtà solo file XML con alcune estensioni della shell intelligenti che le gestiscono. Sono tutti chiamati [Library_Name] .library-ms (ad esempio Pictures.library-ms) e possono essere aperti in qualsiasi editor di testo come il blocco note trascinandoli.

I file possono quindi essere pubblicati utilizzando qualsiasi meccanismo normale: script, preferenze di criteri di gruppo ecc.

Ci sono un paio di cose che ho scoperto, di cui dovresti essere a conoscenza:

  • L'XML memorizza le informazioni sull'utente che sta utilizzando il file di libreria

  • Windows aggiornerà / sovrascriverà automaticamente l'XML quando si fa doppio clic su di esso / lo manipola. Ciò è particolarmente problematico come amministratore in cui un doppio clic renderà il file inutilizzabile per gli utenti

  • Se si rende il file di sola lettura, ciò avrà l'effetto di far apparire la libreria di sola lettura, impedendo quindi agli utenti di salvare.

Dopo alcuni tentativi ed errori, ho sviluppato alcuni modelli "vuoti" usando le Librerie predefinite che posterò di seguito.

È possibile utilizzare la seguente guida alle cartelle note per personalizzare i nuovi percorsi predefiniti:

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

E ho trovato i seguenti riferimenti utili per quanto riguarda l'architettura della biblioteca:

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

In sostanza, tuttavia, il modo in cui ho trovato di meglio sperimentare era semplicemente apportare modifiche utilizzando la GUI ed esaminare ciò che è cambiato.

Documenti

<?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>

Musica

<?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>

Immagini

<?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>

video

<?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>

2
Per coloro che si chiedono dove sono memorizzati, possono essere trovati in%APPDATA%\Microsoft\Windows\Libraries
Agent_9191

Un aggiornamento bello sarebbe un modo per puntare una libreria per una condivisione di rete: \\server\%username%\documents, \\server\%username%\music, ecc, mentre funzionerà indipendentemente da quale utente si collega.
Joel Coel

7

L'unico metodo che ho trovato è usare le estensioni Powershell di Windows 7 per Librerie, disponibili da codeplex qui .

Può essere utilizzato in uno script di accesso (deve essere eseguito per ciascun utente, nel suo contesto) e include metodi per aggiungere e rimuovere le posizioni delle librerie.

Codice di esempio

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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.