Quería obtener una lista de todas las webs dentro de una aplicación web. Por accidente, escribí lo siguiente:

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

Entonces, esto arrojó resultados fantásticos, dándome las URL de cada web en la aplicación web. Pero el comando de powershell no tiene sentido para mí.

De hecho, quise escribir algo como:

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

que produce lo mismo resultados. ¿Simplemente toma la URL al pie de la letra y asume inteligentemente que es una URL de aplicación web? Supongo que lo convierte en un objeto SPWebApplication y lo canaliza a Get-SPSite, que obtiene cada objeto de la colección de sitios dentro de la aplicación web, etc.

Respuesta

La canalización pasa un objeto de un comando a otro. El resultado del primer comando es una entrada para el siguiente comando.

Entonces, en su ejemplo, el primer comando Lista generada de SPWebApplication que se pasa a 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

Del artículo de technet de Get-SPSite – El Get-SPSite cmdlet devuelve un solo sitio que coincide con el parámetro Identity o todos los sitios que coinciden con el parámetro Filter para el alcance especificado. Los alcances son WebApplication, ContentDatabase y SiteSubscription parámetros. Si no se proporciona ninguno de estos ámbitos, alcance es la finca. Si el alcance se especifica sin parámetro de filtro, se devuelven todos los sitios en ese alcance.

Por lo tanto, se puede canalizar desde SPWebApplication, SPContentDatabase y SPSiteSubscription

Get-SPContentDatabase | Get-SPSite 

Comentarios

  • Esta es mi confusión: hay varios parámetros de entrada para SPSite que pueden tomar " URL ". ¿Cómo sabe el SPSite canalizado si estoy especificando el parámetro SPSite ' s -WebApplication en lugar del parámetro -Identity?
  • Creo que lo que ayudaría es que technet Las definiciones de ' tenían una sección " entradas canalizadas ". Si cambio el valor de $ webapp a algo que no ' no existe, es decir, " mywebapp / nothing_here " arroja un error que indica que no puede encontrar una aplicación web en esa URL. Esto significa para mí que, por supuesto, espera una URL de aplicación web. Esto debe documentarse de alguna manera en el artículo de SPSite.
  • @ferr He actualizado mi respuesta
  • ¡ah! gracias. Vi eso, pero no estaba ' seguro de si era lo que estaba buscando, ya que no definía realmente lo que significaba " Parámetro de filtro ". Parece que eso es lo que quise decir con " Entradas canalizadas ".
  • En realidad, al leerlo de nuevo, ' no es el parámetro de filtro, sino los " ámbitos ". ¿Es ese un término universal utilizado en PowerShell? Me gustaría si pudiera encontrar " ámbitos " enumerados en cada objeto ' s artículo de technet … por ejemplo, si mira el artículo de Get-SPWeb, no hay mención de alcances ni información sobre qué canalizar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *