Jeg ønsket å få en liste over alle nettene i en webapplikasjon. Ved et uhell skrev jeg følgende:

$webapp = "http://mywebapp" $webapp | Get-SPSite | Get-SPWeb 

Så dette ga fantastiske resultater og ga meg nettadressene til hvert nett i nettappen. Men powershell-kommandoen gir ikke mening for meg.

Jeg mente faktisk å skrive noe sånt som:

$webapp = "http://mywebapp" Get-SPWebApplication $webapp | Get-SPSite | Get-SPWeb 

som gir det samme resultater. Tar det bare nettadressen til pålydende verdi og antar intelligent at den er en nettadresse? Jeg gjetter at det konverterer det til et SPWebApplication-objekt, og rør det til Get-SPSite, som får hvert nettstedssamlingsobjekt i nettappen osv.

Svar

Rørledningen overfører ett objekt av en kommando til et annet. Resultatet av den første kommandoen er en inngang for neste kommando.

Så i eksempelet ditt Den første kommandoen Generert liste over SPWebApplication som sendes til 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

Fra technet-artikkelen til Get-SPSiteGet-SPSite cmdlet returnerer enten et enkelt nettsted som samsvarer med identitetsparameteren , eller alle nettstedene som samsvarer med filterparameteren for det angitte omfanget. Omfanget er WebApplication, ContentDatabase og SiteSubscription parametere. Hvis ingen av disse omfangene er gitt, vil omfanget er gården. Hvis omfanget er spesifisert uten filterparameter, returneres alle nettsteder i dette omfanget.

Så det kan røres fra SPWebApplication, SPContentDatabase og SPSiteSubscription

Get-SPContentDatabase | Get-SPSite 

Kommentarer

  • Så dette er min forvirring: det er flere inngangsparametere for SPSite som kan ta " URL ". Hvordan vet det pipede SPS-nettstedet om jeg spesifiserer for SPSite ' s -WebApplication-parameteren i stedet for -Identity-parameteren?
  • Jeg tror det som kan hjelpe hvis technet ' s definisjoner hadde en " piped-innganger ". Hvis jeg endrer $ webapp-verdien til noe som ikke eksisterer ' t dvs. " mywebapp / nothing_here " det kaster en feil at den ikke finner et webapplikasjon på den url. Dette betyr for meg at det forventer en web-applikasjons url, selvfølgelig. Dette må dokumenteres på en eller annen måte i SPSite-artikkelen.
  • @ferr Jeg har oppdatert svaret mitt
  • ah! Takk skal du ha. jeg så det, men jeg var ikke ' ikke sikker på om det var det jeg lette etter, siden det ikke egentlig definerte hva det betydde med " Filterparameter ". Det ser ut til at det var det jeg mente med " Piped Inputs ".
  • Leser det faktisk igjen, det ' er ikke filterparameteren, men " omfanget ". Er det et universelt begrep som brukes gjennom hele powershell? Jeg vil gjerne ha det hvis jeg kunne finne " Omfang " oppført på hvert objekt ' s technet-artikkel … for eksempel hvis du ser på Get-SPWeb-artikkelen, er det ingen omtale av omfang eller informasjon om hva du skal pipe til den.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *