Custom libraries in Windows 7 - IT-professional Community Blog
Zoeken binnen blogs.microsoft.nl

IT-professional Community Blog

Custom libraries in Windows 7

Aug 18 2011, 10:41 PM

Eerder deze week verzocht een klant mij om custom libraries te implementeren
binnen hun Windows 7 omgeving.
Hier is echter geen group policy voor beschikbaar en kan de invullen van zo'n
verzoek wat creativiteit met zich mee brengen.

Los van de oplossing op dit verzoek, wil ik even stil staan bij het concept van
de “libraries”… wat is een library en wat is het doel ervan?

Wat zijn libraries en wat is hun doel?
In Windows 7 heeft Microsoft de libraries geïntroduceerd.
In eerdere versies van Windows werden bestanden door gebruikers opgeslagen
op verschillende locaties, soms zelfs op zo’n manier dat de gebruikers zelf moeite
hadden met het terug vinden van bestanden.
De libraries geven gebruikers de mogelijkheid om meerdere folders onder
één library te voegen en hiermee heeft Microsoft een oplossing geïntroduceerd
tegen dit euvel.
De bestanden kunnen dus nog steeds op meerdere locaties staan, echter geeft
de library de mogelijkheid hier snel een zoek opdracht op uit te kunnen voeren.
Dit komt namelijk omdat de mappen die onder de libraries vallen automatisch
geïndexeerd worden waardoor zoek opdrachten snel beantwoord kunnen worden.
Voor de duidelijkheid, in de libraries zelf worden geen bestanden opgeslagen.
Ze bieden enkel één punt van toegang naar de gegevens die staan in de mappen
die toegevoegd worden aan de libraries.

Indien u nog geen ervaring heeft gehad met de libraries, ze zijn te vinden in
de linker kolom binnen Windows Verkennner.
libraries

Note: Ik gebruik in onderstaande voorbeelden lokale directories, echter kunnen
ook locaties op het netwerk gebruikt worden hoewel deze niet automatisch
geïndexeerd zullen worden.
   
   
Als gebruiker is het eenvoudig een “eigen” library te definieren door middel
van de gebruikersinterface.
Klik met de rechtermuis ergens in het witte deel van de rechter kolom
binnen de libraries, ga naar New en klik op
Library.
libraries1


Hierna kan de naam opgegeven worden voor de aan te maken library.
Vervolgens kan de library bewerkt worden door er met de rechtermuis
knop op te klikken en Properties te selecteren.

In het verschenen venster kunnen door middel van de
knop Include a folder… locaties toegevoegd worden aan de library, in mijn
situatie de locaties van mijn Software.
Onder Optimize this library for: kan het gedrag van deze library bepaald
worden; de opties spreken voor zichzelf.
libraries2

Het resultaat is in de linker kolom te zien.
libraries3

Ook is het mogelijk in Windows Verkenner de directory op te zoeken, er met
de rechtermuis knop op te klikken, en via Include in library de gewenste library
te selecteren.
libraries4



Natuurlijk is het binnen een bedrijf niet wenselijk dat alle gebruikers
binnen een organisatie dit zelf moeten doen, vaak is het gewenst
standaard instellingen van het bedrijf automatisch door te voeren.
Dit kan op meerdere manieren en voor het gemak heb ik drie van
deze opties onderstaand uitgewerkt.

Met een commando – SHLIB
Hiervoor kan gebruik gemaakt worden van de tool SHLIB, een onderdeel
van het Windows 7 SDK.



Maak een nieuwe library aan:
shlib create "%userprofile%\AppData\Roaming\Microsoft\Windows\
Libraries\Software.library-ms"


Voeg directories toe aan de library:
shlib add "%userprofile%\AppData\Roaming\Microsoft\Windows\
Libraries\Software.library-ms" "C:\ISOS\Microsoft"
shlib add "%userprofile%\AppData\Roaming\Microsoft\Windows\
Libraries\Software.library-ms" "C:\Installs\Citrix"


