Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Isa am 18.05.03 - 17:53:03
-
Ich muss in einem Agent die Verbindung zu einem Filesystem auf einem AS/400 aufbauen.
Im DOS-Prompt sieht das so aus:
net use x: \\servername\laufwerk passwort /USER:username
Nun versuche ich seit Tagen :o das via Lotussscript aus dem Agenten auszuführen.
1. Ich habe einen Batch geschrieben, der den Code enthält. Wird der Batch manuell aufgerufen, so funktioniert er auch. Wird der Batch aus LotusScript aufgerufen, gibt's nur noch Fehlermeldungen: 1312 auf der Domino Konsole (im Log steht dann nur noch "Path not found")
2. Habe den Code direkt aus LotusScript aufgerufen (mittels Shell("net use ..."). Ebenfalls nur noch Fehlermeldungen.
HILFE !!! Das ganze Projekt steht still, weil dieser Mist nicht funktioniert!!!
Gruss,
Isa - wie immer am Sonntag am Arbeiten
-
Damit solltest du es hinbekommen:
':
Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type
Const RESOURCETYPE_DISK = &H1
Dim NetzResource As NETRESOURCE
Dim UserName As String
Dim UserPasswort As String
Declare Function NetzLaufwerkAn Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, Byval lpPassword As String, Byval lpUserName As String , Byval dwFlags As Long) As Long
Declare Function NetzLaufwerkAus Lib "mpr.dll" Alias "WNetCancelConnection2A" (Byval lpName As String, Byval dwFlags As Long, Byval fForce As Long) As Long
Sub Click(Source As Button)
Dim Ergebnis As Long
'R1=Rechnername, c_anette=Name des zuzuweisenden Laufwerks
NetzResource.lpRemoteName = "\\Developer\d$"
'z: ist der neue Laufwerksname (gegebenfalls ändern)
NetzResource.lpLocalName = "z:"
'Username & Passwort (anhängig vom Freigabestatus des LW)
'Inhalt ist bestenfalls egal
UserName = "Administrator"
UserPasswort = "passwort"
NetzResource.dwType = RESOURCETYPE_DISK
Ergebnis = NetzLaufwerkAn(NetzResource, UserName, UserPasswort, 0)
If Ergebnis = 0 Then
Msgbox "Verbunden."
Else
Msgbox "Verbindung nicht möglich."
End If
End Sub
eknori
-
Vielen Dank für den Tip, sieht ja schwer kompliziert aus...
Leider will das bei nicht so recht... kriege nur "verbindung nicht möglich".
ist dieses mpr.dll ein Standard-dll ?
Hat das Betriebssystem des Domino Servers einen Einfluss? (ist Win NT 4.0 mit Service Pack 5)
Dein Code ist für ein UI geschrieben (sub Click...). Bei mir muss das mutterseelenallein im Hintergrund laufen. Geht das?
Bin sehr froh über Deine Hilfe!
Gruss,
isa
-
Update:
Ich habe den Befehl
Shell("net use z: \\server\laufwerk passwort /USER:username")
von unserem Domino Server auf einen normalen PC-Server (NT) getestet. Funktioniert.
Nur auf's AS/400 komme ich nicht.
ratlos...
-
Hallo Isa;
yoo, OS ist schon OK ( der Code ist für NT ).
Um das für den Hintergrund "umzuschreiben" brauchst du einfach nur das MSGBOX Gedönse wegzulassen.
Habe das nur zum Testen eingebaut.
Was die Anmeldung angeht: Wenn ihr eine Domäne habt, erweitere den Anmeldenamen um den Domänennamen
( Domäne/Administrator ) Dann sollte es klappen.
Ulrich
-
@eknori, nur am Rande; msgbox stört nicht imm Backend, da es sich wie ein print Befehl ins Log schreibt und im Frontend ne Meldung erzeugt. das managed LN in dem Falle selbst.
-
findet man übrigens unter
"AS/400 platform differences in LotusScript"
Zitat:
File system differences
There are no drive letters on AS/400. If you use a path name containing a drive letter, LotusScript may return an error.
AS/400 uses the slash (/) character as the directory separator, while DOS/Windows use the backslash (\) character. LotusScript supports use of both the slash and backslash, with the following restrictions:
A Script compiled on any platform other than AS/400 or UNIX that uses a backslash in a path name string literal will not work on the AS/400.
LotusScript cannot use file names (in contrast to path names) that contain the backslash character, because this character is always a path separator on other platforms.
Zitat Ende.
Also Ohne Backslashes und ohne Laufwerksbuchstaben arbeiten.
Thomas
-
@Isa:
nochmal nachgefragt, WAS willst du denn von der AS/400 holen ??
Hast du keine Möglichkeit, die Daten direkt aus der Datei der entsprechende Bibliothek abzugréifen ?? ( hätte dann eine Lösung )
Kann ja auch ne tmp sein.
eknori