Ik wilde een lijst krijgen van alle websites binnen een webapplicatie. Per ongeluk schreef ik het volgende:
$webapp = "http://mywebapp" $webapp | Get-SPSite | Get-SPWeb
Dit leverde dus fantastische resultaten op, waarbij ik de URLs van elk web in de webapp kreeg. Maar het powershell-commando is niet logisch voor mij.
Ik wilde eigenlijk zoiets schrijven als:
$webapp = "http://mywebapp" Get-SPWebApplication $webapp | Get-SPSite | Get-SPWeb
wat hetzelfde oplevert resultaten. Neemt het gewoon de url op het eerste gezicht en neemt het intelligent aan dat het een webapp-url is? Ik vermoed dat het het converteert naar een SPWebApplication-object en dat naar Get-SPSite leidt, dat elk siteverzamelingsobject binnen de web-app ophaalt, enz.
Antwoord
De pijplijn geeft het ene object van een commando door aan het andere. Het resultaat van het eerste commando is een invoer voor het volgende commando.
Dus in jouw voorbeeld Het eerste commando Gegenereerde lijst met SPWebApplication
die wordt doorgegeven aan Get-SPSite
etc
http://technet.microsoft.com/en-us/library/ff607950%28v=office.15%29.aspx
http://blogs.catapultsystems.com/SSamuel/archive/2012/10/15/using-pipes-in-powershell-tip-1.aspx
Uit het technet-artikel van Get-SPSite
– De Get-SPSite cmdlet
retourneert ofwel een enkele site die overeenkomt met de Identity-parameter , of alle sites die overeenkomen met de filterparameter voor het opgegeven bereik. De bereiken zijn de WebApplication
, ContentDatabase
en SiteSubscription
-parameters. Als geen van deze bereiken is opgegeven, wordt de scope is de boerderij. Als het bereik is opgegeven zonder filterparameter, worden alle sites in dat bereik geretourneerd.
Het kan dus worden doorgesluisd van SPWebApplication
, SPContentDatabase
, en SPSiteSubscription
Get-SPContentDatabase | Get-SPSite
Reacties
- Dit is dus mijn verwarring: er zijn meerdere invoerparameters voor SPSite die " URL " kunnen aannemen. Hoe weet de doorgesluisde SPSite of ik specificeer voor SPSite ' s -WebApplication-parameter in plaats van de -Identity-parameter?
- Ik denk dat wat zou helpen is als technet ' s definities hadden een " doorgesluisde invoer " sectie. Als ik de $ webapp-waarde verander in iets dat niet ' t bestaat, dwz " mywebapp / nothing_here " het genereert een foutmelding dat het geen webtoepassing op die url kan vinden. Dit betekent voor mij dat het natuurlijk een webapplicatie-url verwacht. Dit moet op de een of andere manier worden gedocumenteerd in het SPSite-artikel.
- @ferr Ik heb mijn antwoord bijgewerkt
- ah! dank je. ik zag dat, maar ik wist niet ' of het was wat ik zocht, aangezien het niet echt definieerde wat het betekende met " Filterparameter ". Het lijkt erop dat ik dit bedoelde met " Doorgesluisde invoer ".
- Als ik het eigenlijk nog eens lees, ' s niet de filterparameter, maar de " scopes ". Is dat een universele term die overal in powershell wordt gebruikt? Ik zou het leuk vinden als ik " Scopes " op elk object kon vinden ' s technet-artikel … als je bijvoorbeeld naar het Get-SPWeb-artikel kijkt, wordt er geen melding gemaakt van scopes of informatie over wat je ernaar toe moet leiden.