Как я могу получить каталог журналов? - PullRequest
0 голосов
/ 30 октября 2018

Я недавно установил SSAS на свои серверы, и вместо того, чтобы пройти через 24 из них, я пишу скрипт для возврата 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: ....

Значение по умолчанию: \ data

PendingValue: S: ...

ТребуетсяRestart: True

IsReadOnly: False

DisplayFlag: True

Категория: Basic

Единицы: папка

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 голосов
/ 30 октября 2018

Это может помочь вам в этом. В моем распоряжении нет аналитического сервера, вам, возможно, придется немного изменить его, пока вы не сделаете это правильно.

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

...