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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *