몇 가지 일반적인 참고 사항.
$obj | Select-Object ⊆ $obj | Select-Object -Property *
후자는 모든 비 내재적, 비 컴파일러 생성 속성을 표시합니다. 전자는 (항상) 모든 속성 유형을 표시 하지 않는 것 같습니다 ( 내 테스트에서는 일관되게 표시되는 것처럼 보입니다 -여기에 보장 없음).CodeProperty MemberType
Get-Member기본적으로 정적 멤버를 가져 오지 않습니다 . 또한 비 정적 멤버 와 함께 (직접) 가져올 수 없습니다 . 즉, 스위치를 사용하면 정적 멤버 만 반환됩니다.
PS Y:\Power> $obj | Get-Member -Static
TypeName: System.IsFire.TurnUpProtocol
Name MemberType Definition
---- ---------- ----------
Equals Method static bool Equals(System.Object objA, System.Object objB)
...
를 사용합니다 -Force.
이 Get-Member명령은 Force 매개 변수를 사용하여 개체의 내장 멤버 및 컴파일러 생성 멤버를 디스플레이에 추가합니다. Get-Member이러한 멤버를 가져 오지만 기본적으로 숨 깁니다.
PS Y:\Power> $obj | Get-Member -Static
TypeName: System.IsFire.TurnUpProtocol
Name MemberType Definition
---- ---------- ----------
...
pstypenames CodeProperty System.Collections.ObjectModel.Collection...
psadapted MemberSet psadapted {AccessRightType, AccessRuleType,...
...
사용 ConvertTo-Json깊이 읽기 "직렬화"에 대한
JSON ( 대신 사용)을 사용하여 객체를 저장하는 것을 권장 하지 않습니다Export-Clixml . 그러나에서 다소 읽을 수있는 출력을 얻을 수 있으므로 ConvertTo-Json깊이를 지정할 수도 있습니다.
지정하지 않는 참고 Depth의미-Depth 2
PS Y:\Power> ConvertTo-Json $obj -Depth 1
{
"AllowSystemOverload": true,
"AllowLifeToGetInTheWay": false,
"CantAnyMore": true,
"LastResortOnly": true,
...
그리고 읽을 계획이 없다면 할 수 -Compress있습니다 (예 : 공백 제거)
PS Y:\Power> ConvertTo-Json $obj -Depth 420 -Compress
-InputObject할 수 있으면 사용하십시오.
PowerShell을 사용할 때 99.9 %의 시간 : 성능이 중요하지 않거나 성능에 관심이 없습니다. 그러나 필요하지 않을 때 파이프를 피하면 오버 헤드를 줄이고 속도를 더할 수 있습니다 (일반적으로 파이프는 비효율적입니다).
즉, 당신이 가진 모든 것이 $obj인쇄에 편리 하다면 (그리고 때때로 나처럼 타이핑하기에 너무 게으르지 않습니다 -InputObject) :
# select is aliased (hardcoded) to Select-Object
PS Y:\Power> select -Property * -InputObject $obj
# gm is aliased (hardcoded) to Get-Member
PS Y:\Power> gm -Force -InputObject $obj
주의 사항 Get-Member -InputObject:
$ obj가 컬렉션 (예 :) 이면 System.Object[]컬렉션 개체 자체에 대한 정보를 얻게됩니다.
PS Y:\Power> gm -InputObject $obj,$obj2
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
...
당신이 원하는 경우 Get-Member각 TypeName컬렉션 (각각 NB TypeName, 하지 각 개체에 대해 - N의 모음 같은 모든 개체 TypeName아니라 1 표를 인쇄 할 TypeName각 개체에 대한하지 N 테이블)을 ... 직접 배관 만하면됩니다.
-Force그것을 작업, 예를 들면하기 위해 매개 변수를Write-Host ($obj | Format-List -Force | Out-String)