Zet de default locatie waar bestanden opgeslagen moeten worden
indien ze naar de library gekopieerd worden:
shlib setsaveloc "%userprofile%\AppData\Roaming\Microsoft\Windows\
Libraries\Software.library-ms" "C:\ISOS\Microsoft"


Met een commando – SLUTIL
Hiervoor kan gebruik gemaakt worden van de tool
SLUTIL x86 of SLUTIL x64.

Maak een nieuwe library aan:
slutil create Software

Voeg directories toe aan de library:
slutil addfolder Software “C:\ISOS\Microsoft”
slutil addfolder Software “C:\Installs\Citrix”


Zet de default locatie waar bestanden opgeslagen moeten worden
indien ze naar de library gekopiëerd worden:
slutil savefolder Software “C:\ISOS\Microsoft”


Met PowerShell
Hiervoor kan gebruik gemaakt worden van de
Windows7Library voor PowerShell.

Maak een nieuwe library aan:
Add-Library –Name “Software”

Voeg directories toe aan de library:
Add-LibraryFolder –LibraryName Software –FolderPath “C:\ISOS\Microsoft
Add-LibraryFolder –LibraryName Software –FolderPath “C:\Installs\Citrix"


Zet de default locatie waar bestanden opgeslagen moeten worden indien
ze naar de library gekopieerd worden:
Set-LibraryFolder –LibraryName Software –DefaultSaveFolder “C:\ISOS\Microsoft"


Met een custom Library bestand
Dit vergt echter enige kennis van scripting. Voor meer informatie kan
er gebruik gemaakt worden van
Microsoft’s Library Description Schema    
   
Ga naar C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Libraries
Selecteer de Library en sleep deze naar Notepad, waarin de
gewenste aanpassingen doorgevoerd kunnen worden.
Om een voorbeeld te geven, mijn Software library ziet er in Notepad als volgt uit:

<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="
http://schemas.microsoft.com/windows/2009/library">
  <ownerSID>S-1-5-21-1375846046-1974373900-2408739959-1001</ownerSID>
  <version>5</version>
  <isLibraryPinned>true</isLibraryPinned>
  <templateInfo>
    <folderType>{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}</folderType>
  </templateInfo>
  <propertyStore>
    <property name="HasModifiedLocations" type="boolean"><![CDATA[true]]></property>
  </propertyStore>
  <searchConnectorDescriptionList>
    <searchConnectorDescription>
      <isDefaultSaveLocation>true</isDefaultSaveLocation>
      <isSupported>true</isSupported>
      <simpleLocation>
        <url>C:\ISOS\Microsoft</url>
<serialized>MBAAAEAFCAAAAAAAADAAAAAAAY0gAAQBQAAAAY8lsAC4dxcAGfJLgAeXMHgxXyCIg3FzBAAA
AAAAAAAABAAAAAAAAAAAAAAAAAAAAYVAUAwHQB+TQDi66kGEiiNCAsCMw0ZGA8yQ6wFAAAAAAAAAAA
AAAAAAAAAAAAAAKBQMAAAAAAgE/olnQAQST90UAAgNAgAAEAw7+KxPV5pE/olnqAAAA0t6BAAAAQAAAA
AAAAAAAAAAAAAAAAQSAMFAPBwUAAAAUAQ3AEDAAAAAAIxPZ5JEA0USDJ1TT5XMAAAQAgAAEAw7+KxP
Z5pE/klnqAAAA4t6BAAAAQAAAAAAAAAAAAAAAAAAAAQTAkGAjBgcA8GAzBwbAYGA0BAAAgBAFCQAA4AAv
7LAAQBAfAF4PBNIqrTaQIK2IAwKwATnZAwLDpDXAAAAAAAAAAAAAAAAAAAAAAAAAoEAxAAAAAAAS8jWe
CBAJN1TTBAA2AACAQAAv7rE/UlnS8jWeqCAAAQ3qHAAAAABAAAAAAAAAAAAAAAAAAAAJBwUA8EATBAAA
QBAAAAGAAAAABAAAwBAAAQAAAAAcAAAA0CAAAAAAAAA/AAAAEBAAAwAAAAApSc6ACBAAAAADpDXJN1
TTxVTpNmcvN3bmRHAAgCAAAQCAAAocAAAAEzUQNl4KilR8yEODtL/TMpJY2mzAAAAAAAAAAAYAAAADAAA
giFAAAAAAAAAqVmZmd3b1RXZyNndhl2bA4ufTxIR+dJS1G21pTm5PMQsN2Uu4OM4RErKA0huGaO9u73UMS
kfXiUthdd6kZ+DDEbjNlLuDDeExqCAdorhmTPAAAAA</serialized>
      </simpleLocation>
    </searchConnectorDescription>
    <searchConnectorDescription>
      <isSupported>true</isSupported>
      <simpleLocation>
        <url>C:\Installs\Citrix</url>
