Ausführen eines SSIS-Pakets mit PowerShell
Gilt für: SQL Server SSIS Integration Runtime in Azure Data Factory
In diesem Schnellstart wird dargestellt, wie Sie mit einem PowerShell-Skript eine Verbindung zu einem Datenbankserver herstellen und ein SSIS-Paket ausführen.
Voraussetzungen
Ein Azure SQL-Datenbank-Server überwacht Port 1433. Wenn Sie versuchen, eine Verbindung mit einem Azure SQL-Datenbank-Server innerhalb einer Unternehmensfirewall herzustellen, muss dieser Port in der Unternehmensfirewall geöffnet sein, damit Sie eine Verbindung herstellen können.
Unterstützte Plattformen
Mithilfe der Informationen in diesem Schnellstart können Sie auf den folgenden Plattformen SSIS-Pakete ausführen:
SQL Server unter Windows
SSIS Integration Runtime (IR) in Azure Data Factory (ADF), wenn der SSIS-Katalog (SSISDB) von Azure SQL Managed Instance (MI) gehostet wird. Weitere Informationen zum Bereitstellen und Ausführen von Paketen in Azure finden Sie unter Migration von SQL Server Integration Services-Workloads in die Cloud per Lift & Shift.
Anhand der Informationen in diesem Schnellstart können Sie unter Linux keine SSIS-Pakete ausführen. Weitere Informationen zum Ausführen von Paketen finden Sie unter Extrahieren, Transformieren und Laden von Daten unter Linux mit SSIS.
Abrufen der Verbindungsinformationen für Azure SQL-Datenbank
Um das Paket auf Azure SQL-Datenbank auszuführen, rufen Sie die Verbindungsinformationen ab, die für eine Verbindungsherstellung mit der SSIS-Katalogdatenbank (SSISDB) benötigt werden. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen für die folgenden Prozeduren.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie aus dem Menü auf der linken Seite SQL-Datenbanken aus, und klicken Sie auf der Seite SQL-Datenbanken auf die SSISDB-Datenbank.
- Überprüfen Sie auf der Übersichtsseite Ihrer Datenbank den vollqualifizierten Servernamen. Zeigen Sie auf den Servernamen, damit die Option Klicken Sie zum Kopieren angezeigt wird.
- Wenn Sie die Anmeldeinformationen für Ihren Azure SQL-Datenbank-Server vergessen, navigieren Sie zur Seite „SQL Datenbank-Server“, damit der Serveradministratorname angezeigt wird. Sie können das Kennwort falls erforderlich zurücksetzen.
- Klicken Sie auf Datenbank-Verbindungszeichenfolgen anzeigen.
- Überprüfen Sie die vollständige ADO.NET-Verbindungszeichenfolge.
SSIS-PowerShell-Anbieter
Sie können den SSIS-PowerShell-Anbieter verwenden, um eine Verbindung mit dem SSIS-Katalog herzustellen und Pakete in diesem auszuführen.
Nachfolgend finden Sie ein grundlegendes Beispiel zum Ausführen von SSIS-Paketen in einem Paketkatalog mithilfe des SSIS-PowerShell-Anbieters.
(Get-ChildItem SQLSERVER:\SSIS\localhost\Default\Catalogs\SSISDB\Folders\Project1Folder\Projects\'Integration Services Project1'\Packages\ |
WHERE { $_.Name -eq 'Package.dtsx' }).Execute("false", $null)
PowerShell-Skript
Geben Sie am Anfang des folgenden Skripts geeignete Werte für die Variablen an, und führen Sie das Skript aus, um das SSIS-Paket auszuführen.
Hinweis
In diesem Beispiel wird die Windows-Authentifizierung verwendet. Ersetzen Sie das Argument Integrated Security=SSPI;
durch User ID=<user name>;Password=<password>;
, um die SQL Server-Authentifizierung zu verwenden. Wenn Sie eine Verbindung mit einem Azure SQL-Datenbank-Server herstellen, können Sie keine Windows-Authentifizierung verwenden.
# Variables
$SSISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"
$TargetServerName = "localhost"
$TargetFolderName = "Project1Folder"
$ProjectName = "Integration Services Project1"
$PackageName = "Package.dtsx"
# Load the IntegrationServices assembly
$loadStatus = [System.Reflection.Assembly]::Load("Microsoft.SQLServer.Management.IntegrationServices, "+
"Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL")
# Create a connection to the server
$sqlConnectionString = `
"Data Source=" + $TargetServerName + ";Initial Catalog=master;Integrated Security=SSPI;"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString
# Create the Integration Services object
$integrationServices = New-Object $SSISNamespace".IntegrationServices" $sqlConnection
# Get the Integration Services catalog
$catalog = $integrationServices.Catalogs["SSISDB"]
# Get the folder
$folder = $catalog.Folders[$TargetFolderName]
# Get the project
$project = $folder.Projects[$ProjectName]
# Get the package
$package = $project.Packages[$PackageName]
Write-Host "Running " $PackageName "..."
$result = $package.Execute("false", $null)
Write-Host "Done."
Nächste Schritte
- Erfahren Sie mehr über weitere Möglichkeiten, ein Paket auszuführen.
- Run an SSIS package with SSMS (Ausführen eines SSIS-Pakets mit SSMS)
- Run an SSIS package with Transact-SQL (SSMS) (Ausführen eines SSIS-Pakets mit Transact-SQL [SSMS])
- Run an SSIS package with Transact-SQL (VS Code) (Ausführen eines SSIS-Pakets mit Transact-SQL [VS Code])
- Run an SSIS package from the command prompt (Ausführen eines SSIS-Pakets über die Eingabeaufforderung)
- Run an SSIS package with C# (Ausführen eines SSIS-Pakets mit C#)