Schrift
[thread]10862[/thread]

Laufwerke einbinden...

Leser: 3


<< >> 3 Einträge, 1 Seite
theresa
 2007-11-22 14:08
#102776 #102776
User since
2007-07-17
90 Artikel
BenutzerIn
[default_avatar]
Ich kann Laufwerke fast problemlos einbinden.
Habe nur ein Problem.

Erstmal binde ich einen Ordner von einem Server ein, unter h:
dann trenne ich die Verbindung.
Dann will ich einen anderen Ordner vom Server einbinden, auch unter h:
was auch klappt... nur der Name der im Explorer neben dem h: angezeigt wird ist immer noch der alte. Obwohl der Inhalt vom Ordner doch das ist, was ich zuletzt eingebunden habe.

Dann ist es auch merkwürdig, dass die Befehle direkt in der cmd eingegeben doch zum erwünschten Ergebnis führen. Über einen Perl-skript aber nicht!

Hier die Befehle für die cmd...
Code: (dl )
1
2
3
net use h: \\server\ordnerA passwort /user:username /persistent:no
net use * /delete /Y
net use h: \\server\ordnerB passwort /user:username /persistent:no


Hier der entsprechende Teil im Perl-Skript:
Code: (dl )
1
2
3
system("net use * /delete /Y");
my $netuse = "net use h: \\\\server\\ordner passwort /user:username /persistent:no"
my $return = `$netuse 2>&1`;

Ich hab den Code ein Bisschen vereinfacht, der "ordner" ist eigentlich eine variable, die eingegeben werden muss. Dann wird er zwei Mal hintereinander ausgeführt, einmal für ordnerA und dann für ordnerB

ordnerB wird dann eingebunden, aber heißt immer noch ordnerA...

Eine mögliche Ursache ist dass man den Windows Explorer geöffnet hat, wenn der Skript läuft. Vielleicht kann er dann nicht den Namen aktualisieren. Ist aber falsch, geschlossen passiert dasselbe.
Und mit den Befehlen in der cmd klappt es immer...

Wäre nett wenn jemand mir weiterhelfen könnte.
theresa
 2007-11-22 17:06
#102800 #102800
User since
2007-07-17
90 Artikel
BenutzerIn
[default_avatar]
Ich hab jetzt diese batch erstellt
Code: (dl )
1
2
net use * /delete /Y
net use h: \\server\ordnerB passwort /user:username /persistent:no


Die rufe ich vom Perl-Skript auf, danach dass ich ordnerA unter h: eingebunden hab.
Die wird auch erfolgreich ausgeführt, sagt die Konsole...

Funktioniert trotzdem nicht. Der Name vom Ordner ist weiterhin ordnerA.

Etwas passiert zwischen net use * /delete /Y und net use h:... in der cmd, was nicht im Skript passiert... kann man vielleicht die Laufwerknamen mit einem Befehl aktualisieren oder so?

edit:
hab nach dem net use * /delete /Y ein sleep eingefuegt um zu sehen was passiert.
Die Laufwerke werden nicht richtig losgebunden... Der Inhalt ist zwar nicht mehr da, die Namen aber doch.
Wenn man dann die Ordner wieder einbindet, werden dann die bestehenden Namen weiterbenutzt...
Mit der cmd ist nach dem net use * /delete /Y alles einschließlich Namen weg.
system() scheint den Befehl nicht so ganz richtig auszuführen...?
Strat
 2007-11-24 12:07
#102955 #102955
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn du das mounten direkt aus perl heraus machen willst, kann CPAN:Win32::NetResource dein Freund werden. Dann ist es auch einfacher, das ganze auf Fehler zu ueberpruefen.

Zum eigentlichen Problem habe ich leider keine Ahnung.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 3 Einträge, 1 Seite



View all threads created 2007-11-22 14:08.