<serialized>MBAAAEAFCAAAAAAAADAAAAAAAY0gAAQBQAAAAw5Y+H24dxcAcOm/hNeXMHAnj5fYj3FzBAA
AAAAAAAAABAAAAAAAAAAAAAAAAAAAAYWAUAwHQB+TQDi66kGEiiNCAsCMw0ZGA8yQ6wFAAAAAAAAAA
AAAAAAAAAAAAAAAWBQMAAAAAAgE/IcoQAQSuNHdhxGbzBAA+AACAQAAv7rE/IcoS8jwhqCAAAwIEAAAAA
ghEAAAAAAAAAAAAAAAAAAAJBgbAMHA0BQYAwGAsBwcAAAAYAQ4AEDAAAAAAIxPEHKEAMUa0JXa4BAA6A
ACAQAAv7rE/QcoS8DxhqCAAAA/rHAAAAgAAAAAAAAAAAAAAAAAAAAADBQaAQHAyBQaAgHAAAgFAEJACA
gDA8uvBAAFA8BUg/E0gouOpBhoYjAArADMdmBAvMkOcBAAAAAAAAAAAAAAAAAAAAAAAAgVAEDAAAAAAIx
PCHKEAkkbzRXYsx2cAAgPAgAAEAw7+KxPCHqE/IcoqAAAAMCBAAAAAYIBAAAAAAAAAAAAAAAAAAQSA4GAz
BAdAEGAsBAbAMHAAAAGAAAAWAAAAEEAAAAHAAAABAAAAwBAAAQLAAAAAAAAAAEAAAQEAAAADAAAAk
KxpDIEAAAAAMkOclkbzRXYsx2ccNUa0JXa4BAAoAAAAkAAAAKHAAAAxMFUTJuiYZEvMhzQ7y/ETaCmt5MAAA
AAAAAAAAGAAAwAAAAoYBAAAAAAAAgalZmZ39Wd0VmczZXYp9GAu73UMSkfXiUthdd6kZ+DDQbjNlLuDDeE
xqCAdorhmTv7+NFjE53lIVbYXnOZm/wA02YT5i7wgHRsqAQH6ao50DAAAAA</serialized>
      </simpleLocation>
    </searchConnectorDescription>
  </searchConnectorDescriptionList>
</libraryDescription>

Commentaar:

Ben Meints zei:

Erg goed artikel Jeff. Ik ben er mee aan de slag gegaan, en heb zelfs nog een kleine aanvulling.

Omdat ik het aantal icoontjes nogal beperkt vond, heb ik gekeken hoe dit aan te vullen is.

Als je de XML file van een library aanpast, kun je onder de regel:

<isLibraryPinned>true</isLibraryPinned>

een regel toevoegen met de volgende inhoud:

<iconReference>shell32.dll,96</iconReference>

Uiteraard kun je hier shell32.dll vervangen door je eigen dll of exe met icons.

# August 20, 2011 11:44 AM

Jeff Wouters zei:

Dank je, Ben.

Zeker een goede aanvulling op het artikel!

