我有一个具有脚本任务的SSIS包。这将使用C#执行powershell脚本删除(如果存在)并在特定凭据下创建到安全文件夹的映射驱动器。
驱动器号每次都会更改;它会被存储(新的驱动器号),然后通过一个变量发送回包,稍后我将使用该变量来创建到我要访问的Microsoft访问文件的链接服务器。
我基本上在脚本任务结束时运行以下代码
var netUse = Ltr + " \\\\" + server + "\\" + folder + " " + "/user:" + domain + "\\" + user + " " + pass + " /persistent:yes";
Process.Start("cmd.exe", "/C net use " + netUse);
登录并运行软件包后,一切正常。如果我使程序包自动运行以从代理运行,则它将失败,因为它找不到映射的驱动器。如果我在Powershell的“ net use”下检查驱动器的状态,则会将其显示为状态:不可用。
当实例或会话从脚本任务移动到包中的其他进程时,好像丢失了实例或会话。
是否有某种方式可以保持开放?我曾尝试在代理帐户下运行此程序作为测试,但仍然没有区别。
我相信,如果我使用完整的UNC路径,它会起作用,但是有一个原因我们不能这样做。