Я предлагаю вообще избегать ConvertFrom-String
- он выполняет преобразования типов, которыми вы не можете управлять, когда используете -Delimiter
, как вы уже видели, и его анализ на основе шаблонов на основе шаблонов неудобен.
Примечание: ConvertFrom-String
недоступно в кроссплатформенном PowerShell Core edition .
В вашем простом случае используйте ConvertFrom-Csv
вместо:
$value = 'something:009'
$value | ConvertFrom-Csv -Delimiter ':' -Header P1, P2
ConvertFrom-Csv
читает все значения как строки, как есть (со строковым вводом; заключенные в двойные кавычки вокруг значений полей удаляются).