我在 SQL Server 数据库中有两个表。
表 1 看起来像:
ServerName ServiceName ServiceStatus
---------- ----------- -------------
Server1 iis running
Server2 sql running
Server3 www running
和 Table2 看起来像:
ServerName ServiceName ServiceStatus
---------- ----------- -------------
Server1 iis running
Server2 sql Notrunning
Server3 www running
我想使用 Powershell 比较表并获取状态差异,因为 {On Server2 服务“sql”状态从“正在运行”更改为“未运行”}。
我在下面尝试过,但没有输出。请帮我。
$SQLServer = "Server1\sql"
$db3 = "test"
$T1data = "SELECT ServerName, ServiceName, ServiceStatus FROM Table1"
$T2data = "SELECT ServerName, ServiceName, ServiceStatus FROM Table2"
$s = Invoke-Sqlcmd -ServerInstance $SQLServer -Database $db3 -Query $T1data
$p = Invoke-Sqlcmd -ServerInstance $SQLServer -Database $db3 -Query $T2data
#$q = Compare-Object $p $s -Property servicestatus
Foreach($q in $s.serverName) {
while ($s.serverName -eq $p.serverName -and $s.servicename -eq $p.servicename ) {
if($s.servicestatus -ne $p.servicestatus) {
Write-Output " On server $s.serverName the service $s.servicename changed from $P.servicestatus to $s.servicestatus "
}
}
}