如果我有一个带有int,boolean和PSCredential的自定义PowerShell对象,我需要能够将它们写到一个位置。最简单的解决方案是做一个foreach循环,但我需要以不同的方式对待PSCredential。在写出所有其他值时,如何从foreach中排除PSCredential?
自定义对象初始化类似于:
$myObj = [PSCustomObject]@{
Value1 = [string]
Value2 = [int]
Value3 = $null}
此外,在处理脚本时,将Value3设置为Get-Credential,并提示用户输入凭据。
答案 0 :(得分:2)
使用select
限制显示输出的属性:
$myObj | select -Property * -ExcludeProperty Value3
请注意,必须在此使用-Property *
,否则-ExcludeProperty
将无法生效。
答案 1 :(得分:0)
对于像文件一样的位置,请尝试
"Value1 is {0}, Value2 is {1}" -f $myObj.Value1, $myObj.Value2 |out-file $someFileNameHere
或者我误解了你的问题?
答案 2 :(得分:0)
这样的事情有帮助吗?
$array = <array of objects>
$Props = $array[0].psobject.Properties |
Where { $_.TypeNameofValue -ne 'System.Management.Automation.PSCredential' } |
select -ExpandProperty Name
$array | select $Props
那应该选择所有非凭据的属性