Sql server 如何处理每个和开关条件下的主体/镜像状态 #加载SMO扩展 [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.SqlServer.Smo”)| Out Null; #要检查的服务器 #$sqlservers=@($svr,“$svr\$inst”); $sqlservers=获取内容“servers.txt” foreach($sqlservers中的服务器){ $srv=新对象“Microsoft.SqlServer.Management.Smo.Server”$Server; #获取镜像数据库 $databases=$srv.databases |其中对象{$\.IsMirroringEnabled-eq$true}; #编写主机$数据库; 写入主机“=================================================”; #$test=$databases |选择对象-属性名称,MirroringStatus |格式表-自动调整大小; $databases | Select Object-Property MirroringStatus | Format Table-AutoSize; foreach($数据库中的状态){ 交换机($databases.MirroringPartnerInstance){ 1{$status.+“Disconnected”} 2{$status.+“Suspended”} 2{$status.+“Synchronizing”} 3{$status.+“未同步”} } }

Sql server 如何处理每个和开关条件下的主体/镜像状态 #加载SMO扩展 [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.SqlServer.Smo”)| Out Null; #要检查的服务器 #$sqlservers=@($svr,“$svr\$inst”); $sqlservers=获取内容“servers.txt” foreach($sqlservers中的服务器){ $srv=新对象“Microsoft.SqlServer.Management.Smo.Server”$Server; #获取镜像数据库 $databases=$srv.databases |其中对象{$\.IsMirroringEnabled-eq$true}; #编写主机$数据库; 写入主机“=================================================”; #$test=$databases |选择对象-属性名称,MirroringStatus |格式表-自动调整大小; $databases | Select Object-Property MirroringStatus | Format Table-AutoSize; foreach($数据库中的状态){ 交换机($databases.MirroringPartnerInstance){ 1{$status.+“Disconnected”} 2{$status.+“Suspended”} 2{$status.+“Synchronizing”} 3{$status.+“未同步”} } },sql-server,sql-server-2008,powershell,Sql Server,Sql Server 2008,Powershell,我想要这样的代码。“我想要这样的代码,有人知道,请帮助我,这是紧急情况”-这不是你个人的血汗工厂。如果你需要帮助,请描述你的问题/问题是什么。如何执行上述代码Mathias先生,你知道ans吗?让我知道,否则请不要向你转达任何意见。 Below is my code if you do this way you will not get issue function mirroring ( [string] $svr, [string]$inst, [string] $datastore )

我想要这样的代码。

“我想要这样的代码,有人知道,请帮助我,这是紧急情况”-这不是你个人的血汗工厂。如果你需要帮助,请描述你的问题/问题是什么。如何执行上述代码Mathias先生,你知道ans吗?让我知道,否则请不要向你转达任何意见。
Below is my code if you do this way you will not get issue 

function mirroring (
[string] $svr,
[string]$inst,
[string] $datastore
)
{

Set-StrictMode -Version 2
[Void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo")
[Void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO")
[Void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended")
$Conn = new-object Microsoft.SqlServer.Management.Common.ServerConnection
$SqlConnection = "Server=$svr\$inst;Database=master;Integrated Security=True;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = " SELECT  db_name(sd.[database_id])AS [Database Name]
          ,sd.mirroring_state                  AS [Mirror State]
          ,sd.mirroring_state_desc             AS [Mirror State] 
          ,sd.mirroring_partner_name           AS [Partner Name]
          ,sd.mirroring_role_desc              AS [Mirror Role]  
          ,sd.mirroring_safety_level_desc      AS [Safety Level]
          ,sd.mirroring_witness_name           AS [Witness]
          ,sd.mirroring_connection_timeout AS [Timeout(sec)]
    FROM sys.database_mirroring AS sd
    WHERE mirroring_guid IS NOT null
    ORDER BY [Database Name];" 
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$DataSet.Tables[0] 
 $datastore = $DataSet.Tables[0].Rows[0][2]            
 write-host $datastore

 if( $datastore -eq "Disconnected")
 {
# test
DisconnectedREMEDIATION

 }
 elseif($datastore -eq "SYNCHRONIZED")
 {

 SYNCHRONIZEDREMEDIATION
 }



}