有沒有辦法連接到一個網絡驅動器,該網絡驅動器需要與運行該軟件包的用戶的用戶名/密碼不同的用戶名/密碼?SSIS:使用不同的用戶名和密碼訪問網絡驅動器
我需要從遠程服務器複製文件。現在我在Windows資源管理器中映射網絡驅動器,然後執行文件系統任務。但是,最終該軟件包將從另一臺機器自動運行,並且需要自行映射網絡驅動器。這可能嗎?
有沒有辦法連接到一個網絡驅動器,該網絡驅動器需要與運行該軟件包的用戶的用戶名/密碼不同的用戶名/密碼?SSIS:使用不同的用戶名和密碼訪問網絡驅動器
我需要從遠程服務器複製文件。現在我在Windows資源管理器中映射網絡驅動器,然後執行文件系統任務。但是,最終該軟件包將從另一臺機器自動運行,並且需要自行映射網絡驅動器。這可能嗎?
爲什麼不使用FTP任務將文件傳送到本地計算機?在本地機器上運行SSIS。在二進制文件中使用FTP傳輸時,它的速度非常快。請記住,SSIS的ROW分界符應該是LF,而不是CRLF,因爲二進制FTp不會將LF(unix)轉換爲CRLF(windows)
您必須映射網絡驅動器,以下是我正在使用的示例現在:
profile = "false"
landingPadDir = Dts.Variables("strLandingPadDir").Value.ToString
resultsDir = Dts.Variables("strResultsDir").Value.ToString
user = Dts.Variables("strUserName").Value.ToString
pass = Dts.Variables("strPassword").Value.ToString
driveLetter = Dts.Variables("strDriveLetter").Value.ToString
objNetwork = CreateObject("WScript.Network")
CheckDrive = objNetwork.EnumNetworkDrives()
If CheckDrive.Count > 0 Then
For intcount = 0 To CheckDrive.Count - 1 Step 2 'if drive is already mapped, then disconnect it
If CheckDrive.Item(intcount) = driveLetter Then
objNetwork.RemoveNetworkDrive(driveLetter)
End If
Next
End If
objNetwork.MapNetworkDrive(driveLetter, landingPadDir, profile, user, pass)
從那裏只使用driveLetter並通過映射的驅動器訪問文件。
我有一個問題(這導致我在這裏)與訪問兩個共享驅動器和驅動器之間進行一些複製/移動操作的新的腳本,我從SSIS一個錯誤,指出:
This network connection has files open or requests pending.
at Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack, Boolean IgnoreReturn)
at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)
at ScriptTask_3c0c366598174ec2b6a217c43470f581.ScriptMain.Main()
這只是在第二次運行的過程中,如果我第三次運行它,一切正常,所以我猜連接沒有正確關閉,或者它沒有等待複製/移動到在繼續前進或完成之前完成,但我無法找到防止出現此錯誤的「關閉」或「刷新」命令。如果您有任何解決方案,請讓我知道,但上面的代碼應該能夠使用備用憑據映射驅動器,並允許您訪問該共享。
扎克
什麼是objNetwork? – toha 2016-08-09 04:14:56
可以使用執行進程任務的「net use」命令創建映射驅動器。這裏的任務的屬性應該如何設置:
可執行文件:淨
參數:使用\服務器\ SomeShare你的密碼/用戶:域\ YourUser
任何下列文件系統任務執行進程將能夠訪問這些文件。
備選方法
這Sql Server Select Article覆蓋細節的步驟,但基本是:
1)創建一個「執行進程任務」到網絡驅動器映射(這映射到Z :)
Executable: cmd.exe
Arguments: /c "NET USE Z: "\\servername\shareddrivename" /user:mydomain\myusername mypassword"
2)然後運行「文件系統任務」執行復制。請記住,目標「平面文件連接」必須將的「DelayValidation」設置爲True,因爲z:\ suchandsuch.csv在設計時不存在。
3)最後,取消映射當你與另一個進行驅動「執行進程任務」
Executable: cmd.exe
Arguments: /c "NET USE Z: /delete"
爲什麼你不只是給用戶或進程中運行的組件所必需的權限?如果你解釋爲什麼你有這個限制,你可能會得到更好的答案。與此同時,NET USE呢? – Pondlife 2010-11-24 16:29:46
我們將以擁有權限的用戶身份運行它。問題在於它是AS400上的映射驅動器,我們通常使用名稱中包含超過10個字符和下劃線的帳戶運行我們的所有作業 - 這在AS400上不受支持。爲了保持一致性,我們希望用同一個賬戶來運行這個工作,並且僅僅通過另一個賬戶上的400進行驗證......但是我們認爲這是不值得的,所以可能會放棄。 。 – nosirrahcd 2010-11-26 21:38:16