Eu queria obter uma lista de todas as webs dentro de um aplicativo da web. Por acidente, escrevi o seguinte:
$webapp = "http://mywebapp" $webapp | Get-SPSite | Get-SPWeb
Então, isso retornou resultados fantásticos, me dando as URLs de cada web no aplicativo da web. Mas o comando do PowerShell não faz sentido para mim.
Na verdade, eu pretendia escrever algo como:
$webapp = "http://mywebapp" Get-SPWebApplication $webapp | Get-SPSite | Get-SPWeb
que produz o mesmo resultados. Ele apenas considera o URL pelo valor de face e, de maneira inteligente, assume que é um URL de aplicativo da web? Estou supondo que ele o converte em um objeto SPWebApplication e canaliza-o para Get-SPSite, que obtém cada objeto de conjunto de sites dentro do aplicativo da web, etc.
Resposta
O pipeline passa um objeto de um comando para outro. O resultado do primeiro comando é uma entrada para o próximo comando.
Então, em seu exemplo, o primeiro comando Lista gerada de SPWebApplication
que é passada para 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
Do artigo technet de Get-SPSite
– O Get-SPSite cmdlet
retorna um único site que corresponde ao parâmetro Identity , ou todos os sites que correspondem ao parâmetro Filter do escopo especificado. Os escopos são WebApplication
, ContentDatabase
e SiteSubscription
. Se nenhum desses escopos for fornecido, o o escopo é a fazenda. Se o escopo for especificado sem o parâmetro Filter, todos os sites nesse escopo serão retornados.
Portanto, pode ser canalizado de SPWebApplication
, SPContentDatabase
e SPSiteSubscription
Get-SPContentDatabase | Get-SPSite
Comentários
- Portanto, esta é a minha confusão: existem vários parâmetros de entrada para SPSite que podem receber " URL ". Como o SPSite canalizado sabe se estou especificando para SPSite ' s -WebApplication parâmetro em vez do parâmetro -Identity?
- Acho que ajudaria se o technet As definições de ' s tinham uma seção " entradas canalizadas ". Se eu alterar o valor $ webapp para algo que não ' não existe, ou seja, " mywebapp / nothing_here " ele gera um erro de que não pode encontrar um aplicativo da web nesse url. Isso significa para mim que ele espera um URL de aplicativo da web, é claro. Isso precisa ser documentado de alguma forma no artigo SPSite.
- @ferr Eu atualizei minha resposta
- ah! obrigada. eu vi isso, mas não tinha ' t certeza se era o que eu estava procurando, pois não definia realmente o que significava " Parâmetro de filtro ". Parece que é isso que eu quis dizer com " Entradas canalizadas ".
- Na verdade, lendo novamente, ' não é o parâmetro de filtro, mas os " escopos ". É um termo universal usado em todo o PowerShell? Gostaria que encontrasse " Escopos " listados em cada objeto ' s artigo technet … por exemplo, se você olhar o artigo Get-SPWeb, não há menção de escopos nem qualquer informação sobre o que canalizar para ele.