Я подумал, что я должен опубликовать этот ответ и уточнить мой код, используя пример пользовательского объекта.
Оригинальное решение без pscustomobject:
$bannedCiphers = @{
"RC4 128/128"= @{
"IsPermitted" = $false
"AffectedCiphers" = @(
"SSL_RSA_WITH_RC4_128_MD5",
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_RC4_128_MD5",
"TLS_RSA_WITH_RC4_128_SHA"
)
}
"Another RC4"= @{
"IsPermitted" = $false
"AffectedCiphers" = @(
"Cipher1",
"Cipher2",
"Cipher3",
"Cipher4"
)
}
}
Вывод этого решения приведет к выводу $ bannedCiphers:
Name Value
---- -----
Another RC4 {IsPermitted, AffectedCiphers}
RC4 128/128 {IsPermitted, AffectedCiphers}
Мое решение для создания пользовательских объектов:
$bannedCiphers2 = [pscustomobject]@{
"RC4 128/128"= @{
"IsPermitted" = $false
"AffectedCiphers" = @(
"SSL_RSA_WITH_RC4_128_MD5",
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_RC4_128_MD5",
"TLS_RSA_WITH_RC4_128_SHA"
)
}
"Another RC4"= @{
"IsPermitted" = $false
"AffectedCiphers" = @(
"Cipher1",
"Cipher2",
"Cipher3",
"Cipher4"
)
}
}
Вывод для моего решения даст вывод $ bannedCiphers2:
RC4 128/128 Another RC4
----------- -----------
{IsPermitted, AffectedCiphers} {IsPermitted, AffectedCiphers}
оригинал:
$bannedCiphers | Select-Object *
IsReadOnly : False
IsFixedSize : False
IsSynchronized : False
Keys : {Another RC4, RC4 128/128}
Values : {System.Collections.Hashtable, System.Collections.Hashtable}
SyncRoot : System.Object
Count : 2
против
$bannedCiphers2 | Select-Object *
RC4 128/128 Another RC4
----------- -----------
{IsPermitted, AffectedCiphers} {IsPermitted, AffectedCiphers}