Zamapuj dysk sieciowy dla użytkownika SYSTEM w systemie Windows

6

Mam oprogramowanie, które potrzebuje dostępu do plików tak, jakby były lokalne dla komputera, więc po prostu zamapowałem dysk sieciowy za pomocą litery net use. Działa to zgodnie z oczekiwaniami, jednak samo oprogramowanie działa jako usługa z kontem użytkownika SYSTEM, nie jest to opcjonalne ani konfigurowalne. Obecnie mam dysk zamapowany w użytkowniku, z którego wykonałem net use.

Więc moje pytanie brzmi: jak zmapować dysk, aby konto SYSTEM miało do niego dostęp?

Jak wskazano w tym pytaniu, nie ma możliwości zmapowania dysku dla wszystkich użytkowników.

W bardziej ogólnym przypadku, jak zamontować zdalną lokalizację w lokalnym systemie plików dla całego systemu (w czasie rozruchu jest całkowicie w porządku), w taki sam sposób jak w Linuksie.

Javier Mr
źródło

Odpowiedzi:

7

Prostym rozwiązaniem za pomocą cmd (z adminami) bez plików wsadowych byłoby:

schtasks /create /tn "my_mount" /tr "net use V: \\hostname\directory /persistent:yes" /sc onstart /RU SYSTEM

następnie następuje restart serwera lub wykonanie:

schtasks /run /tn "my_mount"

EDYCJA: użytkownik alfa_989 sutgests śledzi rozszerzenie polecenia, którego nie testowałem. Ale nadal może być pomocne dla kogoś:

schtasks / create / tn "my_mount" / tr "net use V: \ hostname \ directory / persistent: yes" / sc onstart / RU SYSTEM / RL HIGHEST

był
źródło
Wow, samo uruchomienie zaplanowanego zadania wpływa na usługę, jeśli zostanie zrestartowana. Niesamowite.
węgorz ghEEz
2

Miałem ten sam problem, gdy zadanie masowego kopiowania (BCP) na serwerze SQL wymagało zapisania pliku na innym serwerze zarządzanym przez inną grupę w organizacji.

Sztuką jest zmapowanie dysku jako użytkownika, którego używa zadanie BCP. Mapujesz dysk jako dedykowane konto usługi Active Directory, które ma uprawnienia do żądanego miejsca docelowego, które niektórzy nazywają kontem usługi. Musiałem współpracować z moimi ludźmi z AD, aby uzyskać jedną konfigurację. Aby dowiedzieć się, jakie konto użytkownika jest używane przez BCP, uruchom tę komendę w oknie zapytania SQL Server:

EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%

Podczas mapowania dysku użyj whoamiw wierszu polecenia.

W moim przypadku nie mogłem być zalogowany do SQL Server jako konto SYSTEM, więc zbudowałem zadanie wsadowe, które można następnie wykonać za pomocą Harmonogramu zadań, ale uruchomić jako konto SYSTEM . Umieszczam polecenia w zadaniu wsadowym, aby zapisać wyniki do pliku tekstowego, ponieważ nie byłbym w stanie go zobaczyć.

** Zadanie wsadowe poniżej **

ECHO ON

ECHO This will map the drive, but is being run by task scheduler AS the user SYSTEM

ECHO which should make it accessible to the user SYSTEM

ECHO List the existing drives first.

net use >> c:\Test\SystemNetUseOutput.txt

net use R: \\MyRemoteServer\MyDirectory\ /P:Yes /u:MyDomain\MyUsername pa$$word

ECHO the /P switch makes the drive remain after reboot

ECHO List the existing drives with the new mapping

net use >> c:\Test\SystemNetUseOutput.txt

ECHO See what user this batch job ran under

whoami >> c:\Test\SystemNetUseOutput.txt

ECHO need to exit to allow the job to finish

EXIT

** Mam nadzieję, że pomoże to komuś innemu **

Phil B.
źródło
2

Napotkałem ten problem podczas próby użycia CrashPlan do utworzenia kopii zapasowej udziału sieciowego. Ponieważ usługa CrashPlan działa jako SYSTEMużytkownik, nie ma dostępu do udziałów sieciowych, które zostały zmapowane z kont użytkowników. CrashPlan zapewnia obejście na komputerach z systemem Windows.
Obejście to rozwiązało problem i pozwoliło usłudze CrashPlan na dostęp do moich udziałów sieciowych. Powinno to również dotyczyć Twojego problemu, ponieważ ma tę samą pierwotną przyczynę.

Artykuł CrashPlan na ten temat :
http://support.code42.com/../Mounting_Networked_Storage_Or_NAS_Devices_For_Backup

Obejście CrashPlan dla systemu Windows :
http://support.code42.com/CrashPlan/Latest/Backup/Back_Up_a_Windows_Network_Drive

Podsumowanie :

  1. Utwórz plik wsadowy, który montuje dysk (dołącz net usepolecenie, którego już używałeś).
  2. Użyj Harmonogramu zadań, aby utworzyć zadanie, które automatycznie uruchamia ten plik wsadowy podczas uruchamiania. Zadanie można ustawić tak, aby było uruchamiane jako SYSTEMużytkownik.
bdr9
źródło