Volevo ottenere un elenco di tutti i siti Web allinterno di unapplicazione web. Per sbaglio ho scritto quanto segue:

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

Quindi, questo ha restituito risultati fantastici, fornendomi gli URL di ogni web nella web app. Ma il comando powershell non ha senso per me.

In realtà volevo scrivere qualcosa del tipo:

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

che produce lo stesso risultati. Prende semplicemente lURL come valore nominale e lo assume in modo intelligente “lURL di unapp Web? Immagino che lo converta in un oggetto SPWebApplication e lo convogli in Get-SPSite, che ottiene ogni oggetto della raccolta siti allinterno dellapp Web, ecc.

Risposta

La pipeline passa un oggetto di un comando a un altro. Il risultato del primo comando è un input per il comando successivo.

Quindi nel tuo esempio Il primo comando Elenco generato di SPWebApplication passato a Get-SPSite ecc

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

Dallarticolo technet di Get-SPSiteGet-SPSite cmdlet restituisce un singolo sito che corrisponde al parametro Identity o tutti i siti che corrispondono al parametro Filter per lambito specificato. Gli ambiti sono WebApplication, ContentDatabase e SiteSubscription parametri. Se non viene fornito nessuno di questi ambiti, il file scopo è la fattoria. Se lambito viene specificato senza il parametro Filter, vengono restituiti tutti i siti in tale ambito.

Quindi può essere reindirizzato da SPWebApplication, SPContentDatabase e SPSiteSubscription

Get-SPContentDatabase | Get-SPSite 

Commenti

  • Questa è la mia confusione: ci sono più parametri di input per SPSite che possono richiedere " URL ". Come fa il SPSite in pipe a sapere se sto specificando per SPSite ' s -WebApplication parametro invece del -Identity parametro?
  • Penso che cosa sarebbe utile se technet Le definizioni di ' avevano una sezione " condutture ". Se cambio il valore $ webapp in qualcosa che non ' esista, ovvero " mywebapp / nothing_here " genera un errore che non riesce a trovare unapplicazione web a quellURL. Ciò significa per me che si aspetta lURL di unapplicazione web, ovviamente. Questo deve essere documentato in qualche modo nellarticolo SPSite.
  • @ferr ho aggiornato la mia risposta
  • ah! grazie. Lho visto, ma ' non ero sicuro che fosse quello che stavo cercando poiché non definiva veramente cosa significasse " Parametro di filtro ". Sembra che sia quello che intendevo con " Piped Inputs ".
  • In realtà leggendolo di nuovo, ' non è il parametro del filtro, ma gli " ambiti ". È un termine universale utilizzato in PowerShell? Mi piacerebbe se potessi trovare " Ambiti " elencato su ogni oggetto ' s articolo technet … ad esempio, se guardi larticolo Get-SPWeb non viene menzionato alcun ambito né alcuna informazione su cosa reindirizzare ad esso.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *