derm1cha
Goto Top

Netzlaufwerk per Skript beim Start sicher verbinden

Hallo,

ich hab das Problem das drei unserer Firmenpcs die Maschinen steuern nach einen Neustart oft das eine ihnen zugehörige Netzlaufwerk nicht zu 100% verbinden.
Dies sieht man daran das dann das rote X am Netzlaufwerk ist.

Da die Mitarbeiter dort oft nur im Notfall diese Maschinen und PCs neu starten bzw. bei Wartungen, vergessen diese dann die Verbindung zum Netzlaufwerk zu prüfen.
Im Normallfall reicht ein einfaches öffnen des Netzlaufwerkes damit es wieder funktioniert.

Hier ist aber der Knackpunkt.

Wenn das Netzlaufwerk nicht richtig verbunden ist schreibt der Pc die Fehler die in einer Log Datei festgehalten werden nicht weg.
Diese gehen dann einfach verloren.

Daher ist es nun mein Plan ein Skript in den Autostart zulegen was entweder 1. die Verbindung prüft und ggf. erneuert
oder
2. die Verbindung erst trennt und dann neu herstellt.

Ich denke 2. ist einfacher zu realisieren.

Ich habe dazu folgende Zeilen schon zusammen getragen, leider funktionieren die nicht richtig.
Da ich vorher noch nie Skripte selber bauen musste hab ich auch keine Ahnung warum....


@echo off
cls
echo Verbinde Netzlaufwerk
echo
net use X: /DELETE
net use X: \\serverip-adresse\ordner\unterordner\unterordner\zielordner\ /user:[Domäne.local]\benutzerkonto benutzerkennwort
echo
echo Verbindung erfolgreich
exit


Vlt hab ich auch nen Knoten im Kopf oder sowas, ich hoffe jedenfalls nicht ganz falsch zu liegen und würde mich über eure Hilfe sehr freuen.

Content-ID: 463356

Url: https://administrator.de/contentid/463356

Ausgedruckt am: 26.11.2024 um 04:11 Uhr

TomTomBon
TomTomBon 18.06.2019 um 09:25:08 Uhr
Goto Top
Moin Moin,

Ich habe nach Problemen dieser Art folgende cmd bei mir erstellt:

@echo off
net use /persistent:NO
choice /N /C "123" /T 10 /CS /D "1" /M "please wait / bitte warten..."  
IF %ERRORLEVEL%==1 GOTO end0
IF %ERRORLEVEL%==2 GOTO end0
IF %ERRORLEVEL%==3 GOTO yes
GOTO end0

:yes
echo Sie haben das Script abgebrochen!
echo You have cancel the script!
GOTO :end1

:end0
@ECHO off
ping MAINSERVER -n 1 >NUL
(ping MAINSERVER >NUL)|| goto :nostart 

:start
net use g: \\172..... /Persistent:No /user:"BLABLA"  

choice /N /C "123" /T 5 /CS /D "1" /M ""  
Exit

:nostart
echo Sie sind nicht mit dem  Netzwerk verbunden!
echo You are not connected to  network!
echo ------------------------------------------------------
echo Bitte druecken Sie [ENTER] zum schliessen!
echo Please press [ENTER] to close!
set /p wait=
Exit
emeriks
emeriks 18.06.2019 um 09:26:34 Uhr
Goto Top
Hi,
kann diese Software bloß auf Laufwerke schreiben oder auch direkt auf UNC-Pfade?
Hast Du schon mal versucht, diese Software mit Symbolic Links auszutricksen?

CMD "als Administrator" ausführen:
Bsp.
c:
cd \
mklink /D LW_X \\serverip-adresse\ordner\unterordner\unterordner\zielordner
Das Passwort zuvor mit CMDKEY hinterlegen.

Dann kann man über C:\LW_X auf die Freigabe zugreifen.

E.
TomTomBon
TomTomBon 18.06.2019 um 09:33:17 Uhr
Goto Top
net use /? ist übrigens sehr informativ:
net use /?
The syntax of this command is:

