Seite 2 von 3
Verfasst: 18.08.2005 12:22
von Agent
Das mit dem Systemfehler war ein guter Tipp!

.. ich noob...*FG*
Trotzdem folgendes:
Benutze ich den kürzeren Code oben und lasse unseren Firmen-Server scannen, kein Problem. Knapp 30 mit Namen genannte Freigaben.
Mache ich das gleiche mit dem größeren Code (der ja mehr Infos bietet) bekomme ich o.g. Systemfehler 5 (Access denied).
Warum?
Mal abgesehen davon, das mein PC auf jeden Fall Zugriff hat.
Verfasst: 18.08.2005 12:38
von bobobo
Laß den Rechnernamen einfach weg
Firewall? oder ähnliches?
Verfasst: 18.08.2005 14:01
von Agent
Nööö....
ging ja mit der "kleinen Procedure" auch ohne Probleme.
Rechnernamen weg? Wäre ja dann localhost. Will aber den Server scannen.
Verfasst: 19.08.2005 09:20
von stbi
Agent hat geschrieben:Mal abgesehen davon, das mein PC auf jeden Fall Zugriff hat.
Das ist dann wohl eine falsche Annahme ...
Habe den langen Code gerade eben noch mal mit verschiedenen Server gecheckt. Und auf einem Server, auf dem ich nicht Admin bin, kriege ich auch völlig korrekt den Fehler 5 für access denied. Bei allen anderen läuft es ohne Fehler.
Verfasst: 19.08.2005 11:11
von Agent
@stbi: Da geb ich dir "halbrecht". Ich bin selbst der Admin im Hause. Ich hab mir nicht ALLE Rechte gegeben (durfte ich nicht

), wobei mir im Moment noch nicht klar ist, warum ich ein ACCESS DENIED bekomme....
ABER
Warum geht es mit der kurzen Routine? ...die Frage bleibt offen...
Verfasst: 19.08.2005 13:00
von stbi
Agent hat geschrieben:ABER
Warum geht es mit der kurzen Routine? ...die Frage bleibt offen...
Weil die erste Routine nur mit Level 0 abfragt (2. Parameter beim NetShareEnum-Aufruf), das gibt lediglich die Namen der Shares zurück, also nix geheimes.
Deeem2031 ruft aber mit Level 502 auf, da beinhaltet die Struktur eben mehr Infos als den reinen Share-Namen, z.B. Anzahl Benutzer, Berechtigungen usw. und da ist es völlig ok, dass das nur der Sysadmin sehen darf.
Ist bei der Net-API generell so, dass bestimmte Strukturen nur mit entsprechender Berechtigung zugreifbar sind.
Verfasst: 19.08.2005 14:52
von Agent
Jetzt wo du es sagst. Hatte zwischenzeitlich noch ein wenig experimentiert. Naja, hängt wohl von der Anwenung ab, ob man nur den Namen braucht oder mehr Infos. Dann sind beide Routinen brauchbar.
Verfasst: 19.08.2005 15:18
von stbi
Deeem2031's Routine würde genügen, wenn die anderen Strukturen auch noch definiert wären. Das wären:
Code: Alles auswählen
struct _SHARE_INFO_0 { LPWSTR shi0_netname;
}
struct _SHARE_INFO_1 { LPWSTR shi1_netname; DWORD shi1_type; LPWSTR shi1_remark;
}
struct _SHARE_INFO_2 { LPWSTR shi2_netname; DWORD shi2_type; LPWSTR shi2_remark; DWORD shi2_permissions; DWORD shi2_max_uses; DWORD shi2_current_uses; LPWSTR shi2_path; LPWSTR shi2_passwd;
}
struct _share_info_50 { char shi50_netname[LM20_NNLEN+1]; unsigned char shi50_type; unsigned short shi50_flags; char FAR* shi50_remark; char FAR* shi50_path; char shi50_rw_password[SHPWLEN+1]; char shi50_ro_password[SHPWLEN+1];
}
Vielleicht gibts da ja schon in PB-verwertbarer Form, keine Ahnung, ansonsten musst Du das Programm eben auf die gewünschte Struktur umbauen.
Verfasst: 19.08.2005 15:22
von Agent
@stbi: *LOL* zur Deiner Signatur!
...bin ich freilaufend? *rofl*
Verfasst: 19.08.2005 15:46
von stbi
Agent hat geschrieben:...bin ich freilaufend? *rofl*
Hat man Dir heute noch nicht die Käfigtüre aufgemacht?

Aber hoffentlich frisches Wasser und Streu!