# August 20, 2011 11:49 AM

Howto create and deploy custom libraries in Windows 7 | Jeff Wouters's Blog zei:

PingBack vanaf  Howto create and deploy custom libraries in Windows 7 | Jeff Wouters&#039;s Blog

# August 26, 2011 9:03 PM

Henk zei:

Is het mogelijk om libraries te maken binnen libraries?

Bijvoorbeeld: een library "familie foto's" als sub-library onder "Pictures".

# December 19, 2011 3:48 PM

Jeff Wouters zei:

Hoi Henk,

Helaas is dit niet mogelijk. Wat wil je ermee bereiken? Misschien kunnen we dan een leuke workaround bedenken?

Jeff.

# December 19, 2011 8:36 PM

Henk zei:

Hoi Jeff,

ik ben mij aan het oriënteren op de mogelijkheden voor het beheren van mijn groeiende foto verzameling.

Daar is heel veel software voor, maar die is vaak onduidelijk over de backup van de informatie die je toevoegt. Dus wil ik graag weten wat de mogelijkheden zijn van het aloude file systeem met Windows 7 en opvolgers.

De basis van een overzichtelijke foto verzameling blijft voor mij de folder structuur. Maar dan wil je vervolgens ook dwarsverbanden aangeven (collecties/albums). Dat kan bijvoorbeeld met tags in de foto's. Maar het zou ook kunnen met de Libraries van Windows 7. Het voordeel daarvan zou kunnen zijn dat je complete folders kan combineren met elkaar. Tags moet je toevoegen aan individuele foto's.

Stel als voorbeeld: in ben in twee verschillende vakanties naar een dierentuin geweest. De folderstructuur is per vakantie, met subfolders voor de activiteiten in die vakantie. Dan zou ik het mooi vinden als ik onder een Library kon maken 'My Libraries', met daarin een sub-library 'Dierentuinen', waaraan ik dan de twee folders kan toevoegen. Het is maar een geconstrueerd voorbeeld.

De reden om aan sub-libraries te denken, is dat ik niet zou willen dat al mijn dergelijke collecies steeds in het hoofdnivo van de Libraries zichtbaar zijn. Ik heb ze niet dagelijks nodig.

Wat ik nog als vraag heb bij Libraries, dat is in hoeverre ze meegaan met reorganisatie van mijn computer. Stel dat ik de foto's op een andere plek neerzet op mijn harddisk, dan gaan alle library verwijzingen verloren, neem ik aan. Dus dan zou het niet een goed idee zijn om daaraan veel op te hangen.

Ik hoop dat dit duidelijk is. Stel anders gerust een vraag.

met vriendelijke groet,

Henk

# December 20, 2011 10:39 AM

Jeff Wouters zei:

Hoi Henk,

Gezien het 'enkel' om foto's gaat, is het een optie om tagging te gebruiken via Windows Photo Gallery: windows.microsoft.com/.../Tag-pictures-so-theyre-easier-to-find

Vanuit een gebruikers perspectief werkt dit hetzelfde als foto's taggen op facebook... en je kan ook zoeken op tags, waardor je eenvoudig foto's met dezelfde tag kan vinden :-)

Je kan dus een library maken met ALLE foto's erin en vervolgens via Windows Photo Library zoeken op tags in je library.

Uit ervaring kan ik je vertellen dat er redelijk wat tijd gaat zitten (hoewel multi-select het makkelijker maakt) om je foto's te taggen... maar later pluk je er absoluut de vruchten van :-D

Aangaande je 2e vraag... ik zou de link in je library high-level houden (bijvoorbeeld D:\Pictures) zodat je slechts een paar locaties aan je library hoeft toe te voegen. Je beschrijving klopt namelijk, als je de bestanden verplaatst op de pc naar een locatie die niet is opgenomen in de library, zal de foto niet meer te vinden zijn via die library. Vandaar is het mijn persoonlijke best practice de libraries zo globaal mogelijk te houden (software ipv microsoft, pictures ipv dierentuin, etc.) zodat wijzigingen van data locaties een minimale impact hebben op mijn libraries.

