AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Domänen Computer deaktivieren ???
Thema durchsuchen
Ansicht
Themen-Optionen

Domänen Computer deaktivieren ???

Ein Thema von Piro · begonnen am 21. Aug 2007 · letzter Beitrag vom 22. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

Domänen Computer deaktivieren ???

  Alt 21. Aug 2007, 14:38
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Domänen Computer deaktivieren ???

  Alt 21. Aug 2007, 14:49
Z.B. per ADSI.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Domänen Computer deaktivieren ???

  Alt 21. Aug 2007, 15:01
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.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Domänen Computer deaktivieren ???

  Alt 21. Aug 2007, 15:03
Irgendwie muss man "rs" einen Methode mitgeben oder so. Würde ich mal vermuten.

Ich würde auch löschen nehmen.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Domänen Computer deaktivieren ???

  Alt 21. Aug 2007, 15:35
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.

???
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Domänen Computer deaktivieren ???

  Alt 22. Aug 2007, 07:51
Na weiß denn keiner Rat. Wäre schön wenn doch.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Domänen Computer deaktivieren ???

  Alt 22. Aug 2007, 07:54
http://www.agnisoft.com/white_papers..._directory.asp
http://www.delphipraxis.net/internal...ct.php?t=60102
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Domänen Computer deaktivieren ???

  Alt 22. Aug 2007, 20:34
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Domänen Computer deaktivieren ???

  Alt 22. Aug 2007, 20:38
hr := ADsGetObject('WinNT://[Domänen Name]',IADsContainer,Container);
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Domänen Computer deaktivieren ???

  Alt 22. Aug 2007, 20:44
Soll hr = con sein und was für ein Type ist Container denn er kennt es nicht?

Ich habe die adshlp Unit eingebunden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz