我创建了一个Powershell管理单元。我想更改我的Powershell cmdlet的输出。现在,它显示为“列表”格式。我想用我的自定义列将其更改为表格式。我用我的snapin添加了一个Test1.Format.ps1xml文件。正确加载了xml文件(它在加载时向我展示了一些与xml相关的错误,我修复了这个错误。因此,我的假设是加载)。但是,输出的格式没有变化。我的猜测是 - 它无法识别类型名称,因为它来自不同的程序集。 我尝试使用该类型的完全限定名称(NS1.NS2.NS3是“MyOutputType”类型的命名空间)。
<ViewSelectedBy>
<TypeName>NS1.NS2.NS3.MyOutputType</TypeName>
</ViewSelectedBy>
当它不起作用时,我尝试添加程序集名称 -
<ViewSelectedBy>
<TypeName>NS1.NS2.NS3.MyOutputType,MyAssembly</TypeName>
同样,它没有用。 它仍然显示旧的标准输出。 “视图”的“名称”是否重要?
答案 0 :(得分:0)
如果手动创建对象并为其指定类型名称会发生什么?
$typename = "NS1.NS2.NS3.MyOutputType"
#Replace the properties inside -Property hashtable with the properties in your Type and some dummy-values.
$obj = New-Object psobject -Property @{
Replace = "hello"
With= "world"
Your= "world2"
Properties = "hello2"
}
$obj.pstypenames.Insert(0,$typename)