Schrift
[thread]10138[/thread]

Windows-Freigaben auslesen



<< >> 8 Einträge, 1 Seite
Gast Gast
 2007-08-20 02:13
#98393 #98393
Folgende Problematik:

Wir haben eine Windows-Domäne mit einigen Rechnern ich möchte nun mittels Perl-Script auf einem Rechner überprüfen ob eine Datei vorhanden ist.
//rechner/c$/ordner/datei.dat

Mein Problem ist, dass mir nicht klar ist wie ich den Zugriff auf eine Freigabe ermöglichen kann. Nach einiger Zeit Googeln und vielen Forensuchen nun dieser Beitrag. Die Samba Geschichte wird wohl kaum auf Win laufen. Per Batch-Skript ist dieses zwar möglich nur 1. würd ich das ganze gerne in Perl haben und 2. ist Batch für komplexere Aufgaben nicht allzu gut geiegnet Winken gibt es vielleicht ein Modul was eine abfrage aller $file = "//rechner/c$/ordner/datei.dat" ermöglichen würde?

Danke schon einmal für Antworten.

PS: Das Hostsystem des Scriptes ist WinXP mit ActivPerl 5.8.8
pktm
 2007-08-20 02:59
#98394 #98394
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Nun, den Zugriff auf die Datei musst du schon auf dem Server einstellen. Wäre ja auch irgendwie witzlos wenn man jederzeit ohne größeren Aufwand auf alle Dateien eines Computers im Netzwerk zugreifen möchte.
An alle Leute denen jetzt schon auf der Zunge liegt sich über Windows-Schwächen auszulassen: das ist nicht die Frage!

Musst du denn die Datei unbedingt remote bearbeiten, also auf dem Server? Oder kannst du dir die Datei einfach kopieren, ändern und dann wieder zurück schreiben?

Was hast du denn schon so versucht? Kannst du auf if( -e "//rechner/c$/ordner/datei.dat" ) prüfen? Was passiert, wenn du die Datei mit dieser Pfadangabe einfach mal versuchst zu öffnen?
http://www.intergastro-service.de (mein erstes CMS :) )
Gast Gast
 2007-08-20 08:31
#98396 #98396
also es handelt sich um eine windomain in der ich als domainadmin angemeldet bin (alle rechte etc) aber da is dann gleich meine frage läuft das perlskript im netzwerk mit meinen rechten? oder muss ich diesem extra loginangaben geben hab irgendwo mal was von smb:authend oder so gelesen.

mein erster test war einfach eine datei wohl bemerkt bei meinem rechner lokal über den netzwerkpfad auszulesen etwa so
Code: (dl )
1
2
3
open (HOSTS, "<\\rechner\c$\test\hosts.txt") or die ('geht net');
@hosts = <HOSTS>;
close HOSTS;


des funktioniert leider net und in meinem probierwahn hab ich auch //rechner/c$/blablabla ausbrobiert auch kein erfolg.

es geht grundsätzlich schonmal nicht darum dateien zu schreiben. sondern deren vorhandensein zu prüfen (geht ja per batch ganz gut soweit allerdings hat man da probleme wenn man mehr möchte beispielsweise eine statistik auf stellen auf welchen rechnern im netzwerk diese datei vorhanden ist)
topeg
 2007-08-20 08:50
#98397 #98397
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Du brauchst das Modul:
CPAN:Filesys::SmbClient (nur Linux/Unix glaube ich...)
oder etwas ähnliches.

Ohne Module kann Perl nur lokale Dateien öffnen, Du müsstest die zu überprüfenden Freigaben ins Dateisystem hängen. Das ist auch über Perl möglich, indem du Systemprogramme ausführst. (unter Linux z.B. "mount -t cifs -o user=test%testpasswort //testserver/testdir /mnt")
Ich kann dir aber nicht sagen wie das unter Windows über die Kommandozeile läuft.
renee
 2007-08-20 10:56
#98402 #98402
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
"<\\rechner\c$\test\hosts.txt" sollte zu "<",'\\rechner\c$\test\hosts.txt' werden. Wir hatten hier letzte Woche schon eine Diskussion, in der es um UNC-Pfade ging...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2007-08-20 11:39
#98404 #98404
nun ja...

grundsätzlich würde ich halt gerne wissen welches modul ;) wie es unter linux funktioniert hab ich mir scho fast gedacht ich könnte auch ne vm mit linux aufsetzen nur ist da das problem der windows-domäne naja aber die geschichte mit mount fällt für meinen fall auch raus ich kann ja nicht in einer schleife (es wird sich so um 100 rechner handeln) die ganzen dinger mounten

in der winconsole (bzw. batch) wäre ja die datei per \\rechner\ordner\datei.dat abfragbar nur wie in perl???....

"<\\rechner\c$\test\hosts.txt" sollte zu "<",'\\rechner\c$\test\hosts.txt' hab ich ausprobiert hat nix gebracht aber ich lass es mal so drinne^^
pktm
 2007-08-20 17:52
#98431 #98431
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ich hab da bei meinen Skripten mal noch sowas gefunden:

Code: (dl )
1
2
3
4
5
6
7
@echo off

::Anmelden an der Admin-Share(Zugriff auf alle Laufwerke)
net use \\Server\IPC$ "Passwort" /user:"Benutzer"

:: Hier wird in die Verzeichnisse kopiert
xcopy "\\Server\I$\*.*" "D:\backup\*.*" /r/i/c/h/k/e/d/y


Das lies mich nochmal suchen und siehe da: CPAN:Win32::NetResource
http://www.intergastro-service.de (mein erstes CMS :) )
Strat
 2007-08-26 14:36
#98686 #98686
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Netzlaufwerke kann man auch ueber ein Perl-Modul mounten etc. CPAN:Win32::NetResource
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 8 Einträge, 1 Seite



View all threads created 2007-08-20 02:13.