如何获取日志目录?

时间:2018-10-29 22:51:46

标签: powershell azure-analysis-services

我最近在服务器上安装了SSAS,我没有编写24个SSAS,而是编写了一个脚本来获取服务器的logDir。

logDir

我正在尝试做这样的事情:

Import-Module SqlServer

$Analysis_Server = New-Object Microsoft.AnalysisServices.Server 
$Analysis_Server.connect("$server")

$Analysis_Server.ServerProperties.LogDir

我正在尝试从此处查找logDir属性: https://docs.microsoft.com/it-it/dotnet/api/microsoft.analysisservices.server?view=sqlserver-2016#propriet%C3%A0 无济于事。

如果我使用ServerProperties,则会获得所有可用属性的列表,如下所示:

  

名称:LogDir

     

类型:

     

值:S:....

     

DefaultValue:\ data

     

PendingValue:S:...

     

RequiresRestart:是

     

IsReadOnly:False

     

DisplayFlag:True

     

类别:基本

     

单位:文件夹

     

PropertyName:LogDir

     

FolderName

但是如果我这样做:$Analysis_Server.ServerProperties.LogDir.value$Analysis_Server.ServerProperties.LogDir,它什么也不会返回...

更新:这就是我计划在多台服务器上运行的方式

$h = @{}
Import-Csv '$csvFile' | ForEach-Object {
    $h += @{$($_.Server -split '\s*,\s*') }
}

Import-Module SqlServer

foreach($server in $h.Keys){ 

    $result = "$server"
    Write-Host $result

   $Analysis_Server = New-Object Microsoft.AnalysisServices.Server  
   $Analysis_Server.connect("$server") 

   $Analysis_Server.ServerProperties['LogDir'].value
}

这是我的csv文件(我打算将此文件用于多种用途,因此在这种情况下,我只想获取服务器而不是数据库):

csv

我找回了这个错误:

  

键入哈希字面量后,缺少'='运算符。

1 个答案:

答案 0 :(得分:1)

这可能会让您参与其中。我没有分析服务器供您使用,您可能需要对它进行一些改动,直到正确为止。

$servers=get-content c:\temp\servers.txt
$hash=new-object hashtable
$Analysis_Server = New-Object Microsoft.AnalysisServices.Server 
foreach($s in $servers)
{      
  $Analysis_Server.connect("$s")
  $hash.add($s, $"$($Analysis_Server.ServerProperties['LogDir'])")

}

要在哈希表上查看更多精彩内容,请查看此链接:https://kevinmarquette.github.io/2016-11-06-powershell-hashtable-everything-you-wanted-to-know-about/