如何在不使用XP_CMDSHELL的情况下在SQL查询中映射网络驱动器

时间:2016-10-07 22:09:47

标签: sql-server tsql xp-cmdshell net-use

希望在SQL查询中使用不同的AD帐户映射网络驱动器。

我们的环境中禁用了XP_CMDSHELL。我可以在技术上打开它,然后“净使用”驱动器,并在查询中再次关闭它,但是正在寻找更清洁的解决方案??

1 个答案:

答案 0 :(得分:1)

您可以创建两个作业,每个作业只需一步(类型为Operating system (CmdExec),它将在cmd中启动命令。)

  • 在第一份工作net use中创建驱动器
  • 第二个 - delete

然后运行它们。

但请注意,在这种情况下,工作将开始,您需要等待几秒钟才能在wait delay的帮助下进行创作。

示例:

创建工作NetUse。 在步骤中创建一个类型为Operating system (CmdExec)的步骤 在命令部分写net use,如:

net use z: \\HOST\FOLDER pa$$word /user:DOMAIN\USER /savecred /p:yes
  

我想将我的z:驱动器映射到HOST上的FOLDER共享文件夹。我希望以另一个用户帐户连接我的 [/ user] ,其名称为USER,其存储在DOMAIN域中,密码为pa $$ word。

     

每次启动计算机时,我都不想手动映射此驱动器 [/ p:yes] ,我不想每次都输入用户名和密码的 [/ SAVECRED]

第一份工作已经完成。

第二个工作相同但有另一个命令:

net use z: /delete

然后你就可以开始了:

EXEC dbo.sp_start_job N'Job Name Here' 

它将延迟锻炼,因此您需要使用:

WAITFOR DELAY '00:10'; --10 seconds delay before next statement