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

How to map network drive in SQL query without using XP_CMDSHELL

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

XP_CMDSHELL 在我们的环境中被禁用。从技术上讲,我可以打开它,然后 "net use" 驱动器,然后在查询中再次将其关闭,但我一直在寻找更清洁的解决方案??

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

  • 第一份工作net use创建驱动器
  • 秒-delete

然后 运行 他们。

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

示例:

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

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

I want to map my z: drive to the FOLDER shared folder on HOST. I want to connect as another user account I have [/user] by the name of USER that's stored on the DOMAIN domain with a password of pa$$word.

I don't want to map this drive manually every time I start my computer [/p:yes] and I don't want to enter my username and password each time [/savecred].

第一份工作完成。

第二份工作相同,但使用另一个命令:

net use z: /delete

然后你可以这样启动它:

EXEC dbo.sp_start_job N'Job Name Here' 

它会延迟一些锻炼,因此您需要使用:

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