So ordnen Sie einen anderen Server über SQL Server Management Studio zu

10

Ich versuche, einen anderen Server zuzuordnen, indem ich den Befehl gebe

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

Ich habe einen Fehler dabei:

Netzwerkpfad nicht gefunden

Ich kann jedoch einen anderen Server manuell zuordnen. Bitte helfen Sie mir, das zu klären.

Anto
quelle
Hallo, um nicht markiert zu werden oder deine Frage von den Mods löschen zu lassen, gib bitte weitere Informationen an. Wie versuchen Sie, mithilfe von SQL Server Management Studio eine Verbindung zu einem anderen Server herzustellen? Benutzt du Powershell? XP_CMDSHELL? Ihr NET USE-Befehl ist ebenfalls völlig falsch. Ich sehe nicht, wie das irgendwo innerhalb oder außerhalb von SQL Server funktionieren würde. Sie benötigen 2 Backslashes (\) und einen Ordner, damit es funktioniert.
Ali Razeghi
Gibt es einen Tippfehler in der Net Use Statement? Ich würde so etwas erwarten wie:NET USE H:\ \\server\share 1234abc /USER:cranew /PERSISTENT:yes
Stuart Moore
Die Zuordnung eines solchen Netzlaufwerks ist aus den in den folgenden Antworten genannten Gründen keine gute Idee. Warum würden Sie stattdessen nicht einfach einen UNC-Pfad verwenden?
Daniel Hutmacher
@ DanielHutmacher, und wie würde das bitte aussehen?
Paul-Sebastian Manole
@ Paul-SebastianManole anstatt zu verwenden H:\ , könnten Sie einfach den vollständigen Pfad aufschreiben , \\server\share\folder\filename.bak. Dies funktioniert einwandfrei für Backups, OPENROWSET usw., vorausgesetzt, Sie haben die Berechtigungen für das Dienstkonto ordnungsgemäß eingerichtet.
Daniel Hutmacher

Antworten:

6

Dies ist eher eine NET USEFrage als eine SSMS / SQL Server-Frage.

NET USE hat die Syntax:

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

Ich würde also erwarten, dass Ihr Befehl so aussieht:

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

Ordnen Sie keine Netzlaufwerke zu und erwarten Sie, dass diese vorhanden sind. Sichern Sie einfach direkt auf den Netzwerkpfad.

Die Verwendung zugeordneter Laufwerke wird schnell schwierig, wenn Sie davon ausgehen, dass der Laufwerksbuchstabe beim nächsten Mal verfügbar sein wird. Was passiert, wenn Sie dem Server später eine weitere Festplatte hinzufügen und diesen Laufwerksbuchstaben verwenden möchten? Was passiert, wenn Windows das Laufwerk trennt, um den Netzwerk-Socket zurückzugewinnen?

mrdenny
quelle
2

Nach dem Neustart muss der Server den Befehl plase solution save ausführen ...

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
quelle