如何通过SQL Server Management Studio映射另一台服务器


10

我正在尝试通过给出命令来映射另一台服务器

EXEC xp_cmdshell 
    'NET USE H:\\568.256.8.358\backup_147 1234abc /USER:cranew /PERSISTENT:yes'

我有一个错误:

找不到网络路径

但是我能够手动映射另一台服务器。请帮我解决这个问题。


您好,为避免被标记或使您的问题被mods删除,请提供更多信息。您如何尝试完全使用SQL Server Management Studio连接到另一台服务器?您正在使用Powershell吗?XP_CMDSHELL?您的NET USE命令也是完全错误的。我看不到它在SQL Server内部或外部的任何地方如何工作。您需要2个反斜杠(\)和一个文件夹才能正常工作。
阿里·拉泽吉

净使用声明中是否有错字?我预计会发生以下情况:NET USE H:\ \\server\share 1234abc /USER:cranew /PERSISTENT:yes
Stuart Moore

由于以下答案中提到的原因,映射这样的网络驱动器确实不是一个好主意。为什么不只使用UNC路径呢?
Daniel Hutmacher '16

@DanielHutmacher,请看起来怎么样!?
Paul-Sebastian Manole

@ Paul-SebastianManole而不是使用H:\ ,您只需写出完整路径,\\server\share\folder\filename.bak。如果您已经正确设置了服务帐户权限,那么这对于备份,OPENROWSET等来说非常合适。
Daniel Hutmacher

Answers:


6

NET USE比SSMS / SQL Server问题更多。

NET USE具有以下语法:

net use [{DeviceName | *}] 
   [\\\\ComputerName\ShareName[\volume]] [{Password | *}]] 
   [/user:[DomainName\]UserName] [/user:[DottedDomainName\]UserName] 
   [/user: [UserName@DottedDomainName] [/savecred] [/smartcard] 
   [{/delete | /persistent:{yes | no}}]

因此,我希望您的命令如下所示:

EXEC xp_cmdshell 
    'NET USE H: \\568.256.8.358\backup_147 1234abc /USER:cranew /PERSISTENT:yes'

2

不要映射网络驱动器,并期望它们在那里。只需直接备份到网络路径即可。

当您开始假设驱动器盘符下次将可用时,使用映射驱动器将变得非常棘手。当您以后向服务器添加另一个硬盘驱动器并想使用该驱动器号时会发生什么?Windows断开驱动器以回收网络套接字时会发生什么?


2

重新启动后,服务器必须执行命令plase solution save命令...

Use Master
GO

EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO

exec xp_cmdshell 'net use  \\ip\xxx pass /user:xxx /persistent:no'

Use Master
GO

EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

EXEC master.dbo.sp_configure 'xp_cmdshell', 0
RECONFIGURE WITH OVERRIDE
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.