脚本工作,但我不知道如何扩展PSCustomObject


$computers = get-content 
"C:UsersAdministratorDesktopDAVIDTimeSyncFinalCheckTimeallips.txt"
foreach ($strComputer in $computers) {
$TextOutput = net time \$strComputer 
$ip,$time,$time1 = ($TextOutput -split ' ')[3,6,7]
[PSCustomObject] @{
IP = $ip -replace ".*\" 
Time = $time+$time1
}
}

输出我附上了我的输出图供参考。

我想做的是:扩展IP,使其显示整个IP地址。最长的字符串是172.32.5.111但它一直停在:172.32.5......这也是输出的样子。

我已经尝试了-扩展属性与PSCustomObject,但老实说,今天是我第一次使用对象。我也有一个ip列表在C:UsersAdministratorDesktopDAVIDTimeSyncFinalCheckTimeallips.txt

每行列出一个ip地址($srtComputer是ip列表的变量,我试过把它作为PSCustomObject的占位符,但没有帮助。)

-replace是用来删除net time命令输出中的 added(也许你不能扩展net time输出?)

继续我的评论。您的基本代码按设计工作:

如果您的文件只有IPA,那么…

Clear-Host
$computers = '127.0.0.1'
foreach ($strComputer in $computers) 
{
$TextOutput = net time \$strComputer 
$ip, $time, $time1 = ($TextOutput -split ' ')[3,6,7]
[PSCustomObject] @{
IP   = $ip -replace ".*\" 
Time = $time + $time1
}
}
# Results
<#
IP        Time     
--        ----     
127.0.0.1 5:31:37PM
#>

或者这样,使用-replace和split(如果有其他东西在混合)......

Clear-Host
$computers = '127.0.0.1', '172.25.83.95'
foreach ($strComputer in $computers) 
{
$TextOutput = (net time \$strComputer) -Replace '.*\\' -split ' is '
[PSCustomObject] @{
IP   = $TextOutput[0]
Time = $TextOutput[1]
} 
}

或者使用RegEx(如果有其他东西在混合)…

Clear-Host
$computers = '127.0.0.1'
foreach ($strComputer in $computers) 
{
$TextOutput = net time \$strComputer 
[PSCustomObject] @{
IP   = [regex]::Matches($TextOutput, 'd{1,3}.d{1,3}.d{1,3}.d{1,3}').Value
Time = [regex]::Matches($TextOutput, '(d+)/(d+)/(d+).(d+):(d+):(d+).[A|P]M').Value
}    
}

如何修复:

REPLACE GET-CONTENT WITH IMPORT-CSV
$strComputer with $ip 
$computers to $computers.IP
And add an IP header to .csv file ip address list
* i wanted to edit my original as little as possible

最新更新