Cómo asignar otro servidor a través de SQL Server Management Studio

10

Estoy tratando de asignar otro servidor dando el comando

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

Tengo un error con esto:

ruta de red no encontrada

Pero puedo asignar otro servidor manualmente. Por favor, ayúdame a resolver esto.

Anto
fuente
Hola, para evitar ser marcado o que los mods eliminen tu pregunta, proporciona más información. ¿Cómo intenta conectarse a otro servidor utilizando SQL Server Management Studio exactamente? ¿Estás usando PowerShell? XP_CMDSHELL? Su comando NET USE también está totalmente equivocado. No veo cómo funcionaría eso en ningún lugar, dentro o fuera de SQL Server. Necesita 2 barras invertidas (\) y una carpeta para que funcione.
Ali Razeghi
¿Hay un error tipográfico en la declaración de uso neto? Esperaría algo como:NET USE H:\ \\server\share 1234abc /USER:cranew /PERSISTENT:yes
Stuart Moore
Mapear una unidad de red como esta realmente no es una buena idea, por las razones mencionadas en las respuestas a continuación. ¿Por qué no usarías una ruta UNC en su lugar?
Daniel Hutmacher
@DanielHutmacher, y ¿cómo sería eso, por favor?
Paul-Sebastian Manole
@ Pablo-SebastianManole en lugar de utilizar H:\ , sólo podría escribir la ruta completa, \\server\share\folder\filename.bak. Esto funciona perfectamente bien para copias de seguridad, OPENROWSET, etc., siempre que haya configurado los permisos de la cuenta de servicio correctamente.
Daniel Hutmacher

Respuestas:

6

Esto es más una NET USEpregunta que una pregunta de SSMS / SQL Server.

NET USE tiene la sintaxis:

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

Entonces, esperaría que su comando se vea así:

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

No asigne unidades de red y espere que estén allí. Simplemente haga una copia de seguridad en la ruta de red directamente.

El uso de unidades mapeadas se vuelve complicado rápidamente cuando comienza a suponer que la letra de la unidad estará disponible la próxima vez. ¿Qué sucede cuando agrega otro disco duro al servidor más tarde y desea usar esa letra de unidad? ¿Qué sucede cuando Windows desconecta la unidad para recuperar el zócalo de la red?

mrdenny
fuente
2

después de reiniciar el servidor debe ejecutar el comando 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
fuente