powershell - 如何获取日志目录?
问题描述
我最近在我的服务器上安装了 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 文件(我计划将其用于多种目的,所以我只想获取服务器而不是数据库):
我得到了这个错误:
散列文字中的键后缺少“=”运算符。
解决方案
这可能会让你成为他们的一部分。我没有可供我使用的分析服务器,您可能需要对其进行一些更改,直到正确为止。
$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/
推荐阅读
- python - 将日期从以多种格式存在的字符串解析为日期时间格式
- r - 如何从另一个脚本中读取 R Plumber 函数参数数据?
- model-view-controller - MVC - 您将与模型的多个实例相关的方法放在哪里?
- jupyter-notebook - Jupyter 实验室的风筝
- apache-kafka - Kafka - 消息与记录与偏移量
- javascript - array.push 创建多次出现
- mysql - 如果不为 NULL,则不要更新列
- java - 如何评论以“//”开头的字符串?
- azure - 是否可以以 Pub/Sub 方式将 Azure 事件中心配置到另一个事件中心而无需编码?
- git - 辅助分支可以在本地从分支主控中提取更改吗?