Есть ли способ передать столбец таблицы MS SQL в качестве параметра в функцию powershell? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть приведенный ниже код в 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

1 Ответ

0 голосов
/ 17 марта 2020

Ниже приведен способ вызова функции PS выше, и у меня это сработало

$Query = "set nocount on;  select top 20 servername from dba.dbo.tablename"
    $Servers = sqlcmd -b -S 'HostedServer' -d master -h -1 -Q $Query -W
    $servers+="pih-win-sptlsql"
    Test-SQLConnection -Instances $servers
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...