Jag ville få en lista över alla webbsidor i en webbapplikation. Av misstag skrev jag följande:

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

Så det här gav fantastiska resultat, vilket gav mig webbadresserna till varje webb i webbappen. Men powershell-kommandot är inte meningsfullt för mig.

Jag menade faktiskt att skriva något som:

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

vilket ger samma resultat. Tar det bara webbadressen till nominellt värde och antar intelligent att det är en webbapps-webbadress? Jag gissar att det konverterar det till ett SPWebApplication-objekt och rör det till Get-SPSite, vilket får varje webbplatssamlingsobjekt i webbappen osv.

Svar

Rörledningen skickar ett objekt av ett kommando till ett annat. Resultatet av det första kommandot är en ingång för nästa kommando.

Så i ditt exempel Det första kommandot Genererad lista över SPWebApplication som skickas till 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

Från artikelartikeln för Get-SPSiteGet-SPSite cmdlet returnerar antingen en enda webbplats som matchar identitetsparametern eller alla webbplatser som matchar filterparametern för det angivna omfånget. Omfattningarna är WebApplication, ContentDatabase och SiteSubscription parametrar. Om inget av dessa omfattningar tillhandahålls, visas räckvidden är gården. Om omfånget anges utan filterparameter returneras alla webbplatser i det omfånget.

Så det kan skickas från SPWebApplication, SPContentDatabase och SPSiteSubscription

Get-SPContentDatabase | Get-SPSite 

Kommentarer

  • Så det här är min förvirring: det finns flera ingångsparametrar för SPSite som kan ta " URL ". Hur vet den pipade SPSite om jag specificerar för SPSite ' s -WebApplication-parametern istället för -Identity-parametern?
  • Jag tror vad som skulle hjälpa om technet ' s definitioner hade en " piping-ingångar ". Om jag ändrar $ webapp-värdet till något som inte finns ' t ex " mywebapp / nothing_here " det kastar ett fel att det inte kan hitta en webbapplikation på den webbadressen. Det betyder för mig att det förväntar sig en webbapplikationswebbadress, naturligtvis. Detta måste dokumenteras på något sätt i SPSite-artikeln.
  • @ferr Jag har uppdaterat mitt svar
  • ah! tack. jag såg det, men jag var inte ' inte säker på om det var vad jag letade efter eftersom det inte riktigt definierade vad det menade med " Filterparameter ". Det verkar som det var vad jag menade med " Pipade ingångar ".
  • Läs det faktiskt igen, det ' är inte filterparametern utan " räckvidden ". Är det en universell term som används i hela powershell? Jag skulle vilja ha det om jag kunde hitta " Omfattningar " listade på varje objekt ' s technet-artikel … till exempel om du tittar på artikeln Get-SPWeb nämns inte omfattningar eller någon information om vad du ska leda till den.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *