Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Domänen Computer deaktivieren ??? (https://www.delphipraxis.net/98106-domaenen-computer-deaktivieren.html)

Piro 21. Aug 2007 14:38


Domänen Computer deaktivieren ???
 
Guten Abend,

ich hoffe einer von euch kann mir weiterhelfen. Ich möchte gerne mit Delphi einen Computer Account in unser Firmendomäne deaktivieren. Ich habe leider keine Ahnung wie bzw. womit ich das anstellen soll. Für Anregungen, Hinweise oder Vorschläge wäre ich sehr dankbar.

Gruß Sven

mkinzler 21. Aug 2007 14:49

Re: Domänen Computer deaktivieren ???
 
Z.B. per ADSI.

Piro 21. Aug 2007 15:01

Re: Domänen Computer deaktivieren ???
 
So ich kann den betreffenden PC auslesen.
Delphi-Quellcode:
procedure DisableComputerAccount(computer : String);
var rs,conn, com : Variant;
    strBase, strFilter, strAttributes, strADS, strName, strPager : string;
begin
  conn := CreateOleObject('ADODB.Connection');
  com := CreateOleObject('ADODB.Command');
  try
    conn.Provider := 'ADsDSOObject';
    conn.open;
    com.ActiveConnection := conn;
    strBase := '<LDAP://[Domäne]/OU=...,DC=...>';
    strFilter := '(&(Objectclass=computer)(Name='+ computer + '))';
    strAttributes := 'Name, Location';
    strADS := strBase + ';' + strFilter + ';' + strAttributes + ';subtree';
    Com.CommandText := strADS;
    Com.Properties['Page Size'] := 100000;
    Com.Properties['Searchscope'] := 2;
    Com.Properties['Cache Results'] := False;
    rs := Com.Execute;

    While Not rs.EOF do
    begin
      ShowMessage('Computer: ' +rs.Fields['Name'].Value);
      rs.MoveNext;
    end;

  finally
    com := NULL;
    conn.Close;
    conn := NULL;
  end;
end;
Aber wie kann ich jetzt den Computer deaktivieren? Mir fehlen die Eigenschaften und weiß nicht wie man das macht.

Piro 21. Aug 2007 15:03

Re: Domänen Computer deaktivieren ???
 
Irgendwie muss man "rs" einen Methode mitgeben oder so. Würde ich mal vermuten.

Ich würde auch löschen nehmen.

Piro 21. Aug 2007 15:35

Re: Domänen Computer deaktivieren ???
 
Ich habe mal folgendes probiert:
Delphi-Quellcode:
...
If not rs.EOF then
begin
   rs.Delete;
end;
...
Da bekommen ich abe immer folgende Fehlermeldung:
Zitat:

Current Recordset does not support updating. This may be a limitation of the provider or of the selected locktype.

???

Piro 22. Aug 2007 07:51

Re: Domänen Computer deaktivieren ???
 
Na weiß denn keiner Rat. Wäre schön wenn doch.

mkinzler 22. Aug 2007 07:54

Re: Domänen Computer deaktivieren ???
 
http://www.agnisoft.com/white_papers..._directory.asp
http://www.delphipraxis.net/internal...ct.php?t=60102

Piro 22. Aug 2007 20:34

Re: Domänen Computer deaktivieren ???
 
Hab es jetzt mal so versucht aber mit der Fehlermeldung kann ich nicht so wirklich etwas anfangen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 con : IADsContainer;
begin
 try
   con := GetObject('WinNT://[Domänen Name]') as IADsContainer; //--> Hier kommt der Fehler
   con.Delete( 'Computer', WideString(edt_computer.Text));
 finally
   //
 end;
End;
Fehlermeldung:
Zitat:

E2010 Inkompatible Typen: 'HGDIOBJ' und 'string'
Keine Ahnung wie man diese Typen miteinander kompatible macht. Was muss ich denn machen?

Hier ist das VBS Script, wo ich das abgeschaut habe.
Delphi-Quellcode:
Sub RemoveComputer( strDomain, strComputer )
   Dim objDC
    Set objDC = getobject("WinNT://" & strDomain )
    objDC.Delete( "Computer", strComputer )
End Sub

mkinzler 22. Aug 2007 20:38

Re: Domänen Computer deaktivieren ???
 
Delphi-Quellcode:
hr := ADsGetObject('WinNT://[Domänen Name]',IADsContainer,Container);

Piro 22. Aug 2007 20:44

Re: Domänen Computer deaktivieren ???
 
Soll hr = con sein und was für ein Type ist Container denn er kennt es nicht?

Ich habe die adshlp Unit eingebunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz