powershell
2015-08-24 270 views 0 likes 
0

我已经搜索了一个这个答案,还没有找到一些工作,我还没有。从Powershell输出删除空白行

我有一个在Tripwire中使用的Powershell脚本来评估服务器的IIS版本。这个值被返回,但我相信它不能被Tripwire解释,因为空行。

请参阅下面的代码。先谢谢你!

%Windir%\system32\WindowsPowerShell\v1.0\powershell.exe "$ErrorActionPreference='SilentlyContinue'; $iv=(get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring | ft -hidetableheaders); if ($iv.length -gt 0 | where {$_.versionstring -ne ""}) { echo $iv } else { Write-Host -NoNewline "Not Installed" }" 

回答

1

的原因额外的线路是这样的:|ft -hidetableheaders

只需直接与Select-Object -ExpandProperty setupstringSetupstring属性值:

$iv = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\ | Select -ExpandProperty setupstring; 

表达$iv.length -gt 0| where {$_.versionstring -ne ""}没有做出太多感,并且完全等同于$iv.length -gt 0

你可以只是测试$iv简化if语句:

if ($iv) { 
    Write-Host $iv -NoNewline 
} else { 
    Write-Host 'Not Installed' -NoNewline 
} 

所以行变成了:

%Windir%\system32\WindowsPowerShell\v1.0\powershell.exe "$ErrorActionPreference='SilentlyContinue';$iv=Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\ | Select -Expand setupstring; if ($iv) { Write-Host $iv -NoNewline} else { Write-Host 'Not Installed' -NoNewline }" 
+0

太谢谢你了!这完美的作品!这节省了我的工作。 – stuffatwork190

相关问题