Zum Inhalt springen

Verzeichnis erstellen und freigeben


deluxeone

Empfohlene Beiträge

Hey was hat mein Thema mit Windows Betriebssyteme zu tun wenn ich ein Script brauche wie ich in C++ eine Verzeichnis erstellen und dabei das Verzeichnis mittels eines Scripts in C++ freigebe für User........auf einem Win2000 Rechner.......

Mein Frage bezieht sich schon auf das Thema C++. Nämlich wie ich

1. ein Verzeichnis erstelle

2. das Verzeichnis freigebe

Und komm mir nicht mit der Rechten Maustasten Philo.......Freigeben und dann Berechtigungen......für 1000 User Verzeichnis erstellen + Freigeben...Ha Ha Ha.......

Nein Danke!!!

Also schieb mich mal schön wieder zurück Klotzkopp

danke deluxeone

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zwei Punkte:

Erstens sind Anmerkungen zu Moderationsentscheidungen in den jeweiligen Fachforen OffTopic, so was klärt man besser per PM.

Zweitens solltest Du vielleicht nochmal genau nachsehen, wohin ich Deinen Beitrag verschoben habe, und die Kritik (und vielleicht auch die Form, in der sie angebracht wurde) überdenken. Alternativ kannst Du mir sagen, wie das, was Du vorhast, mit Standard-C/C++ funktionieren soll, dann schiebe ich Dich gern zurück.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok die Alternative:

#include <direct.h>

//Borland: statt direct.h dir.h

void main()

{

_mkdir("C:/Test");//Verzeichnis erstellen

_rmdir("C:/Test");//Verzeichnis löschen

}

So erstelle ich ein Verzeichnis.....Ok das habe ich ja schon selber herausgefunden......und jetzt wie vergebe ich Berechtigungen auf das Verzeichnis ????????

gruß deluxeone

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn Du die Verzeichnisse mit CreateDirectory anlegst, kannst Du die Zugriffsrechte über die SECURITY_ATTRIBUTES-Struktur definieren. Dazu musst Du Dich mit ACLs und SIDs und dem ganzen Sicherheitskram rumschlagen.

Die wahrscheinlich einfachere Alternative:

cacls ausführen - über system oder ShellExecute.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier ein einfaches Beispiel, ohne Fehlerbehandlung:

SECURITY_ATTRIBUTES sa;
SECURITY_DESCRIPTOR sd;
BYTE sidBuffer[100];
BYTE aclBuffer[500];
PSID psid=(PSID) &sidBuffer;
PACL pacl=(PACL) &aclBuffer;
DWORD sidBufferSize = 100;
char domainBuffer[80];
DWORD domainBufferSize = 80;
SID_NAME_USE snu;

InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);
InitializeAcl(pacl, 500, ACL_REVISION);
LookupAccountName(0, "Benutzername", psid, &sidBufferSize, domainBuffer, &domainBufferSize, &snu);
AddAccessAllowedAce(pacl, ACL_REVISION, GENERIC_READ | GENERIC_WRITE, psid);

SetSecurityDescriptorDacl(&sd, TRUE, pacl, FALSE);

sa.nLength= sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = FALSE;
sa.lpSecurityDescriptor = &sd;

CreateDirectory("C:\\Verzeichnis", &sa);[/CODE]

Dieses Beispiel legt ein Verzeichnis "C:\Verzeichnis" an, und erteilt dem Benutzer "Benutzername" des lokalen Rechners Lese- und Schreibrechte.

Wenn Du mehr als einem Benutzer Rechte einräumen willst, musst Du entsprechend LookupAccountName mehrfach aufrufen, um an die SIDs zu gelangen, daraus ACEs zu machen, und der ACL hinzuzufügen. Falls Du explizit Rechte entziehen willst, musst Du darauf achten, zuerst die AddAccessDeniedAce-Aufrufe zu machen, und danach erst die Aufrufe von AddAccessAllowedAce. Welche Rechte es explizit sind, steht im dritten Parameter von AddAccessAllowed/DeniedAce.

Wenn das Verzeichnis schon existiert, musst Du CreateFile verwenden, um die Berechtigungen zu ändern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Wird schwierig, wenn Du uns die Fehlermeldungen nicht nennst ;). Was die Kompaktheit angeht, bei dem Code fehlen sogar die Fehlerprüfungen. Alle Funktionsaufrufe in dem Beispiel können fehlschlagen, was natürlich behandelt werden muss.

Die Alternative, und IMHO erheblich einfacher, dürfte immer noch sein, aus dem Programm heraus das Tool cacls aufzurufen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

OK soweit so gut es klappt......

Warum sehe ich aber nicht was der Benutzer für Berechtigungen hat???? Damit meine Ich lege einen Ordner an mit dem Verzeichnis BEnutzernamen jedoch kann ich nicht sehen wie die Berechtigungen sind?????

Warum geht das nicht?????

Noch was wie binde ich das ganz ein bei 1000 User wobei Userid = Verzeichnis sein soll und gleichzeitig die Berechtigungen vergeben werden sollen....

Noch was wo kann ich das Nachlesen was alles was ist und was es heisst....

Dank schon mal für deine Hilfe.....

Gruß deluxeone

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von deluxeone

Warum sehe ich aber nicht was der Benutzer für Berechtigungen hat???? Damit meine Ich lege einen Ordner an mit dem Verzeichnis BEnutzernamen jedoch kann ich nicht sehen wie die Berechtigungen sind?????

Was meinst Du mit "kann ich nicht sehen"?

Noch was wie binde ich das ganz ein bei 1000 User wobei Userid = Verzeichnis sein soll und gleichzeitig die Berechtigungen vergeben werden sollen....
Hast Du eine Liste der Benutzer, oder musst Du die erst noch holen?

Noch was wo kann ich das Nachlesen was alles was ist und was es heisst....
MSDN Library, unter Security->Authorization. Da hab ich auch alles her, was ich Dir bisher erzählt habe ;).
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 6 Jahre später...

Hallo,

ich muss mich mal hier ranhängen.

Ich erstelle auf einem Remotcomputer mit einem Service-Account Ordner. Nun ist dieser Service-Account der Besitzer und der Nutzer des Remote-Computers kann die Verzeichnisse nicht löschen. Soll er aber dürfen.

Was muss ich angeben, um den Besitzer gleich auf den Nutzer festzulegen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...