Get-CimInstance Win32_OperatingSystem |FLBecomes:
SystemDirectory : C:\windows\system32
Organization : Example.com
BuildNumber : 7601
RegisteredUser : Example User
SerialNumber : 00392-918-5000002-888888
Version : 6.1.7601
It seems simple, but the solution is eluding me.
Get-CimInstance Win32_OperatingSystem |FL
SystemDirectory : C:XXinXXwsXXysXXm3X
Organization : ExXXplXXcoXX
BuildNumber : 76XX
RegisteredUser : ExXXplXXUsXX
SerialNumber : 00XX2-XX8-XX00XX2-XX88XX
Version : 6.XX76XX
function redact
{
[cmdletbinding()]
Param (
[Parameter(ValueFromPipeline = $true)]
[string[]]$s
)
End {
$s = $s -split "`r?`n"
foreach ( $a in $s )
{
if ( $a )
{
0..($a.length-1) | ForEach -Begin `
{
$change = $false
} -Process `
{
if ($_ % 2 -eq 0 -and $_ -ne 0)
{
$change = -not $change
}
if ( $change -and $a.Substring($_,1) -ne " " -and $a.Substring($_,1) -notmatch "\r|\n")
{
$a = $a.Remove($_,1).Insert($_,"X")
}
} -End `
{
"$a"
}
}
}
}
}
PS C:\temp> redact (Get-CimInstance win32_operatingsystem | fl | Out-String)
SyXXemXXreXXorX : XX\WXXdoXX\sXXteXX2
OrXXniXXtiXX :
BuXXdNXXbeX : XX01
ReXXstXXedXXer : XXtrXXufXXn
SeXXalXXmbXX : XX42XXOEXX91XX40XX84XX8
VeXXioX : XX1.XX01
PS C:\temp> Get-CimInstance win32_operatingsystem | fl | Out-String | redact
SyXXemXXreXXorX : XX\WXXdoXX\sXXteXX2
OrXXniXXtiXX :
BuXXdNXXbeX : XX01
ReXXstXXedXXer : XXtrXXufXXn
SeXXalXXmbXX : XX42XXOEXX91XX40XX84XX8
VeXXioX : XX1.XX01
https://technet.microsoft.com/en-us/library/jj590766(v=wps.630).aspx
https://blogs.technet.microsoft.com/heyscriptingguy/2014/01/29/use-powershell-to-manipulate-information-with-cim/