Perl und DFS ?

Guten Tag,

Verzweifle hier an einem Perl Skript, vielleicht könnt Ihr helfen.

Problem:
in unserem Netzwerk gibt es ein verteiltes DFS System. verschiedene net uses von den Rechnern (zB.
G:\dfs>net_use_auslesen.pl
I: \server\dfs\abt\he20
L: \server\DFS\aus\e-bereich
V: \server\dfs\vorlagen
W: \server\dfs\heim\user
hierbei ist das abt / aus in unterschiedlichen dfs shares verteilt zB.
dfscmd /view \server\dfs /full | find „he20“ ergibt „\serverxy\abteilung4\he20“ „kommentar“

das alleine abzufragen wäre ja kein Problem, wenn wir nicht 100 abteilungen hätten die unterschiedlich verteilt wären, so das zB. he30 ergeben würde „\serverxy\abteilung1\he30“ „kommentar“

Habe ich mit Perl eine möglichkeit hier so quasi einen net use batch zu bauen, dieser sollte dann von perl „analysiert“ werden und den richtigen dfs hierzu finden ?

Wäre super wenn mir einer hier helfen könnte.

Hallo,

Verzweifle hier an einem Perl Skript, vielleicht könnt Ihr
helfen.

Zeig doch mal dein Perlscript, vielleicht wird dann die Frage verständlicher.

Habe ich mit Perl eine möglichkeit hier so quasi einen net use
batch zu bauen, dieser sollte dann von perl „analysiert“
werden und den richtigen dfs hierzu finden ?

Hört sich möglich an. Aber irgendwie weiss ich noch so genau was die Eingaben deines Scripts sind, was die erwarteten Ausgaben sind, und wo dein Problem ist.

Grüße,
Moritz

Hallo Moritz

Derzeit stehe ich am Anfang, ich habe nur ein Batch File, das mir diverse Sachen ausliest.

@echo off
dial --getstatus >NUL
if „%ERRORLEVEL%“ == „1“ goto LAN
goto NO_LAN

LAN

set SERVER=S00370148.server.de
set ZIEL_CMD="%USERPROFILE%\Netzlaufwerke-Verbinden.cmd"
set ziel_net_use="%USERPROFILE%\net_use.txt"
xcopy „Netzlaufwerke-Verbinden.lnk“ „%APPDATA%…\Desktop“ /Y/R/H/F/C >NUL

echo Aktualisiere Liste der Netzlaufwerke …
echo Ziel: Desktop\Netzlaufwerke-Verbinden

echo @echo off > %ZIEL_CMD%
echo dial --getstatus >NUL >> %ZIEL_CMD%
echo if „%%ERRORLEVEL%%“ == „2“ goto VPN_AUTOMOBIL >> %ZIEL_CMD%
echo goto NO_VPN >> %ZIEL_CMD%
echo. >> %ZIEL_CMD%
echo :VPN_AUTOMOBIL >> %ZIEL_CMD%
echo „%%ProgramFiles%%\OpenSSH\tools\porttest.pl“ %SERVER% 445 >> %ZIEL_CMD%
echo if „%%ERRORLEVEL%%“ == „0“ goto OK_SERVER_CONNECT_MICROSOFT_DS >> %ZIEL_CMD%
echo goto NOK_SERVER_CONNECT_MICROSOFT_DS >> %ZIEL_CMD%
echo. >> %ZIEL_CMD%
echo :open_mouth:K_SERVER_CONNECT_MICROSOFT_DS >> %ZIEL_CMD%
echo echo Verbinde Netzlaufwerke, bitte warten … >> %ZIEL_CMD%
net use | grep „[dD][fF][sS]“ > %ziel_net_use%
echo. >> %ziel_net_use%
dfscmd /view \%SERVER%\dfs /batch | grep „he20“ | sed -e „s#dfscmd /map#\nnet use * #g“ | sed -e „s#\\server.de\[dD][fF][sS]\#\#g“ | sed -e „s#\abt\#\#g“ >> %ziel_net_use%
rem net use grep „dfs“ | sed -e „s#\\server.de\[dD][fF][sS]#g“ > %ziel_net_use%
rem net use | grep „server.de“ | grep „:“ | sed -e „s#\\server.de\[dD][fF][sS]#\\%SERVER%#g“ | sed -e „s#\aus\#\austausch\#g“ -e „s#\abt\#\abteilung\#g“ | sed -e „s#(.:)#net use \1#g“ >> %ZIEL_CMD%
echo echo. >> %ZIEL_CMD%
echo echo. >> %ZIEL_CMD%
echo echo #### Status der Netzlaufwerke #### >> %ZIEL_CMD%
echo net use >> %ZIEL_CMD%
echo goto ENDE >> %ZIEL_CMD%
echo. >> %ZIEL_CMD%
echo :NOK_SERVER_CONNECT_MICROSOFT_DS >> %ZIEL_CMD%
echo echo Kann Netzlaufwerke nicht verbinden! >> %ZIEL_CMD%
echo echo Der Server %SERVER% ist nicht auf Port 445 erreichbar! >> %ZIEL_CMD%
echo. >> %ZIEL_CMD%
echo :NO_VPN >> %ZIEL_CMD%
echo echo Kann Netzlaufwerke nicht verbinden! >> %ZIEL_CMD%
echo echo Der Server %SERVER% ist nicht erreichbar via VPN! >> %ZIEL_CMD%
echo. >> %ZIEL_CMD%
echo :ENDE >> %ZIEL_CMD%
echo pause >> %ZIEL_CMD%

echo Datei Netzlaufwerke-Verbinden erfolgreich aktualisiert.
goto ENDE

NO_LAN

echo.
echo Netzlaufwerke-Verbinden.cmd nicht aktualisiert!
echo Die aktuelle Verbindung ist nicht LAN.
echo.
echo Zur Aktualisierung von Netzlaufwerke-Verbinden.cmd benoetigt
echo der Rechner eine LAN-Verbindung und der aktuelle Benutzer
echo muss mit Domain-Logon angemeldet sein!
echo.
pause

ENDE