SQL" Log Bytes Flushed / sec"来自powershell的计数器错误

时间:2016-02-28 01:54:25

标签: powershell azure azure-sql-database counter azure-performancecounters

我试图用这个计算我需要的AZURE SQL的类型:http://dtucalculator.azurewebsites.net/ => http://dtucalculator.azurewebsites.net/Downloads/sql-perfmon.zip

这是一个PowerShell脚本,它从SQL中的某些计数器获取数据,但在访问" Log Bytes Flushed / sec"时出错。我在运行

时在SQL中存在的计数器
select *  FROM sys.dm_os_performance_counters where counter_name like 'Log Bytes Flushed/sec%'

我从PowerShell获得的错误是:

  

Get-Counter:计算机上找不到指定的对象。在   C:\ users \ ringhel \ desktop \ sql-perfmon.ps1:47 char:1   + Get-Counter -Counter $ counters -SampleInterval 1 -MaxSamples 3600 |   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidResult:(:) [Get-Counter],Exception       + FullyQualifiedErrorId:CounterApiError,Microsoft.PowerShell.Commands.GetCounterCommand

错误来自此变量:

  

$ counters = @(" \ Processor(_Total)\%Processor Time",   " \ LogicalDisk(C:)\ Disk Reads / sec"," \ LogicalDisk(C:)\ Disk Writes / sec",

     

" \ LogicalDisk(C:)\ Disk Read Bytes / sec"," \ LogicalDisk(C:)\ Disk Write Bytes / sec"," \ SQLSERVER:数据库($数据库名)\登录   字节刷新/秒")

在搜索网页后,我尝试了MSSQLSERVER(这是SQL服务器的实例名称),MSSQL' $ MSSQLSERVER和MSSQL $ MSSQLSERVER而不是SQLSERVER,但是我尝试了同样的错误。

请帮忙。

2 个答案:

答案 0 :(得分:1)

发现了这个问题。 我不得不将LocalMachine的执行策略设置为RemoteSigned。这是未定义的。

Set-ExecutionPolicy RemoteSigned -Scope LocalMachine

答案 1 :(得分:0)

我的问题略有不同。对于命名实例,我必须这样定义SQL Server计数器:

\MSSQL`$SQL2016:Databases(_Total)\Log Bytes Flushed/sec

我的实例被命名为“ SQL2016”。反斜杠转义实例名称中的$

相关问题