Что вы используете не только для модуля SQLPS или Модуль DBA Tools ?
Есть, конечно, другие модули, которые вы можете использовать:
Find-Module -Name '*sql*' | Format-Table -AutoSize
Find-Package -Name '*sql*' | Format-Table -AutoSize
Вот материал, который я передал другим, возиться с SQL.
Установить серверный модуль PowerShell SQL
https://docs.microsoft.com/en-us/sql/powershell/download-sql-server-ps-module?view=sql-server-ver15
https://docs.microsoft.com/en-us/powershell/module/sqlps/?view=sqlserver-ps
https://docs.microsoft.com/en-us/sql/powershell/sql-server-powershell?view=sql-server-ver15
Тогда см. :
Подключение PowerShell к SQL Серверу
В качестве обзора ниже приведен список параметров, которые я go опишу в этой статье:
- SQL Сервер PowerShell (SQLPS)
- SQL Объекты управления сервером (SMO)
- . NET (System.Data.SqlClient)
SQLPS
SQL Сервер PowerShell SQLPS - это утилита, впервые выпущенная с SQL Server 2008, на которую вы можете ссылаться по-разному. Он существует как (1) утилита и (2) как модуль PS. Утилита и модуль устанавливаются вместе с SQL инструментами управления сервером, начиная с SQL Server 2008 и выше. Есть несколько способов подключения к SQL Серверу с помощью этой утилиты, и у каждого есть свои сильные и слабые стороны.
SQLPS.exe
Это утилита, которую вы сможете открыть. набрав его в командной строке (Пуск> Выполнить). Во втором варианте щелкните правой кнопкой мыши узел в Обозревателе объектов в SQL Server Management Studio (SSMS) и выберите «Запустить PowerShell». Основная точка доступа утилиты SQLPS использует провайдер «SQLSERVER: \» для поиска SQL Сервер как каталог файлов. При этом на основе узла, с которого вы открываете SQLPS, вы попадете в этот путь провайдера. В каждой «папке», в которой вы работаете, провайдер предлагает свойства для чтения или установки, а также некоторые методы для администрирования.
Get-ChildItem SQLSERVER:\SQL\LOCALHOST\SQL12\Databases | foreach { $_.RecoveryModel = "SIMPLE"; $_.Alter() }
Модуль SQLPS
Импорт модуль SQLPS в сеансе PS обеспечивает тот же доступ, что и утилита, но позволяет вам работать в той версии ОС PS, с которой вы работаете. В SQL Server 2008 и 2008 R2 вы будете загружать SQLPS как оснастку (Add-PSSnapin), затем с SQL Server 2012 и выше он импортируется (Import-Module).
# Loading SMO
Add-Type -AssemblyName "Microsoft.SqlServer.Smo,Version=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91"
# Connecting with SMO
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server “localhost\sql12”
$srv.Databases | select name
# .NET Framework
# Create a connection
$sqlConn = New-Object System.Data.SqlClient.SqlConnection
$sqlConn.ConnectionString = “Server=localhost\sql12;Integrated Security=true;Initial Catalog=master”
$sqlConn.Open()
# Create your command (the T-SQL that will be executed)
$sqlcmd = $sqlConn.CreateCommand()
<# or #>
$sqlcmd = New-Object System.Data.SqlClient.SqlCommand
$sqlcmd.Connection = $sqlConn
$query = “SELECT name, database_id FROM sys.databases”
$sqlcmd.CommandText = $query
# Create your data adapter (if you want to retrieve data)
$adp = New-Object System.Data.SqlClient.SqlDataAdapter $sqlcmd
# Create your dataset (the adapter fills this object)
$data = New-Object System.Data.DataSet
$adp.Fill($data) | Out-Null
# Retrieving Your Data
$data.Tables
<# or #>
$data.Tables[0]
Наконец:
ИСПОЛЬЗУЙТЕ ПОЛОЖЕНИЕ ДЛЯ ПОЛУЧЕНИЯ ВСЕХ ИЗМЕРЕНИЙ ИЗ ТУБУЛЬНОГО КУБА 2016 ГОДА
Итак, вот скрипт PowerShell, который получит меры из куба (измените первые три переменные в соответствии с вашей средой):
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices.Tabular");
$tab = "YourSSASserver";
$dbId = "ID_or_DB";
$saveas = "C:\YourFolder\{0}.dax" -f $tab.Replace('\', '_');
$as = New-Object Microsoft.AnalysisServices.Tabular.Server;
$as.Connect($tab);
$db = $as.Databases[$dbId];
# in case you want to search by the name of the cube/db:
# $as.Databases.GetByName("DB Name");
$out = "";
foreach($t in $db.Model.Tables) {
foreach($M in $t.Measures) {
$out += "// Measure defined in table [" + $t.Name + "] //" + "`n";
$out += $M.Name + ":=" + $M.Expression + "`n";
}
}
$as.Disconnect();
$out = $out.Replace("`t"," "); # I prefer spaces over tabs :-)
$out.TrimEnd() | Out-File $saveas;