Jak zmapować inny serwer za pomocą SQL Server Management Studio

10

Próbuję zmapować inny serwer, wydając polecenie

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

Mam z tym błąd:

nie znaleziono ścieżki sieciowej

Ale jestem w stanie ręcznie zmapować inny serwer. Proszę o pomoc w rozwiązaniu tego problemu.

Anto
źródło
Witaj, aby uniknąć bycia oznaczonym lub usunięcia pytania przez modów, podaj więcej informacji. W jaki sposób próbujesz połączyć się z innym serwerem za pomocą SQL Server Management Studio dokładnie? Czy używasz programu PowerShell? XP_CMDSHELL? Twoje polecenie NET USE jest również całkowicie błędne. Nie widzę, jak by to działało w dowolnym miejscu, wewnątrz lub na zewnątrz SQL Server. Potrzebujesz 2 ukośników odwrotnych (\) i folderu, aby działał.
Ali Razeghi,
Czy w instrukcji net use występuje literówka? Spodziewałbym się czegoś takiego:NET USE H:\ \\server\share 1234abc /USER:cranew /PERSISTENT:yes
Stuart Moore,
Mapowanie takiego dysku sieciowego tak naprawdę nie jest dobrym pomysłem z powodów wymienionych w odpowiedziach poniżej. Dlaczego zamiast tego nie użyłbyś ścieżki UNC?
Daniel Hutmacher
@DanielHutmacher i jak by to wyglądało, proszę !?
Paul-Sebastian Manole
@ Paul-SebastianManole zamiast używać H:\ , można po prostu napisać pełną ścieżkę \\server\share\folder\filename.bak. Działa to doskonale w przypadku kopii zapasowych, OPENROWSET itp., Pod warunkiem, że poprawnie skonfigurowałeś uprawnienia konta usługi.
Daniel Hutmacher

Odpowiedzi:

6

To bardziej NET USEpytanie niż pytanie SSMS / SQL Server.

NET USE ma składnię:

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

Spodziewam się, że twoje polecenie będzie wyglądać tak:

EXEC xp_cmdshell 
    'NET USE H: \\568.256.8.358\backup_147 1234abc /USER:cranew /PERSISTENT:yes'
孔夫子
źródło
2

Nie mapuj dysków sieciowych i oczekuj, że tam będą. Wystarczy wykonać kopię zapasową bezpośrednio do ścieżki sieciowej.

Używanie mapowanych dysków staje się trudne, gdy zaczynasz zakładać, że litera dysku będzie dostępna następnym razem. Co się stanie, jeśli później dodasz inny dysk twardy do serwera i chcesz użyć tej litery dysku? Co się stanie, gdy system Windows odłączy dysk, aby odzyskać gniazdo sieciowe?

mrdenny
źródło
2

po restarcie serwer musi wykonać polecenie plase rozwiązanie zapisz polecenie ...

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
źródło