Antwort schreiben

Re: Biland's Problem

Mi 2. Apr 2008, 17:17

fantastic hat geschrieben:wennes @ vordera stellsch chasch der die dopplete slashs schänke, gloubs ömu ergendwie :gnah:


chönt no sii..

Mi 2. Apr 2008, 17:17

Re: Biland's Problem

Do 3. Apr 2008, 10:27

sry für de doppelpost, aber falls öpper öppis ähnlichs brucht:

to do's: für de jewiligi ordner die richtige berechtigunge setze und freigeh

aktuellschti stand:

Code:
/*
 * *********************************************
 * Programmiert von Pascal Biland              *
 * Für die BerufsFachSchule BerufsBildungBaden *
 * Am 3. April 2008                            *
 * Thx 2 CCnF                                  *
 * *********************************************
 */


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using System.IO;

namespace Homeverzeichnisse
{
    class Program
    {
        static void Main(string[] args)
        {           
            System.IO.StreamWriter writer;
            string[] arOrdner = new string[4000];                                                                               // Array für die Ordnerliste
            string[] arBenutzer = new string[4000];                                                                             // Array für die Benutzer für späterer Array zu Array Vergleich
            int intZaehler = 0;                                                                                                 // Zähler für die Anzahl ausgelesener Einträge                                                                                               
            System.DirectoryServices.DirectoryEntry entry = new System.DirectoryServices.DirectoryEntry("LDAP://ADC1");         // Entry in ADC1
            System.DirectoryServices.DirectorySearcher search = new System.DirectoryServices.DirectorySearcher(entry);          // Sucher
            search.Filter = "(&(objectClass=user)(objectCategory=Person)" + "(SamAccountName=*))";                              // Suchfilter
           

            writer = System.IO.File.CreateText("c:\\TestFile.txt");                                                             // File für die Benutzerliste
            search.PageSize = 10000;                                                                                            // Hochsetzung der Pagesize, da ansonsten nur 999 Einträge ausgelsen werden können
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Beginne mit Auslesung der Benutzer aus ADC1");
            Console.WriteLine("-------------------------------------------------");
            foreach (System.DirectoryServices.SearchResult result in search.FindAll())                                          // Für jedes Suchresultat
            {               
                string strY = result.GetDirectoryEntry().Path;                                                                  // Suchresultat an strY übergeben (handlicher)
                int intAbfallbrauch = strY.IndexOf(",", 0) - 15;                                                                // Suche das erste Komma raus ab der ersten Stelle, ziehe 15 ab und du weisst, wie lange der Name ist
                if (strY.Substring(15, 6) == "System")                                                                          // Falls die ersten 6 Buchstaben "System" sind zu nichts
                {                   
                }
                else
                {
                    if (strY.Substring(15, 3) == "adm")                                                                         // Filtere adm Accounts
                    {
                    }
                    else
                    {
                        writer.WriteLine(strY.Substring(15, intAbfallbrauch));                                                  // sonst, schreib ab der 15 Stelle bis zum Komma ins Textfile
                        arBenutzer[intZaehler] = strY.Substring(15, intAbfallbrauch);
                        intZaehler++;
                    }
                   
                }
               
            }
            writer.Close();
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Es wurden " + intZaehler + " Datensätze eingelesen!");                                           // Angabe der Anzahl Datensätze
            Console.WriteLine("-------------------------------------------------");

            StreamReader reader = new StreamReader("c:\\TestFile.txt");                                                         // Textausleser
           
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Beginne mit Ordnerüberprüfung!");
            Console.WriteLine("-------------------------------------------------");
                       
            string input = reader.ReadLine();                                                                                   // Erster Input
            string strPfad = "c:\\test\\";                                                                                      // Variable für den Pfad
            while (input != null)                                                                                               // Tu es, solange der input nicht leer ist (Bis er das File durchgearbeitet hat)
            {
                System.IO.Directory.CreateDirectory(strPfad + input + "$");                                                     // Erstelle ein Verzeichnis mit Pfad (strPfad) + input (pascal.biland) + $
                input = reader.ReadLine();                                                                                      // Lese nächste Zeile ein
            }

           
            arOrdner = System.IO.Directory.GetDirectories(strPfad);                                                             // Ordnerliste ins Array einlesen
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Beginne mit Ordnerabgleich!");
            Console.WriteLine("-------------------------------------------------");
            for (int i = 0; i < intZaehler; i++)                                                                               // Arrayvergleich
            {
                string[] ArTemp = new string[4000];
                ArTemp[i] = arOrdner[i].Substring(8, arOrdner[i].Length -9);
                if (ArTemp[i] == arBenutzer[i])
                {
                }
                else
                {
                    System.IO.Directory.Delete(arOrdner[i],true);                                                               // Ordner löschen, falls der Benutzer dazu nicht mehr existiert
                }
            }
        }

    }
}




