PowerShell cmdlet에 대한 ipropertycmdletprovider 인터페이스를 구현해야합니까?

StackOverflow https://stackoverflow.com/questions/1539840

  •  20-09-2019
  •  | 
  •  

문제

나는 a를 쓰고있다 navigationcmdletprovider PowerShell을 위해. Through the getitem 그리고 getChildItems 재정의, 파이프 라인에 기록 된 다양한 유형의 객체가 있습니다.

문서 ipropertycmdletprovider 인터페이스는 다음을 알려줍니다.

개발자는 다음 조건 에서이 인터페이스를 구현해야합니다.

  • 사용자가 get-property 및 set-property cmdlet과 같은 cmdlet을 사용해야합니다.
  • itemcmdletprovider, containercmdletprovider 또는 navigationcmdletprovider 클래스에서 파생 된 제공자의 경우.

착란:

내 의견으로는 유용한 정보가 많지 않습니다. ~ 해야 하다 get-property 및 set-property cmdlet을 사용 하시겠습니까? CMDLET 저자에게 달려 있다고 생각합니다. CMDLET가 물체를 파이프 라인에 쓴 경우 (적어도 나를 위해) 큰 혼란은; 그리고 이러한 물체는 호출 가능한 속성이 노출되어 있습니다 (즉, get/set). Get-Property/Set-Property를 호출하는 이점은 물체를 직접 조작하는 과도한 이점은 무엇입니까?

의문:

어떤 상황에서 ipropertycmdletprovider 인터페이스가 구현되어야합니까?

나는 여기서 뭔가 빠진 것을 안다! 모든 통찰력은 대단히 감사 할 것입니다.

도움이 되었습니까?

해결책

와우 그 문서는 조금 늙었습니다. get/set-property cmdlet은 없습니다. 이것은 get/set-itemproperty cmdlet을 참조해야합니다. RegistryProvider의 경우,이 CMDLET은 레지스트리 값에 액세스하는 유일한 방법이기 때문에 필수적입니다. 즉, get-item/childitem cmdlet은 레지스트리 키 객체 만 반환하며 레지스트리 값 객체 (.NET에 존재하지 않음). regkey 아래에 특정 Regvals를 GET/Set get/set-itemproperty를 사용해야합니다.

OTOH 파일 시스템 제공 업체를 사용하면 컨테이너 (DIRS) 및 LEAFS (파일)에 직접 액세스 할 수 있습니다. 파일의 내용을 직접 얻을 수 있습니다. 그래도 파일의 마지막 별을 얻으려면 get-itemproperty를 사용할 수 있습니다.

PS> Get-ItemProperty -Path .\DotNetTypes.format.ps1xml -Name LastWriteTime


PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\Win
                dows\System32\WindowsPowerShell\v1.0\DotNetT
                ypes.format.ps1xml
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\Win
                dows\System32\WindowsPowerShell\v1.0
PSChildName   : DotNetTypes.format.ps1xml
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
LastWriteTime : 4/24/2009 11:21:46 AM

그러나 나는 일반적 으로이 방식 으로이 속성에 액세스하지 않을 것입니다. 출력이 장황하는 방법이라는 것을 알았습니다. 나는 이것을 할 것이다 :

PS> (Get-Item .\DotNetTypes.format.ps1xml).LastWriteTime

Friday, April 24, 2009 11:21:46 AM

지도에 관해서는 RegistryProvider 접근 방식을 취하면이 인터페이스를 구현해야한다고 말하지만, 파일 시스템 제공 업체가 경로를 이동하면 get-에 의해 반환 된 객체의 속성에 직접 액세스 할 수 있기 때문에 덜 중요합니다. 항목/자식.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top