Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
Sql server 通过powershell从SQL Server中提取数据_Sql Server_Powershell - Fatal编程技术网

Sql server 通过powershell从SQL Server中提取数据

Sql server 通过powershell从SQL Server中提取数据,sql-server,powershell,Sql Server,Powershell,为什么这样做有效: param($destserver, $destDB) $destserver = "CCIIT23" $destDB = "SSIMS_Prod" $Servers = "CCIIT23" $CounterList = "\Memory\Available MBytes", "\Memory\Page Faults/sec", "\Memory\Pages/sec" $Servers | Foreach-Object { $Serv = $_; $CounterList

为什么这样做有效:

param($destserver, $destDB)
$destserver = "CCIIT23"
$destDB = "SSIMS_Prod"
$Servers = "CCIIT23"
$CounterList = "\Memory\Available MBytes", "\Memory\Page Faults/sec", "\Memory\Pages/sec"
$Servers | Foreach-Object { 
$Serv = $_; $CounterList | Foreach-Object { 
    Get-Counter -Computer $Serv -Counter $_ -SampleInterval 1
    }
}
这不管用吗

param($destserver, $destDB)
$destserver = "CCIIT23"
$destDB = "SSIMS_Prod"
$Servers = Get-SqlData $destserver $destDb "Select ServerName From ServerNames"
$CounterList = Get-SqlData $destserver $destDb "Select Counter From MemoryCounterList"
$Servers | Foreach-Object { 
$Serv = $_; $CounterList | Foreach-Object { 
    Get-Counter -Computer $Serv -Counter $_ -SampleInterval 1
    }
}

我猜测您正在使用模块
sqlpsx
中的
getsqldata
。如果你表现出一些努力,你可能会读到这篇文章

Get SqlData函数执行查询并返回 System.Data.DataRow

资料来源:

DataRow
不是字符串,而是对象。通过访问,您将发现如何使用
DataRow
对象的示例:
row[“ColumnName”]

这意味着你应该尝试使用

$Serv = $_["ServerName"]   #You may need to use $_["ServerName"].ToString()  .  $_.Servername might also work

我没有sql server可供测试,但这应该可以让您继续。谷歌搜索可能会让你找到另一个类似这样的论坛帖子,它显示了如果
Foreach对象
不起作用,如何循环搜索结果集:


欢迎大家在此提问,但请表现出一些努力,否则您的问题将被关闭并被否决。

您收到了哪些错误消息?Get-SqlData函数在做什么?这是在哪里定义的?仅供参考:
Get SqlData
不是PowerShell的内置命令。看起来有一个名为“SQL PSX”的第三方项目,它有一个名为该函数的函数,但是很可能它来自于甚至不同的东西。
Get-Counter -Computer $Serv -Counter ($_["Counter"]) -SampleInterval 1