Re: Biland's Problem

Do 3. Apr 2008, 10:41

worum machsch du
Code:
if (ArTemp[i] == arBenutzer[i])
                {
                }
                else
                {
                    System.IO.Directory.Delete(arOrdner[i],true);                                                               // Ordner löschen, falls der Benutzer dazu nicht mehr existiert
                }

und ned
Code:
if (ArTemp[i] != arBenutzer[i])
 {
           System.IO.Directory.Delete(arOrdner[i],true);   
 // Ordner löschen, falls der Benutzer dazu nicht mehr existiert
 }

Re: Biland's Problem

Do 3. Apr 2008, 11:53

wege denne paar bytes..
söscht chond min chef ned drus :D

Re: Biland's Problem

Do 3. Apr 2008, 12:05

notura hat geschrieben:wege denne paar bytes..
söscht chond min chef ned drus :D



im andi sis gseht schöner us... denn het er jo no weniger ahnig als ich^^ aso sehr schlecht demfall...

Re: Biland's Problem

Do 10. Apr 2008, 13:04

es update mini herre:

Code:
/*
 * *********************************************
 * Programmiert von Pascal Biland              *
 * BerufsFachSchule BerufsBildungBaden         *
 * Am 3. April 2008                            *
 * Version 1.0                                 *
 * Thx 2 CCnF                                  *
 * *********************************************
 */


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using System.IO;

