2017-04-13 101 views
1

我試圖通過Powershell執行SSIS包。我也爲它做了一些參數。我用下面的命令:通過POWERSHELL執行包執行

DTExec /ISSERVER "\SSISDB\folderB\Integration Services Project17\Package.dtsx" /SERVER "." /Envreference 2 /Par "$Project::ProjectParameter(Int32)";1 /Par "Parameter(Int32)";21 /Par "CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb /Par "$ServerOption::SYNCHRONIZED(Boolean)";True 

我更換了參數與我所需要的那些,當我試圖執行它,它告訴我,該參數CM.sqlcldb2.SSIS_repro.InitialCatalog不存在。我在互聯網上的某個地方發現這個參數與Connection Manager有關。但是哪個連接管理器?有人知道該參數的含義嗎?

預先感謝

回答

0

運行DTExecUI(對於DTEXEC一個GUI),並打開內SSIS包。

在DTExecUI GUI中,您能否看到CM.sqlcldb2.SSIS_repro作爲連接管理器存在?

DTExecUI將爲您提供手動編輯所有可編輯參數/配置的功能。

一旦你修改了所有的參數/ config,DtExecUI的最後一部分叫做'命令行'會給你生成的命令行,然後可以傳遞給`dtexec'。您可以複製並粘貼此文件並在PowerShell中使用(或永遠)。

另外,參數有一些雙引號,其中包含以$開頭的單詞。 PowerShell會嘗試插入這些變量。

試試這個:

$dtexecParams = @(
    '/ISSERVER',  "\SSISDB\folderB\Integration Services Project17\Package.dtsx" 
    , '/SERVER',  '.' 
    , '/Envreference', '2' 
    , '/Par',   '"$Project::ProjectParameter(Int32)";1' 
    , '/Par',   '"Parameter(Int32)";21' 
    , '/Par',   '"CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb' 
    , '/Par',   '"$ServerOption::SYNCHRONIZED(Boolean)";True' 
) 
@dtexec $dtexecParams 

...在那裏我已經包裹起來需要雙引號,單引號中的參數,停止插補。我還創建了一組參數以傳遞到dtexec命令,因此更容易看到傳入的內容。

+0

謝謝您的answe TechSpud。我運行DTExecUI,它給了我從哪裏找不到包的packge源的選項。我無法在SSIS目錄上找到一個包。我怎樣才能做到這一點? – user2854939

+0

不確定。改爲嘗試使用SSMS瀏覽Integration Services目錄,然後右鍵單擊包並選擇配置。這將向您顯示連接管理器和可用屬性。難道是你試圖設置的連接類型,沒有InitialCatalog屬性? – TechSpud