Я обычно выполняю sh то, что вы ищете, просто конвертируя в json.
По умолчанию ConvertTo-Json
имеет глубину 4 элемента. Поскольку вам нужны только верхние свойства и их дочерние элементы, вы можете уменьшить -depth
до 2
.
#Selecting the first certificate just for demonstration purposes.
$YourObject = (get-childitem -Path 'Cert:\CurrentUser\CA\')[0]
# This will work with any objects.
$YourObject | ConvertTo-Json -Depth 2
Вот частичный взгляд на результирующий запрос:
{
"Archived": false,
"Extensions": [
{
"Critical": false,
"Oid": "System.Security.Cryptography.Oid",
"RawData": "48 33 48 31 6 8 43 6 1 5 5 7 48 1 134 19 104 116 116 112 58 47 47 115 50 46 115 121 109 99 98 46 99
111 109"
},
{
"CertificateAuthority": true,
"HasPathLengthConstraint": true,
"PathLengthConstraint": 0,
"Critical": true,
"Oid": "System.Security.Cryptography.Oid",
"RawData": "48 6 1 1 255 2 1 0"
},
(Я вставил только небольшой фрагмент)
Вы можете легко увидеть такие свойства, как Расширения, их дочерние свойства и связанные значения.
Дополнительные примечания
Если вы опустите параметр -depth
для ConvertTo-Json
, он вернется на глубину 4.
Глубина настраивается до 100 уровней. При этом у некоторого объекта будут свойства, которые восстанавливаются на объекте, поэтому, если это не нужно, вам не следует излишне указывать там максимальное значение.