Share via


使用 PowerShell 執行 SSIS 套件

適用於:SQL Server Azure Data Factory 中的 SSIS Integration Runtime

本快速入門示範如何使用 PowerShell 指令碼,來連線至資料庫伺服器並執行 SSIS 套件。

先決條件

Azure SQL Database 伺服器會接聽連接埠 1433。 如果您要嘗試透過公司防火牆連線至 Azure SQL Database 伺服器,則必須在公司防火牆中開啟此連接埠,讓您成功連線。

支援的平台

您可以使用本快速入門中的資訊,在下列平台上執行 SSIS 套件:

您不能使用本快速入門中的資訊在 Linux 上執行 SSIS 套件。 如需在 Linux 上執行套件的詳細資訊,請參閱使用 SSIS 在 Linux 上擷取、轉換和載入資料

針對 Azure SQL Database,請取得連線資訊

若要在 Azure SQL Database 上執行套件,請取得連線至 SSIS 目錄資料庫 (SSISDB) 所需的連線資訊。 在下列程序中,您需要完整伺服器名稱和登入資訊。

  1. 登入 Azure 入口網站
  2. 從左側功能表中選取 [SQL 資料庫],然後選取 [SQL 資料庫] 頁面上的 SSISDB 資料庫。
  3. 在您資料庫的 [概觀] 頁面上,檢閱完整伺服器名稱。 若要顯示 [按一下以複製] 選項,請將滑鼠指標暫留在伺服器名稱上。
  4. 如果您忘記 Azure SQL Database 伺服器登入資訊,請巡覽至 [SQL Database 伺服器] 頁面來檢視伺服器管理員名稱。 如有需要,您可以重設密碼。
  5. 按一下 [顯示資料庫連接字串]
  6. 檢閱完整 ADO.NET 連接字串。

SSIS PowerShell 提供者

您可以使用 SSIS PowerShell 提供者來連線至 SSIS 目錄並在其內執行套件。

以下是如何使用 SSIS PowerShell 提供者在套件目錄中執行 SSIS 套件的基本範例。

(Get-ChildItem SQLSERVER:\SSIS\localhost\Default\Catalogs\SSISDB\Folders\Project1Folder\Projects\'Integration Services Project1'\Packages\ |
WHERE { $_.Name -eq 'Package.dtsx' }).Execute("false", $null)

PowerShell 指令碼

為下列指令碼上方的變數提供適當的值,然後執行指令碼以執行 SSIS 套件。

注意

下列範例使用 Windows 驗證。 若要使用 SQL Server 驗證,請使用 User ID=<user name>;Password=<password>; 取代 Integrated Security=SSPI; 引數。 如果要連線至 Azure SQL Database 伺服器,您無法使用 Windows 驗證。

# 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."

後續步驟