Chciałem uzyskać listę wszystkich witryn internetowych w aplikacji internetowej. Przypadkowo napisałem co następuje:
$webapp = "http://mywebapp" $webapp | Get-SPSite | Get-SPWeb
To dało fantastyczne wyniki, dając mi adresy URL każdej strony w aplikacji internetowej. Ale polecenie PowerShell nie ma dla mnie sensu.
Właściwie chciałem napisać coś takiego:
$webapp = "http://mywebapp" Get-SPWebApplication $webapp | Get-SPSite | Get-SPWeb
co daje to samo czy po prostu przyjmuje wartość nominalną adresu URL i inteligentnie zakłada, że jest to adres URL aplikacji internetowej? Zgaduję, że konwertuje go na obiekt SPWebApplication i przesyła go do Get-SPSite, który pobiera każdy obiekt zbioru witryn w aplikacji internetowej itd.
Odpowiedź
Potok przekazuje jeden obiekt polecenia do drugiego. Wynikiem pierwszego polecenia jest dane wejściowe dla następnego polecenia.
W naszym przykładzie pierwsze polecenie Wygenerowana lista SPWebApplication
, która jest przekazywana do 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
Z artykułu poświęconego technetowi Get-SPSite
– Get-SPSite cmdlet
zwraca jedną witrynę, która jest zgodna z parametrem Identity lub wszystkie witryny, które pasują do parametru filtru dla określonego zakresu. Zakresy to WebApplication
, ContentDatabase
i . Jeśli żaden z tych zakresów nie zostanie podany, zakres to farma. Jeśli zakres jest określony bez parametru filtru, zwracane są wszystkie witryny w tym zakresie.
Więc można go przesłać potokiem z SPWebApplication
, SPContentDatabase
i SPSiteSubscription
Get-SPContentDatabase | Get-SPSite
Komentarze
- To jest moje zamieszanie: istnieje wiele parametrów wejściowych dla SPSite, które mogą przyjmować " URL ". Skąd potokowa witryna SPSite wie, czy określam parametr SPSite ' s -WebApplication zamiast parametru -Identity?
- Myślę, że pomogłoby gdyby technet Definicje ' miały sekcję " potokowe dane wejściowe ". Jeśli zmienię wartość $ webapp na coś, co nie ' nie istnieje, tj. " mywebapp / none_here " zgłasza błąd, że nie może znaleźć aplikacji internetowej pod tym adresem URL. Oznacza to dla mnie, że oczywiście oczekuje adresu URL aplikacji internetowej. Trzeba to jakoś udokumentować w artykule na SPSite.
- @ferr Zaktualizowałem odpowiedź
- ah! Dziękuję Ci. widziałem to, ale nie ' nie byłem pewien, czy to jest to, czego szukałem, ponieważ tak naprawdę nie określało, co oznacza " Parametr filtru ". Wygląda na to, że to właśnie miałem na myśli, pisząc " Piped Inputs ".
- Czytając go jeszcze raz, ' to nie parametr filtru, ale " zakresy ". Czy jest to uniwersalny termin używany w programie PowerShell? Chciałbym, gdybym mógł znaleźć " Zakresy " wymienione na każdym obiekcie ' s artykuł technet … na przykład, jeśli spojrzysz na artykuł Get-SPWeb, nie ma tam wzmianki o zakresach ani żadnych informacji o tym, co do niego potokować.