Entwickler-Ecke
Windows API - Zugriff auf PC einer anderen Domäne
blaskito - Di 07.04.09 14:10
Titel: Zugriff auf PC einer anderen Domäne
Hallo Leute,
ich habe ein kleines Tool gebastelt, dass mir von PCs in meinem Netz z.B. die installierte Software ausliest oder Dateien auf die Rechner kopiert. In der Domäne in der mein PC hängt ist das auch kein Problem und funktioniert wunderbar. Nun liegen aber insgesamt 3 Domänen in meinem Netz und es gelingt mir nicht, über die Domänengrenzen hinweg auf die Registry und/oder das File System zuzugreifen. Ich muss halt auf 3 PCs - also in jeder Domäne einen - zurückgreifen.
Ich habe gelesen, dass ich mich für das was ich will ja einfach nur mit Adminrechten an der Registrierung oder einer administrativen Freigabe anmelden muss. Leider habe ich nicht die geringste Ahnung, wie ich genau das anstellen soll.
Ich gehe mal davon aus, dass das mehr ein Problem der Win-API ist und nicht des Internet-/Netzwerkbereiches. Kann mir jemand einen Tip geben, wo ich den Hebel ansetzen kann?
Schöne Grüße aus dem sonnigen Norden
blaskito
BenBE - Di 07.04.09 14:30
Du musst dich an der fremden Domäne mit deinem Rechner Authentifizieren (WNet*-API IIRC) und dann erst versuchen zuzugreifen. Glaube Luckie hatte dazu mal was auf seiner Page.
blaskito - Di 07.04.09 16:00
Ich habe bei Luckie schon gesucht aber leider nix passendes gefunden. Verstehe ich dich richtig, dass ich nicht den Benutzer sondern den PC anmelden muss?
BenBE - Di 07.04.09 16:50
Windows kann zu jedem Rechner immer nur eine Authentifizierte Sitzung aufbauen (AFAIK), was man nicht zuletzt an der Dateifreigabe sieht (und diesen netten Meldungen, wenn Windows sich als Gast angemeldet hat, man aber auf eine User-Geschützte Freigabe muss und daher den User zusätzlich anmelden will).
Ob Du dich nun als Computer oder als User am entfernten Rechner anmeldest dürfte IMHO egal sein, solange eine Sitzung vorhanden ist, die ausreichend Rechte für die auszuführenden Aktionen hat.
blaskito - Di 07.04.09 20:16
Ja klar, die Meldung hat wahrscheinlich jeder schon mal gesehen. Bleibt nur noch die Frage: wie stell ich's an?
Delete - Mi 08.04.09 09:37
Verbinde dich mit der administrativen Freigabe und den Administrator Logfindaten auf dem Remoterechner. Dann bist du autentifiziert.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87:
|
{$I ..\..\CompilerSwitches.inc}
unit Network;
interface
uses Windows;
function ConnectToNetworkDriveW(LocalName: WideString; RemoteName: wideString; Username: WideString; Password: WideString; RestoreAtLogon: boolean): DWORD; function DisconnectNetworkDrivew(Name: WideString): DWORD;
implementation
function ConnectToNetworkDriveW(LocalName: WideString; RemoteName: wideString; Username: WideString; Password: WideString; RestoreAtLogon: boolean): DWORD; var NetResource : TNetResourceW; dwFlags : DWORD; begin dwFlags := 0; ZeroMemory(@NetResource, sizeof(TNetResource)); with NetResource do begin dwType := RESOURCETYPE_ANY; lpLocalName := PWideChar(LocalName); lpRemoteName := PwideChar(RemoteName); lpProvider := nil; end;
if (RestoreAtLogon) then dwFlags := dwFlags or CONNECT_UPDATE_PROFILE;
Result := WNetAddConnection2W(NetResource, PWideChar(Password), PWideChar(Username), dwFlags); end;
function DisconnectNetworkDrivew(Name: WideString): DWORD; begin result := WNetCancelConnection2W(PWideChar(Name), CONNECT_UPDATE_PROFILE, True); end;
end. |
blaskito - Mi 08.04.09 16:12
Herzlichen Dank!
Das ist ja genau das, wonach ich gesucht habe.
Schöne Grüße aus dem Norden
blaskito
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!