首页 > 解决方案 > 如何获取日志目录?

问题描述

我最近在我的服务器上安装了 SSAS,而不是通过其中的 24 个,我正在编写一个脚本来取回服务器的 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 ://docs.microsoft.com/it-it/dotnet/api/microsoft.analysisservices.server?view=sqlserver-2016#propriet%C3%A0 无济于事。

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

名称:LogDir

类型 :

价值:S:....

默认值:\数据

待定值:S:...

需要重启:真

IsReadOnly : 假

显示标志:真

类别 : 基本

单位:文件夹

属性名称:LogDir

文件夹名称

但如果我这样做:$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

我得到了这个错误:

散列文字中的键后缺少“=”运算符。

标签: powershellazure-analysis-services

解决方案


这可能会让你成为他们的一部分。我没有可供我使用的分析服务器,您可能需要对其进行一些更改,直到正确为止。

$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/


推荐阅读