Все выглядит правильно, за исключением того, что я не уверен, как он ведет себя без определенной метки заголовка столбца. Попробуйте добавить этот узел вместо пустого:
<TableColumnHeader>
<Label>FileName</Label>
</TableColumnHeader>
Также убедитесь, что файл MyFormatFilename.ps1xml
находится в том же каталоге, что и оснастка, когда он загружается через Add-PSSnapin. Кроме того, возможно, не очень, но дважды проверьте наличие опечаток в имени типа, указанном в элементе <TypeName>
.
Обновление: я попробовал ваш XML, как указано выше, и он работает для меня. Я скопировал его в Notepad2 и сохранил в C: \ temp \ test.ps1xml, а затем выполнил:
1# $obj = new-object psobject
2# $obj.psobject.TypeNames.Insert(0, 'MyFullNamespace.RemoteFileData')
3# Add-Member -InputObject $obj -MemberType NoteProperty -Name Filename `
-Value 'some-remotefile.txt'
4# Add-Member -InputObject $obj -MemberType NoteProperty -Name Dummy `
-Value 'dummy prop'
5# $obj.psobject.TypeNames
MyFullNamespace.RemoteFileData
System.Management.Automation.PSCustomObject
System.Object
6# $obj
Filename Dummy
-------- -----
some-remotefile.txt dummy prop
7# Update-FormatData C:\temp\test.ps1xml
8# $obj
Filename
--------
some-remotefile.txt
Я бы дважды проверил полное имя типа instance.GetType().FullName
, а также дважды проверил содержимое файла формата. Убедитесь, что он находится в том же каталоге, из которого вы зарегистрировали оснастку.