웹 애플리케이션 내의 모든 웹 목록을 가져오고 싶었습니다. 실수로 다음과 같이 썼습니다.
$webapp = "http://mywebapp" $webapp | Get-SPSite | Get-SPWeb
그래서 이것은 환상적인 결과를 반환하여 웹 앱에있는 각 웹의 URL을 제공했습니다. 하지만 powershell 명령은 이해가되지 않습니다.
실제로 다음과 같이 작성하려고했습니다.
$webapp = "http://mywebapp" Get-SPWebApplication $webapp | Get-SPSite | Get-SPWeb
URL을 액면 그대로 취하고 지능적으로 “웹 앱 URL”이라고 가정합니까? SPWebApplication 개체로 변환 한 다음 Get-SPSite로 파이프하여 웹 앱 내에서 각 사이트 모음 개체를 가져옵니다.
Answer
파이프 라인은 명령의 한 개체를 다른 개체로 전달합니다. 첫 번째 명령의 결과는 다음 명령에 대한 입력입니다.
예에서 첫 번째 명령 Get-SPSite
등에 전달되는 SPWebApplication
의 생성 된 목록
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
Get-SPSite
의 technet 기사에서-Get-SPSite cmdlet
는 Identity 매개 변수와 일치하는 단일 사이트를 반환합니다. , 또는 지정된 범위의 Filter 매개 변수와 일치하는 모든 사이트. 범위는 WebApplication
, ContentDatabase
및 SiteSubscription
매개 변수입니다. 이러한 범위가 제공되지 않으면 범위는 농장입니다. 필터 매개 변수없이 범위를 지정하면 해당 범위의 모든 사이트가 반환됩니다.
따라서 SPWebApplication
, 및 SPSiteSubscription
Get-SPContentDatabase | Get-SPSite
댓글
- 이것이 저의 혼란입니다. SPSite에 대해 " URL "를 사용할 수있는 여러 입력 매개 변수가 있습니다. 파이프 된 SPSite는 내가 SPSite ' s -WebApplication 매개 변수를 -Identity 매개 변수 대신 지정하고 있는지 어떻게 알 수 있습니까?
- technet이 도움이 될 것이라고 생각합니다. '의 정의에는 " 파이프 입력 " 섹션이 있습니다. $ webapp 값을 ' 존재하지 않는 것으로 변경하는 경우, 즉 " mywebapp / nothing_here " 해당 URL에서 웹 애플리케이션을 찾을 수 없다는 오류가 발생합니다. 이것은 물론 웹 응용 프로그램 URL이 필요하다는 것을 의미합니다. 이것은 SPSite 기사에 어떻게 든 문서화되어야합니다.
- @ferr 내 답변을 업데이트했습니다
- 아! 감사합니다. 나는 그것을 보았지만 ' " 필터 매개 변수 ". " 파이핑 된 입력 "이 의미하는 것 같습니다.
- 사실 다시 읽고 있습니다. '는 필터 매개 변수가 아니라 " 범위 "입니다. powershell 전체에서 사용되는 보편적 인 용어입니까? 각 개체에 나열된 " 범위 "를 찾을 수 있다면 좋겠습니다. ' technet 기사 … 예를 들어 Get-SPWeb 기사를 보면 범위에 대한 언급이나 여기에 파이프 할 내용에 대한 정보가 없습니다.