Am vrut să obțin o listă cu toate paginile web dintr-o aplicație web. Din întâmplare, am scris următoarele:
$webapp = "http://mywebapp" $webapp | Get-SPSite | Get-SPWeb
Deci, acest lucru a dat rezultate fantastice, oferindu-mi adresele URL ale fiecărui web din aplicația web. Dar comanda PowerShell nu are sens pentru mine.
De fapt am vrut să scriu ceva de genul:
$webapp = "http://mywebapp" Get-SPWebApplication $webapp | Get-SPSite | Get-SPWeb
care produce același lucru rezultate. Își ia adresa URL la valoarea nominală și o presupune în mod inteligent că este o adresă URL a aplicației web? Bănuiesc că îl convertește într-un obiect SPWebApplication și îl conectează la Get-SPSite, care obține fiecare obiect de colectare a site-urilor din aplicația web etc.
Răspuns
Conducta trece un obiect al unei comenzi către altul. Rezultatul primei comenzi este o intrare pentru următoarea comandă.
Deci, în exemplul dvs. Prima comandă Lista generată de SPWebApplication
care este transmisă către 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
Din articolul technet din Get-SPSite
– Get-SPSite cmdlet
returnează fie un singur site care se potrivește cu parametrul Identity , sau toate site-urile care corespund parametrului Filter pentru domeniul de aplicare specificat. Domeniile de aplicare sunt WebApplication
, ContentDatabase
și . Dacă nu este furnizat niciunul dintre aceste domenii, domeniul de aplicare este ferma. Dacă domeniul de aplicare este specificat fără parametru de filtrare, toate site-urile din domeniul respectiv sunt returnate.
Deci poate fi canalizat de la SPWebApplication
, SPContentDatabase
și SPSiteSubscription
Get-SPContentDatabase | Get-SPSite
Comentarii
- Deci, aceasta este confuzia mea: există mai mulți parametri de intrare pentru SPSite care pot lua " URL ". Cum știe SPSite-ul cu conducte dacă specific pentru SPSite ' s -WebApplication parametru în loc de -Identity parametru?
- Cred că ceea ce ar ajuta este dacă technet Definițiile ' au o secțiune " intrări cu canal ". Dacă schimb valoarea $ webapp în ceva care nu ' nu există, adică " mywebapp / nothing_here " generează o eroare că nu poate găsi o aplicație web la adresa URL respectivă. Acest lucru înseamnă pentru mine că se așteaptă la o adresă URL a aplicației web, desigur. Acest lucru trebuie documentat cumva în articolul SPSite.
- @ferr Mi-am actualizat răspunsul
- ah! mulțumesc. Am văzut asta, dar nu eram ' sigur dacă asta căutam, deoarece nu definea cu adevărat ce însemna prin " Parametru de filtrare ". Se pare că asta am vrut să spun prin " Intrări prin conducte ".
- De fapt, citind-o din nou, ea ' nu este parametrul filtrului, ci " domeniile ". Este acesta un termen universal folosit în întreaga putere? Aș dori dacă aș găsi " Domenii de aplicare " listate pe fiecare obiect ' s articol technet … de exemplu, dacă te uiți la articolul Get-SPWeb, nu se menționează domeniile și nici informații despre ce să-i aduci.