Powershell 如何获取日志目录?
我最近在我的服务器上安装了SSA,而不是使用其中的24个,我正在编写一个脚本来获取服务器的logDir 我正在尝试这样做:Powershell 如何获取日志目录?,powershell,azure-analysis-services,Powershell,Azure Analysis Services,我最近在我的服务器上安装了SSA,而不是使用其中的24个,我正在编写一个脚本来获取服务器的logDir 我正在尝试这样做: Import-Module SqlServer $Analysis_Server = New-Object Microsoft.AnalysisServices.Server $Analysis_Server.connect("$server") $Analysis_Server.ServerProperties.LogDir 我正在尝试从这里查找logDir属性:
Import-Module SqlServer
$Analysis_Server = New-Object Microsoft.AnalysisServices.Server
$Analysis_Server.connect("$server")
$Analysis_Server.ServerProperties.LogDir
我正在尝试从这里查找logDir属性:
无济于事
如果我使用ServerProperties,我会得到所有可用属性的列表,如下所示:
Import-Module SqlServer
$Analysis_Server = New-Object Microsoft.AnalysisServices.Server
$Analysis_Server.connect("$server")
$Analysis_Server.ServerProperties.LogDir
姓名:LogDir
类型:
值:S:
默认值:\data
挂起值:S:
RequiresRestart:True
IsReadOnly:错误
DisplayFlag:True
类别:基本
单位:文件夹
PropertyName:LogDir
文件夹名
但如果我这样做:$Analysis\u Server.ServerProperties.LogDir.value或$Analysis\u Server.ServerProperties.LogDir,它将不返回任何内容
更新:这就是我计划运行多台服务器的方式
这是我的csv文件,我计划将其用于多种用途,因此我只想获取服务器,而不是本案例中的数据库:
我找回了这个错误:
哈希文本中的键后缺少“=”运算符
这可能会让你从他们那里得到一部分。我没有一个分析服务器在我的支配下,你可能不得不改变这一点,直到你得到它的权利
$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'])")
}
要查看有关哈希表的更多精彩内容,请查看此链接:您可以尝试像访问哈希表一样访问它$Analysis\u Server.ServerProperties['LogDir']@thomschumacher OMG您真是个天才!我决不会想到这一点!我做了这个$Analysis_Server.ServerProperties['LogDir']]值,它返回了我想要的路径!现在我唯一担心的是,由于我计划创建一个包含所有服务器的哈希表,我如何才能为每个服务器的路径值编制索引?你能在你的问题中添加一些你尝试过的内容吗?@thomschumacher sure onemoment@thom舒马赫,既然你提出了一个可行的财产哈希,我认为这个connectionstring属性需要类似的哈希,但我不太确定如何处理它。你能看看这个线程吗,你也许能解决这个噩梦。我一直在调试,但没用:所以我试过你的代码,结果发现在hash.add参数中逗号后缺少表达式。无论如何,你的版本中不需要散列。循环只是在文本文件中循环,但当然,我更喜欢像我在帖子中更新的那样对csv文件进行散列