NET USE
[devicename | *] [\\computername\sharename[\volume] [password | *]]
        [/USER:[domainname\]username]
        [/USER:[dotted domain name\]username]
        [/USER:[username@dotted domain name]
        [/SMARTCARD]
        [/SAVECRED]
        [/REQUIREINTEGRITY]
        [/REQUIREPRIVACY]
        [[/DELETE] | [/PERSISTENT:{YES | NO}]]

NET USE {devicename | *} [password | *] /HOME

NET USE [/PERSISTENT:{YES | NO}]



Kleiner Hinweis:
wenn man das obige script mit dem schalter /savecred vor dem Benutzer anlegt, muss das PW nie wieder (..) eingegeben werden für diesen Benutzer.
Nur.
Wenn Ich den Benutzer dann mit einem anderen Skript verwende, werden dessen Rechte auch benutzt!!
-->
Dazu gibt es einen schönen kleinen Artikel:
runas /savecred… don't accept cmdkey /add (credentials)

Einfache Lösung:
Skript schreiben für die Verbindung.
Und dieses Skript in der AUFGABENPLANUNG als Benutzer X mit Password Y bei JEDEM Anmelden starten!
An diese Anmeldedaten kommt keiner ran face-wink
emeriks
emeriks 18.06.2019 um 09:53:35 Uhr
Goto Top
Zitat von @TomTomBon:
Kleiner Hinweis:
wenn man das obige script mit dem schalter /savecred vor dem Benutzer anlegt, muss das PW nie wieder (..) eingegeben werden für diesen Benutzer.
Da passiert auch nicht anderes als bei CMDKEY. Das landet im selben Speicher.

Nur.
Wenn Ich den Benutzer dann mit einem anderen Skript verwende, werden dessen Rechte auch benutzt!!
Wessen Rechte?
Die Anmeldedaten werden verwendet. Ja. Hat man dann ja auch so angegeben ....

An diese Anmeldedaten kommt keiner ran face-wink
*hüstel*
TomTomBon
TomTomBon 18.06.2019 um 13:47:21 Uhr
Goto Top
Naja,

Kein User.

Wenn ich die reg entsprechend auslese geht das, Ich weiß.
Dafür gibt es Verschlüsselung.

Aber wenn der User irgendwie mitbekommt das er nur die Bla.cmd gegen eine andere bla.cmd tauschen muss ist das eine viel geringere Hürde.
Echter Schutz...
Selbst bei Kiosk Systemen nicht wirklich face-wink
emeriks
emeriks 18.06.2019 um 13:55:34 Uhr
Goto Top
Zitat von @TomTomBon:
Kein User.
???

Wenn ich die reg entsprechend auslese geht das, Ich weiß.
Dafür gibt es Verschlüsselung.
???

Aber wenn der User irgendwie mitbekommt das er nur die Bla.cmd gegen eine andere bla.cmd tauschen muss ist das eine viel geringere Hürde.
Echter Schutz...
Selbst bei Kiosk Systemen nicht wirklich face-wink
Damit hast Du dann Deinen eigenen Vorschlag ad absurdum geführt.
erikro
erikro 18.06.2019 um 15:42:35 Uhr
Goto Top
Moin,

Zitat von @DerM1cha:
ich hab das Problem das drei unserer Firmenpcs die Maschinen steuern nach einen Neustart oft das eine ihnen zugehörige Netzlaufwerk nicht zu 100% verbinden.
Dies sieht man daran das dann das rote X am Netzlaufwerk ist.

Die Gruppenrichtlinie "Computerkonfiguration -> Richtlinien -> administrative Vorlagen -> System -> Anmelden -> Beim neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten" ist aktiviert?

hth

Erik
DerM1cha
DerM1cha 19.06.2019 um 09:18:49 Uhr
Goto Top
Jaein,

sie war nicht aktiv, als ich vor Ort war und probiert habe alle wichtigen Informationen mit den Mitarbeitern zu erfassen um darauf hin dann eine Lösung zu finden, habe ich diese ausprobiert, ohne Erfolg.

Ich dachte auch das wäre die einfachste Lösung aber da sie nicht funktioniert ...
DerM1cha
DerM1cha 19.06.2019 um 09:34:01 Uhr
Goto Top
Hallo,

ich hab dein Skript mal kopiert und die Zeile 26 angepasst auf mein Ziel und den dafür gedachten benutzer

nur leider sagt er trz das ich nicht mit den Netzwerk verbunden bin, rufe ich das Ziel über den Explorer auf funktioniert es
Was passiert denn hier ?
erikro
erikro 19.06.2019 um 09:39:17 Uhr
Goto Top
Sicher, dass die GPO auch angewendet wurde? Normalerweise funktioniert das dann, wenn man auf das Netz warten lässt.
DerM1cha
DerM1cha 19.06.2019 um 11:06:07 Uhr
Goto Top
Ich hatte die Einstellung aktiviert, gespeichert und dann neu gestartet, das sollte doch als Test reichen oder ?
Dort hat es dann jedenfalls nicht geklappt.
erikro
erikro 19.06.2019 um 11:11:01 Uhr
Goto Top
Ein gepresult nach dem Test ist immer eine gute Idee, wenn es nicht klappt. Außerdem solltest Du das mit

gpupdate /force

einmal anstoßen. Es kann nämlich passieren, dass die GPO nicht wirkt, weil das Netz noch nicht da ist.
emeriks
emeriks 19.06.2019 um 11:16:54 Uhr
Goto Top
Zitat von @DerM1cha:
Ich hatte die Einstellung aktiviert, gespeichert
In einer Domänen-GPO?

Falls ja
und dann neu gestartet, das sollte doch als Test reichen oder ?
Nein, nicht unbedingt. Nur wenn man vor dem Neustart wartet, bis diese GPO angewendet wurde oder man manuell GPUPDATE ausgelöst hat.
Ansonsten muss man 2x neu starten.
TomTomBon
TomTomBon 19.06.2019 um 15:11:51 Uhr
Goto Top
Moin,

Es müssen hier folgende Zeilen geändert werden:
Zeile 16 und 17:
16.
ping MAINSERVER -n 1 >NUL
17.


Mainserver ist am besten der Proxy/AD/Router mit Namensauflösung oder IP.


Zeile 20. muss mit net use angepasst werden!!
Hinter net use muss erst das Laufwerk stehen und dann das Ziel.

20.
net use g: \\192.168.178.50\Freigabe /Persistent:No /user:Heim\Anwender


@echo off
net use /persistent:NO
choice /N /C "123" /T 10 /CS /D "1" /M "please wait / bitte warten..."  
IF %ERRORLEVEL%==1 GOTO end0
IF %ERRORLEVEL%==2 GOTO end0
IF %ERRORLEVEL%==3 GOTO yes
GOTO end0

:yes
echo Sie haben das Script abgebrochen!
echo You have cancel the script!
GOTO :end1

:end0
@ECHO off
ping 8.8.8.8 -n 1 >NUL
(ping 8.8.8.8 >NUL)|| goto :nostart 

:start
net use g: \\172..... /Persistent:No /user:"BLABLA"  

choice /N /C "123" /T 5 /CS /D "1" /M ""  
Exit

:nostart
echo Sie sind nicht mit dem  Netzwerk verbunden!
echo You are not connected to  network!
echo ------------------------------------------------------
echo Bitte druecken Sie [ENTER] zum schliessen!
echo Please press [ENTER] to close!
set /p wait=
Exit
DerM1cha
DerM1cha 20.06.2019 um 12:16:53 Uhr
Goto Top
Nein nicht in der Domänen GPO sondern auf dem Client und wie gesagt dort nur einmal neu gestartet, ... wahrscheinlich wird das aber nicht greifen wenn es in der GPO der Domäne anders eingestellt ist ?
DerM1cha
DerM1cha 20.06.2019 um 12:31:02 Uhr
Goto Top
Hallo,

ich habe deine Antwort bzgl den zu anpassenden Bereichen gelesen und aufgenommen und werde das angepasste Skript in der nächsten Umbauphase der Maschinen testen und mich danach melden

Ich hoffe damit endlich des Problems Herr zu werden

An der Stelle erstmal vielen Dank @all die mir hier helfen =)
erikro
erikro 20.06.2019 um 15:47:03 Uhr
Goto Top
Moin,

Zitat von @DerM1cha:

Nein nicht in der Domänen GPO sondern auf dem Client und wie gesagt dort nur einmal neu gestartet, ... wahrscheinlich wird das aber nicht greifen wenn es in der GPO der Domäne anders eingestellt ist ?

Doch, das wird greifen, wenn Du es richtig machst:

1. Eine GPO erstellen, die auf die Computer wirkt und in der Du einstellst, dass auf das Netzwerk gewartet wird.
2. Entweder 90 Minuten warten oder zum Testen

gpupdate /force

auf der Kommandozeile eingeben.

Danach wirkt die GPO beim Neustart und alles ist gut. Zumindest bei uns und auch bei allen von mir zuvor betreuten Netzen funktioniert das wie Schmitz' Katze.

Liebe Grüße

Erik