namespace Homeverzeichnisse
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime now = DateTime.Now;
            string year = now.Year.ToString();
            string month = now.Month.ToString();
            string day = now.Day.ToString();

            if (month.Length < 2)
            {
                month = "0" + month;
            }
            if (day.Length < 2)
            {
                day = "0" + day;
            }

            string date = year + month + day;

            System.IO.StreamWriter systemwriter;
            systemwriter = System.IO.File.CreateText("c:\\Logs\\" + date + ".txt");

            string[] arOrdner = new string[4000];                                                                               // Array für die Ordnerliste
            string[] ArTemp = new string[4000];
            string[] arBenutzer = new string[4000];                                                                             // Array für die Benutzer für späterer Array zu Array Vergleich
            int intZaehler = 0;                                                                                                 // Zähler für die Anzahl ausgelesener Einträge
                                                                                             
            System.DirectoryServices.DirectoryEntry entry = new System.DirectoryServices.DirectoryEntry("LDAP://ADC1");         // Entry in ADC1
            System.DirectoryServices.DirectorySearcher search = new System.DirectoryServices.DirectorySearcher(entry);          // Sucher
            search.Filter = "(&(objectClass=user)(objectCategory=Person)" + "(SamAccountName=*))";                              // Suchfilter

            search.PageSize = 10000;                                                                                            // Hochsetzung der Pagesize, da ansonsten nur 999 Einträge ausgelsen werden können
 
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Beginne mit Auslesung der Benutzer aus ADC1");
            Console.WriteLine("-------------------------------------------------");
           
            foreach (System.DirectoryServices.SearchResult result in search.FindAll())                                          // Für jedes Suchresultat
            {               
                string strY = result.GetDirectoryEntry().Path;                                                                  // Suchresultat an strY übergeben (handlicher)
                int intAbfallbrauch = strY.IndexOf(",", 0) - 15;                                                                // Suche das erste Komma raus ab der ersten Stelle, ziehe 15 ab und du weisst, wie lange der Name ist
                if (strY.Substring(15, 6) != "System")                                                                          // Falls die ersten 6 Buchstaben "System" sind zu nichts
                {
                    if (strY.Substring(15, 3) != "adm")                                                                         // Filtere adm Accounts
                    {
                        arBenutzer[intZaehler] = strY.Substring(15, intAbfallbrauch);
                        intZaehler++;
                    }                 
                } 
               
            }
           
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Es wurden " + intZaehler + " Datensätze eingelesen!");                                           // Angabe der Anzahl Datensätze
            Console.WriteLine("-------------------------------------------------");
           
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Beginne mit der Existenzprüfung der Ordner und eventueller Erstellung!");
            Console.WriteLine("-------------------------------------------------");

            string strPfad = "c:\\Homeverzeichnisse\\";                                                                                      // Variable für den Pfad
            bool blPfad = false;

            for (int i = 0; i < intZaehler; i++)
            {
                blPfad = System.IO.Directory.Exists(strPfad + arBenutzer[i]);
                if (blPfad == false)
                {
                    System.IO.Directory.CreateDirectory(strPfad + arBenutzer[i]);
                    systemwriter.WriteLine(arBenutzer[i] + " :Der Ordner für diesen Benutzer wurde erstellt");
                }
                                                                   
            }
           
           
            arOrdner = System.IO.Directory.GetDirectories(strPfad);                                                             // Ordnerliste ins Array einlesen
           
            Console.WriteLine("-------------------------------------------------");
            Console.WriteLine("Beginne mit der Existenzprüfung der Benutzer und eventueller Löschung!");
            Console.WriteLine("-------------------------------------------------");

           
            for (int i = 0; i < intZaehler; i++)
            {
                ArTemp[i] = arOrdner[i].Substring(21, arOrdner[i].Length -21);
            }
            for (int i = 0; i < intZaehler; i++)                                                                               // Arrayvergleich
            {
                for (int y = 0; y < intZaehler + 1; y++)
                {
                    if (arBenutzer[y] == ArTemp[i])
                    {
                        break;
                    }
                    else
                    {
                        if (y == intZaehler)
                        {
                            System.IO.Directory.Delete(arOrdner[i], true);
                            systemwriter.WriteLine(arOrdner[i] + ": Dieser Ordner wurde gelöscht");
                        }
                    }
                }
            }
            systemwriter.Close();
        }

    }
}



neuerige:


Löscht und erstellt Homeverzeichnis voneleige
Macht Logs im richtige Format zur sortierig (thx 2 benj)

Re: Biland's Problem

Mo 21. Apr 2008, 08:51

neui woche - neus problem


De Benutzer wird jo be "Sicherheit" itreid, abr s d höögli setzts ned..

Mein Methode zum setzen der Rechte:

Code:
static public void AddDirectorySecurity(String dirpath, String account, FileSystemRights rights, AccessControlType controlType)
        {
            DirectoryInfo dinfo = new DirectoryInfo(dirpath);

            DirectorySecurity dSecurity = dinfo.GetAccessControl();

            try
            {
                dSecurity.AddAccessRule(new FileSystemAccessRule(account, rights, controlType));
            }
            catch (Exception)
            {
                MessageBox.Show("Es konnten keine Zugriffsberechtigungen für den Ordner gesetzt werden.\n" +
                    dirpath);
            }

            dinfo.SetAccessControl(dSecurity);
        }

So rufe ich sie dann auf:
Code:
AddDirectorySecurity(path1, account, FileSystemRights.Read, AccessControlType.Allow);

hed öpper en idee?


// E: hed sich erlediged..
Antwort schreiben




Bei iphpbb3.com bekommen Sie ein kostenloses Forum mit vielen tollen Extras
Forum kostenlos einrichten - Hot Topics - Tags
Beliebteste Themen: Wii, Software, NES, Games, Forum

Impressum | Datenschutz