Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Datenträger-Kontingent für Active Directory-Benutzer ändern (https://www.delphipraxis.net/49924-datentraeger-kontingent-fuer-active-directory-benutzer-aendern.html)

scp 18. Jul 2005 12:34


Datenträger-Kontingent für Active Directory-Benutzer ändern
 
Gibt es dazu eine API?
Hintergrund: Die AD-Benutzer auf unserem 2000 Server sind zwar schön in einer Baumstruktur unterteilt, möchte ich aber per Rechtsklick auf einen Datenträger das Kontingent für eine gesamte Gruppe ändern, geht dies nicht, da er mir gleich alle 4000+ Benutzer in die Liste schleudert.

shmia 18. Jul 2005 13:45

Re: Datenträger-Kontingent für Active Directory-Benutzer änd
 
Das Active Directory wird üblicherweise mit VB- oder Java-Scripts bearbeitet.
http://cwashington.netreach.net/depo...?topic=adsifaq

scp 18. Jul 2005 15:25

Re: Datenträger-Kontingent für Active Directory-Benutzer änd
 
Danke, das ist schon mal ein guter Ausgangspunkt, lässt sich sicherlich in Delphi portieren. Nur leider finde ich eben keine Funktion fürs Kontingent-Management, wie heisst das denn auf Englisch? Ja, ich weis: contingent, aber hat MS das in 2000 Server auch so genannt?

EDIT:
Ein Kommandozeilen-Tool hab ich jetzt schonmal gefunden und damit auch die englische Bezeichnung:
Code:
C:\>fsutil quota modify /?
Syntax  : fsutil quota modify <Volumepfadname> <Schwellenwert> <Limit> <Benutzer>
Beispiel : fsutil quota modify c: 3000 5000 Domäne\Benutzer

C:\>

scp 18. Jul 2005 16:32

Re: Datenträger-Kontingent für Active Directory-Benutzer änd
 
So, hat sich erledigt, hier das Ergebnis:

Wichtige Interfaces:
DiskQuotaControl
DIDiskQuotaUser

Zu bekommen über:
- Projekt... -> Typbibliothek importieren -> "DiskQuotaTypeLibrary (Version 1.0)" -> Installieren...
- Wenn "DiskQuotaTypeLibrary (Version 1.0)" nicht vorhanden ist, dann einfach die "dskquota.dll" über "Hinzufügen..." wählen.

Test:
- TDiskQuotaControl, ein Button und drei Labels benötigt
Delphi-Quellcode:
// DiskQuotaControl from dskquota.dll
procedure TForm1.Button1Click(Sender: TObject);
var
  objUser: DIDiskQuotaUser;
  QuotaLimit,
  QuotaUsed: Extended;
  PercentageQuotaUsed: Integer;
  VolumeName: WideString;
const
  domain  = 'mydomain';
  username = 'AUser';
begin
  // Remote
  //VolumeName := '\\server\c$\';
  // Local
  VolumeName := 'C:\';

  DiskQuotaControl1.Initialize(VolumeName, true);

  objUser := DiskQuotaControl1.FindUser(domain + '\' + username);

  // Kontingent des Benutzer abfragen (in MB umgerechnet)
  QuotaLimit := objUser.QuotaLimit / 1048576;
  QuotaUsed := objUser.QuotaUsed / 1048576;

  If objUser.QuotaLimit > 0 then
    PercentageQuotaUsed := Round(100*(objUser.QuotaUsed / objUser.QuotaLimit ))
  else
    PercentageQuotaUsed := 0;

  Label1.Caption := FloatToStr(QuotaLimit) + ' (' + FloatToStr(objUser.QuotaLimit) + ')';
  Label2.Caption := FloatToStr(QuotaUsed) + ' (' + FloatToStr(objUser.QuotaUsed ) + ')';
  Label3.Caption := IntToStr(PercentageQuotaUsed) + '%';

  // Setzt das Kontingent des Benutzer
  //objUser.QuotaLimit := 50 * 1048576;
end;
EDIT:
Und hier noch was schönes zu Active Directory:
Active Directory in Delphi


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 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