Is dit een antwoord waar je iets mee kan?

Jeff.

# December 20, 2011 11:53 AM

Henk zei:

Ja, Jeff, dat is wel een antwoord op mijn vraag. het is duidelijk dat ik in de richting van de libraries niet verder hoef te zoeken. Het gebruik van tags lijkt dan de beste weg. ik vind de ondersteuning van Windows Live Photo Gallery voor tags erg mooi. Wat ik nu lees in de link die je geeft, dat ik tags kan groeperen, dat is wel het laatste zetje voor mij, denk ik. Dan hoef ik namelijk bij het taggen niet te denken aan de alfabetische sortering (alle tags voor familie laten beginnen met fam-...). Het mooie van tags is ook dat het over platformen en wisselingen van pc's heen blijft bestaan. En als je als gebruiker gaat reorganiseren/verplaatsen dan hoef je nauwelijks te wachten of de indexer heeft alles weer paraat. Al met al heel positief die tags.

Wat de tweede vraag betreft, ik zat de hopen dat er bijvoorbeeld een verwijzing mogelijk is naar onderliggende (onzichtbare, technische) folder-id's, in plaats van naar drive:/pad. Met de hoop dat een folder-id behouden blijft bij het verplaatsen.

bedankt voor het meedenken. Wat mij betreft kunnen we dit stukje dialoog afronden. Bedankt!

Henk

# December 20, 2011 5:47 PM

Henk zei:

Hallo Jeff,

toch nog een toevoeging.

Vandaag vond ik een zeer interessante optie. Als ik een zoekactie doe op basis van tags, dan kan ik die zoekactie bewaren in Searches. In de Searches folder kan ik subfolders maken! Zodoende kan ik allerlei dwarsverbanden op basis van tags, thematisch weer ordenen in folders. Ik heb een library "Searches" gemaakt en daar de Searches folder aan toegevoegd. Dat geeft mij een snelle ingang op de geordende dwarsverbanden.

Nog een belangrijke tip: het zoekvenster in windows verkenner moet je zo breed maken dat in de dropdown alle ondersteunende opties zichtbaar worden!!! (hier moet Microsoft iets aan doen: als het vensters te smal is, dan moeten de ondersteunde opties over meerdere regels getoond worden onderaan de dropdown). En je moet zoeken via Libraries en niet via de disks. Heel belangrijk!

Verder wil ik in het algemeen nog zeggen dat ik zeker in mijn achterhoofd heb om deze ordeningsmogelijkheden ook toe te passen op andere zaken dan pictures, zoals documenten (word, excel).

Ok, ik hoop dat dit het is voorlopig. Het zijn voornamelijk toevoegingen over de kracht van Libraries, dus past wel in dit blogspoor?

Met vriendelijke groet,

Henk

# December 21, 2011 11:06 AM

Jeff Wouters zei:

Hoi Henk,

Je feedback past goed onder dit blog, gezien je door creatief te zijn de kracht van de libraries nog veel groter hebt kunnen maken. Libraries zijn 'slechts' een begin en door deze met andere technologien te combineren is het mogelijk dit soort constructies te gebruiken waardoor je je leven een stuk makkelijker kan maken.

Aangaande je advies voor Microsoft voor aanpassingen in hun producten adviseer ik je deze feedback op de Microsoft fora te posten: social.microsoft.com/.../categories

Hier lezen de Microsoft medewerkers uit Redmond het namelijk ook en kan de wereldwijde community ook feedback geven op jouw feedback, waardoor een totaalbeeld voor Microsoft duidelijk wordt en de best mogelijk aanpassing voorgesteld kan worden.

Jeff.

# December 29, 2011 11:25 AM
Wat denkt u?

(Verplicht) 

(Verplicht) 

(Optioneel)

(Verplicht) 
CaptchaCube Vraag:


Antwoord: