У меня есть приведенный ниже код в powershell, где я передаю параметр от SQL CMS, однако я готов передать это имя сервера из MS SQL tablename, есть способ добиться этого.
import-module sqlps -DisableNameChecking
function Test-SQLConnection{
param([parameter(mandatory=$true)][string[]] $Instances)
$return = @()
foreach($InstanceName in $Instances){
$row = New-Object –TypeName PSObject –Prop @{'InstanceName'=$InstanceName;'StartupTime'=$null;'currenttime'=$null}
$servernameRDPcheck= $InstanceName
try
{
$Isconnected= (New-Object System.Net.Sockets.TCPClient -ArgumentList $row.instancename,3389).Connected
$insertquery=" update dba.dbo.cms_validation set [IsServerRDPpingable]=1 where servername='$instancename' and convert(varchar(10),entrydt,111)=convert(varchar(10),getdate(),111)"
Invoke-SQLcmd -ServerInstance 'HostedServer' -query $insertquery -Database dba
}
catch
{
$insertquery=" update dba.dbo.cms_validation set [IsServerRDPpingable]=0 where servername='$instancename' and convert(varchar(10),entrydt,111)=convert(varchar(10),getdate(),111)"
Invoke-SQLcmd -ServerInstance 'HostedServer' -query $insertquery -Database dba
}
}
return $return
}
$servers=@((dir "SQLSERVER:\SQLRegistration\Central Management Server Group\pih-win-sptlsql\Test\").Name)
$servers+="HostedServer"
Test-SQLConnection -Instances $servers
поэтому вместо передачи значения из CMS, как указано выше, я хочу передать его из SQL имени таблицы, как показано ниже, и оно должно быть зациклено, пока все имя сервера в этой таблице
$servers= select servername from tablename