我创建了一个脚本来收集远程 SQL 服务器
#### Get number of SQL servers
$sql_servers = @()
foreach ($server in $servers){
# Loop through each server and check if server has service "MSSQLSERVER"
Try{
$sql = get-service -computername $server.DNSHOstname -ErrorAction Stop | where {$_.Name -eq "MSSQLSERVER"} | select MachineName
$sql_servers += New-Object PSObject -Property @{
Machine = $sql.MachineName
}
}
catch [Exception]
{
if ($_.Exception.GetType().Name -like "*COMException*") {
Write-Verbose -Message ('{0} is unreachable' -f $server.DNSHOstname) -Verbose
}
else{
Write-Warning $Error[0]
}
}
}
我得到了想要的结果,但变量包含多个空行:
$sql_servers
Machine
-------
SQL1
SQL2
SQL3
我尝试以下删除那些空白行但没有成功。
$sql_servers = $sql_servers | Where-Object {$_}
$sql_servers = $sql_servers | ? {$_ -ne ""}
如何从变量中删除空(空白)行?
编辑:
我通过删除哈希表属性找到了解决方法,而不是
$sql_servers += New-Object PSObject -Property @{
Machine = $sql.MachineName
}
}
我只是设置$sql_servers += $sql
并且没有空行,但我很好奇是否可以使用哈希表删除空行。
谢谢