웹 애플리케이션 내의 모든 웹 목록을 가져오고 싶었습니다. 실수로 다음과 같이 썼습니다.

$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, ContentDatabaseSiteSubscription 매개 변수입니다. 이러한 범위가 제공되지 않으면 범위는 농장입니다. 필터 매개 변수없이 범위를 지정하면 해당 범위의 모든 사이트가 반환됩니다.

따라서 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 기사를 보면 범위에 대한 언급이나 여기에 파이프 할 내용에 대한 정보가 없습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다