Comment mapper un autre serveur via SQL Server Management Studio

10

J'essaie de mapper un autre serveur en donnant la commande

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

J'ai eu une erreur avec ceci:

chemin réseau introuvable

Mais je peux mapper un autre serveur manuellement. S'il vous plaît, aidez-moi à résoudre ce problème.

Anto
la source
Bonjour, pour éviter d'être signalé ou d'avoir votre question supprimée par les mods, veuillez fournir plus d'informations. Comment essayez-vous de vous connecter à un autre serveur en utilisant exactement SQL Server Management Studio? Utilisez-vous PowerShell? XP_CMDSHELL? Votre commande NET USE est également totalement erronée. Je ne vois pas comment cela fonctionnerait n'importe où, à l'intérieur ou à l'extérieur de SQL Server. Vous avez besoin de 2 barres obliques inverses (\) et d'un dossier pour que cela fonctionne.
Ali Razeghi du
Y a-t-il une faute de frappe dans la déclaration d'utilisation nette? Je m'attendais à quelque chose comme:NET USE H:\ \\server\share 1234abc /USER:cranew /PERSISTENT:yes
Stuart Moore
Mapper un lecteur réseau comme celui-ci n'est vraiment pas une bonne idée, pour les raisons mentionnées dans les réponses ci-dessous. Pourquoi n'utilisez-vous pas simplement un chemin UNC à la place?
Daniel Hutmacher
@DanielHutmacher, et à quoi cela ressemblerait-il, s'il vous plaît!?
Paul-Sebastian Manole
@ À la place Paul-SebastianManole d'utiliser H:\ , vous pouvez simplement écrire le chemin complet, \\server\share\folder\filename.bak. Cela fonctionne parfaitement pour les sauvegardes, OPENROWSET, etc., à condition que vous ayez correctement configuré les autorisations du compte de service.
Daniel Hutmacher

Réponses:

6

C'est plus une NET USEquestion qu'une question SSMS / SQL Server.

NET USE a la syntaxe:

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

Donc, je m'attendrais à ce que votre commande ressemble à ceci:

EXEC xp_cmdshell 
    'NET USE H: \\568.256.8.358\backup_147 1234abc /USER:cranew /PERSISTENT:yes'
孔夫子
la source
2

Ne mappez pas les lecteurs réseau et ne vous attendez pas à ce qu'ils soient là. Sauvegardez simplement le chemin réseau directement.

L'utilisation de lecteurs mappés devient délicate rapidement lorsque vous commencez à supposer que la lettre de lecteur sera disponible la prochaine fois. Que se passe-t-il lorsque vous ajoutez un autre disque dur au serveur ultérieurement et que vous souhaitez utiliser cette lettre de lecteur? Que se passe-t-il lorsque Windows déconnecte le lecteur pour récupérer la prise réseau?

mrdenny
la source
2

après le redémarrage, le serveur doit exécuter la commande plase solution save command ...

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
saeed
la source