Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有方法将MSSQL表格列作为参数传递给powershell函数?_Sql_Sql Server_Powershell_Command Prompt_Powershell 3.0 - Fatal编程技术网

是否有方法将MSSQL表格列作为参数传递给powershell函数?

是否有方法将MSSQL表格列作为参数传递给powershell函数?,sql,sql-server,powershell,command-prompt,powershell-3.0,Sql,Sql Server,Powershell,Command Prompt,Powershell 3.0,我在powershell中有一个下面的代码,我在其中传递的参数来自SQL CMS,但是我愿意从MSSQL tablename传递这个servername。是否有办法实现这一点 import-module sqlps -DisableNameChecking function Test-SQLConnection{ param([parameter(mandatory=$true)][string[]] $Instances) $return = @() forea

我在powershell中有一个下面的代码,我在其中传递的参数来自SQL CMS,但是我愿意从MSSQL tablename传递这个servername。是否有办法实现这一点

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

下面是您可以调用上述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