Netzwerkfreigabe dauerhaft bereitstellen, ohne sich anmelden zu müssen? (Windows)

26

Auf einem Windows 2008 R2-Server (Standard) muss ein Netzwerklaufwerk installiert sein, ohne dass ein bestimmter Benutzer sich zuerst am Computer anmelden muss. Eine Art NFSMount via fstabauf Unix-Rechnern. Das Netzwerklaufwerk wird eine Freigabe über eine BlackArmor (Seagate) Appliance sein (von der ich annehme, dass sie Samba ausführt). Die Appliance kann bei Bedarf Mitglied der Domäne sein.

Bisher habe ich versucht mit Edit Group Policy-> Configuration-> Windows-> Scripts-> Startupwo ich es ausführen ließ

net use x: \\server\share /user:username password

Ohne Erfolg. Bei der Anmeldung wurde das Netzwerklaufwerk im Windows Explorer als nicht verbundenes Netzwerklaufwerk angezeigt.

adamo
quelle
1
Möchten Sie es für jeden verfügbar machen, der sich bei diesem Server anmeldet, oder muss es für einen Systemdienst auf einem bestimmten Laufwerksbuchstaben gespeichert sein?
sysadmin1138
1
Es muss sich auf einem bestimmten Laufwerksbuchstaben befinden, damit es von Anwendungen verwendet werden kann, die als Dienst auf dem Computer ausgeführt werden. Ich kann nicht veranlassen, dass der Dienst beim Starten eine "Nettonutzung" ausführt :(
adamo
Haben Sie versucht, die Richtlinieneinstellungen für den lokalen Computer zu bearbeiten und das Skript beim Start über Computerkonfiguration-> Windows-Einstellungen-> Skripts ausführen zu lassen?
thanosk

Antworten:

22

Dies ist laut diesem StackOverflow-Beitrag anscheinend möglich .

Kann ich vor dem Posten des Inhalts der Antwort jedoch vorschlagen, dass dies zu kompliziert ist?

In Situationen wie diesen, in denen für einen beschissenen Code ein angemeldeter Benutzer erforderlich ist (z. B. Domino-Server, Murren ), habe ich ein Dienstkonto erstellt, das immer auf einem bestimmten Server angemeldet sein soll, und ein Skript für die automatische Anmeldung eingerichtet. Damit sich der Computer beim Neustart automatisch mit dem angegebenen Konto anmeldet. Ich würde vorschlagen, dass die einfachere und besser unterstützbare Lösung für Ihr Problem darin besteht, dasselbe zu tun und das Laufwerk für diesen Dienstkontobenutzer anhand von Gruppenrichtlinien oder Anmeldeskripten zuzuordnen.

Sollten Sie dennoch fest entschlossen sein, dies ohne Benutzerkontext zu versuchen, lesen Sie das Folgende. Es ist ein Hack, also benutze es auf eigenes Risiko und alles:

Für diesen Hack benötigen Sie die SysinternalsSuite von Mark Russinovich: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx

Erster Schritt: Öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten für cmd.exe (Als Administrator ausführen)

Schritt 2: Wechseln Sie mit PSExec.exe erneut zum Stammverzeichnis: Navigieren Sie zu dem Ordner, der SysinternalsSuite enthält, und führen Sie den folgenden Befehl aus: "psexec -i -s cmd.exe". Sie befinden sich nun innerhalb einer Eingabeaufforderung mit dem Namen "nt authority \ system" und Sie kann dies durch Eingabe von "whoami" beweisen. Das -i wird benötigt, da Laufwerkszuordnungen mit dem Benutzer interagieren müssen

Schritt 3: Erstellen Sie das permanent zugeordnete Laufwerk als SYSTEM-Konto mit dem folgenden Befehl "net use z: \ servername \ sharedfolder / persistent: yes".

So einfach ist das!

WARNUNG: Sie können diese Zuordnung nur so entfernen, wie Sie sie erstellt haben, und zwar aus dem SYSTEM-Konto. Wenn Sie es entfernen müssen, befolgen Sie die Schritte 1 und 2, aber ändern Sie den Befehl in Schritt 3 in: "net use z: / delete"

ANMERKUNG: Das neu erstellte zugeordnete Laufwerk wird jetzt für ALLE Benutzer dieses Systems angezeigt, sie sehen es jedoch als "Getrenntes Netzwerklaufwerk (Z :)". Lass dich nicht vom Namen täuschen. Es kann behaupten, getrennt zu sein, aber es wird für alle funktionieren. So können Sie feststellen, dass dieser Hack von M $ nicht unterstützt wird.

Aus Kommentaren:

Damit es nach einem Neustart funktioniert, erstellen Sie ein Skript, das nur net use z: \ servername \ sharedfolder enthält, und legen Sie fest, dass es beim Start des Computers ausgeführt wird (technet.microsoft.com/en-us/library/cc770556.aspx) das SYSTEM-Konto, also keine Notwendigkeit für psexec.

HopelessN00b
quelle
Bei Verwendung einer Netzwerkfreigabe mit Benutzername und Kennwort scheint dies nicht zu funktionieren. Ich sehe das "Disconnected Network Drive", kann aber nicht auf das "Wrong User Name and Password" zugreifen.
Spankmaster79
1
@ spankmaster79 < shrug > Sie sind sich nicht sicher, warum Sie diesen Fehler bekommen ( Kontosperrung , vielleicht?), aber wenn Sie eine neue oder verwandte Frage haben, empfehle ich, sie als Frage auf der Hauptseite zu stellen, anstatt sie hier zu kommentieren .
HopelessN00b
4

Erstellen Sie die Batchdatei, in der dieser Befehl ausgeführt wird. konvertieren Sie es in einen Windows-Dienst. Stellen Sie sicher, dass dieser Dienst beim Start von Windows gestartet wird.

Es kann hilfreich sein: Wie erstelle ich einen Dienst, auf dem eine BAT-Datei unter Windows 2008 Server ausgeführt wird?

Farhan
quelle
Scheint, als hättest du mein Wort wörtlich genommen. Glaubst du, dass eine Anmeldung erforderlich ist, damit der Windows-Dienst ausgeführt werden kann? Ich habe einen Tippfehler gemacht, den ich korrigiert habe
Farhan
2

Sie können auch versuchen, Sysinternals Suite zu C: \ SysinternalsSuite hinzuzufügen

  1. Führen Sie ein erhöhtes cmdFenster aus
  2. cd c:\sysint*
  3. psexec -i -s cmd.exe
  4. whoami Um sicherzustellen, dass Sie keine Autorität sind
  5. net use x: \\PathToDrive oder share /persistent:yes

Es sollte als nicht verbundenes Laufwerk angezeigt werden und um es automatisch zu aktivieren, erstellen Sie einfach ein Startskript mit Schritt 5. Sie müssen die Schritte 1 - 5 ausführen, um das Mapping zu löschen. Ändern Sie lediglich 5, um die Nettonutzung x: / delete widerzuspiegeln

DzSoundNirvana
quelle
0

Ich habe eine Lösung gefunden, um ein Laufwerk dauerhaft zu mounten. Das Laufwerk wird jedoch nicht in jeder Sitzung bereitgestellt. Ich habe das auf Windows Server 2019 gemacht.

Nehmen wir an, wir möchten ein Verzeichnis mit dem Namen target_dirlocated on mounten target_server. Mein Benutzername ist my_usernameund mein Passwort my_passwordauf einer Domain namens MY_DOMAIN. Lassen Sie es uns auf das T:Laufwerk mounten .

Erstellen Sie zunächst eine neue Textdatei an einer beliebigen Stelle (z. B. auf Ihrem Desktop). Öffne es und analysiere dies:

@ECHO OFF
net use s: \\target_server\target_dir /persistent:yes

Benennen Sie es dann in um mount_drive.batund verschieben Sie diese Datei nach C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup.

Stellen Sie sicher, dass die Datei keine .txtDatei mehr ist.

Drücken Sie nun Win+R, Typ gpedit.mscund das laufen lokale Gruppenrichtlinien - Editor .

Navigieren Sie zu Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)und doppelklicken Sie auf Startup.
Klicken Sie auf Add...dann Browse..., wählen Sie die Datei , die Sie gerade bewegt haben.

Dann wechseln Sie zu Computer Configuration\Administrative Templates\System\Logon, setzen Sie Always wait for the network at computer startup and logonauf enabledSpeichern und schließen.

Öffnen Sie ein Terminal mit erhöhten Rechten, um Ihre Anmeldeinformationen zu speichern. Konfigurieren Sie dann Windows, um dieses Laufwerk nach einer Zeitüberschreitung nicht zu trennen.

cmdkey /add:target_server /user:MY_DOMAIN\my_username /pass:my_password
NET CONFIG SERVER /AUTODISCONNECT:-1

Sie können optional überprüfen, ob alles funktioniert, indem Sie ausführen C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\mount_drive.bat

Starten Sie neu

vdsbenoit
quelle