Можно построить строку, а затем выполнить ее, используя Invoke-Expression
. Обратите внимание, что начальный символ $
экранирован.
$Hashtable = @{}
$Hashtable.Maincategory = @{}
$Hashtable.Maincategory.Subcategory = @{}
$Hashtable.Maincategory.Subcategory.MyProperty = @{ 'property' = 'value'}
$Hashtable.Maincategory.Subcategory.MyProperty
$MainAndSubCategory = 'Maincategory.Subcategory'
Invoke-Expression -Command "`$Hashtable.$MainAndSubCategory.MyProperty"
Следует помнить, что все, что может установить значение строки, сможет внедрить нежелательный код.