Welches Dateiformat soll ich nehmen?

  • Allgemein

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Welches Dateiformat soll ich nehmen?

    Hallo,

    ich mache derzeitig ein Praktikum in ner IT Firma und meine Aufgabe bestand darin, ein Programm zu schreiben welches mir Informationen aus
    einem Active Directory ausliest.
    Die Informationen beziehen sich hauptsächlich auf Nutzerdaten:
    • Alle Benutzernamen im Active Directory
    • Alle Gruppen im Active Directory
    • Gruppen in denen ein bestimmter Benutzer Mitglied ist.
    • Und Benutzer die Mitglied von Gruppen sind.

    Das funktioniert soweit super :whistling:

    Meine nächste Aufgabe besteht darin die Daten zu exportieren und ich soll mir auch Gedanken machen welches Dateiformat dafür am Besten in Frage käme.
    Mein Betreuer meinte, dass es schön wäre, wenn man die Daten auch einfach in Excel importieren könnte.

    Ich dachte dann an Xml, allerdings gibts ja Vor- und Nachteile bei der ganzen Sache.
    Die Firma hat relativ viele Mitarbeiter und basiert eigentlich komplett auf Active Directory.
    Das heißt wenn das Programm auf deren Domäne angesetzt wird, werden das ziemlich viele Daten sein die da ausgelesen werden.
    D.h. aber auch, dass die Xml Dateien schnell sehr groß werden können. Würdet ihr mir das Format dennoch empfehlen, wenn ja warum, wenn nein habt ihr andere Vorschläge?

    Ich danke euch im Voraus
    8o

    Markus Jacobs schrieb:

    D.h. aber auch, dass die Xml Dateien schnell sehr groß werden können.
    Dann fang mit einer größeren Festplatte an ;) (das sollte niemanden mehr interessieren).
    Mach Die ein typisiertes DataSet, leg Dir eine entsprechende DataTable an, deren Inhalt kannst Du mit .WriteXml(PATH) und .ReadXml(PATH) ganz easy handeln.
    Ein einfaches Beispiel findest Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Markus Jacobs schrieb:


    • Alle Benutzernamen im Active Directory
    • Alle Gruppen im Active Directory
    • Gruppen in denen ein bestimmter Benutzer Mitglied ist.
    • Und Benutzer die Mitglied von Gruppen sind.
    Active Directory ist eine Datenstruktur mit relationalen Zusammenhängen, und die 4 Punkte verlangen auch variable Präsentation derselben Daten.
    Ist so in Excel nur mit schlimmen Krämpfen (Daten-Redundanz), und auch nur teilweise hinzukriegen.
    Auch mit untypisierten Datatables nicht - jdfs bekommst du da kaum einen m:n-View hin, wo du einen User anwählst, und die Gruppen angezeigt bekommst, denen er angehört.
    guggemol vier Views-Videos
    oder vlt. auch gleich Datenverarbeitungs-Vorraussetzungen
    Danke für die Links,

    habe es jetzt einfach mit Xml gelöst.

    Ich habe auch vergessen zu erwähnen das die ganzen Daten nicht alle in eine Xml Datei müssen, sondern jeweils die Punkte die ich aufgelistet habe bekommen eine eigene.

    users.xml
    Spoiler anzeigen

    HTML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <users>
    3. <user>Administrator</user>
    4. <user>testbenutzer</user>
    5. <user>krbtgt</user>
    6. <user>Guest</user>
    7. <user>seh</user>
    8. </users>



    user_groups
    Spoiler anzeigen

    HTML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <users>
    3. <user>
    4. <name>Administrator</name>
    5. <groups>
    6. <group>Domain Users</group>
    7. <group>Administrators</group>
    8. <group>Group Policy Creator Owners</group>
    9. <group>Enterprise Admins</group>
    10. <group>Schema Admins</group>
    11. <group>Domain Admins</group>
    12. </groups>
    13. </user>
    14. <user>
    15. <name>testbenutzer</name>
    16. <groups>
    17. <group>Domain Users</group>
    18. <group>Praktikanten</group>
    19. </groups>
    20. </user>
    21. <user>
    22. <name>krbtgt</name>
    23. <groups>
    24. <group>Domain Users</group>
    25. <group>Denied RODC Password Replication Group</group>
    26. </groups>
    27. </user>
    28. <user>
    29. <name>Guest</name>
    30. <groups>
    31. <group>Domain Guests</group>
    32. <group>Guests</group>
    33. </groups>
    34. </user>
    35. <user>
    36. <name>seh</name>
    37. <groups>
    38. <group>Domain Users</group>
    39. </groups>
    40. </user>
    41. </users>



    groups.xml
    Spoiler anzeigen

    HTML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <groups>
    3. <group>
    4. <name>Allowed RODC Password Replication Group</name>
    5. </group>
    6. <group>
    7. <name>Enterprise Read-only Domain Controllers</name>
    8. </group>
    9. <group>
    10. <name>Denied RODC Password Replication Group</name>
    11. </group>
    12. <group>
    13. <name>Pre-Windows 2000 Compatible Access</name>
    14. </group>
    15. <group>
    16. <name>Windows Authorization Access Group</name>
    17. </group>
    18. <group>
    19. <name>Certificate Service DCOM Access</name>
    20. </group>
    21. <group>
    22. <name>Network Configuration Operators</name>
    23. </group>
    24. <group>
    25. <name>Terminal Server License Servers</name>
    26. </group>
    27. <group>
    28. <name>Incoming Forest Trust Builders</name>
    29. </group>
    30. <group>
    31. <name>Read-only Domain Controllers</name>
    32. </group>
    33. <group>
    34. <name>Group Policy Creator Owners</name>
    35. </group>
    36. <group>
    37. <name>Performance Monitor Users</name>
    38. </group>
    39. <group>
    40. <name>Cryptographic Operators</name>
    41. </group>
    42. <group>
    43. <name>Distributed COM Users</name>
    44. </group>
    45. <group>
    46. <name>Performance Log Users</name>
    47. </group>
    48. <group>
    49. <name>Remote Desktop Users</name>
    50. </group>
    51. <group>
    52. <name>Account Operators</name>
    53. </group>
    54. <group>
    55. <name>Event Log Readers</name>
    56. </group>
    57. <group>
    58. <name>RAS and IAS Servers</name>
    59. </group>
    60. <group>
    61. <name>Backup Operators</name>
    62. </group>
    63. <group>
    64. <name>Domain Controllers</name>
    65. </group>
    66. <group>
    67. <name>Server Operators</name>
    68. </group>
    69. <group>
    70. <name>Enterprise Admins</name>
    71. </group>
    72. <group>
    73. <name>Print Operators</name>
    74. </group>
    75. <group>
    76. <name>Administrators</name>
    77. </group>
    78. <group>
    79. <name>Domain Computers</name>
    80. </group>
    81. <group>
    82. <name>Cert Publishers</name>
    83. </group>
    84. <group>
    85. <name>DnsUpdateProxy</name>
    86. </group>
    87. <group>
    88. <name>Domain Admins</name>
    89. </group>
    90. <group>
    91. <name>Domain Guests</name>
    92. </group>
    93. <group>
    94. <name>Schema Admins</name>
    95. </group>
    96. <group>
    97. <name>Domain Users</name>
    98. </group>
    99. <group>
    100. <name>Praktikanten</name>
    101. </group>
    102. <group>
    103. <name>Replicator</name>
    104. </group>
    105. <group>
    106. <name>IIS_IUSRS</name>
    107. </group>
    108. <group>
    109. <name>DnsAdmins</name>
    110. </group>
    111. <group>
    112. <name>Guests</name>
    113. </group>
    114. <group>
    115. <name>Users</name>
    116. </group>
    117. </groups>



    group_users.xml
    Spoiler anzeigen

    HTML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <groups>
    3. <group>
    4. <name>Allowed RODC Password Replication Group</name>
    5. <members />
    6. </group>
    7. <group>
    8. <name>Enterprise Read-only Domain Controllers</name>
    9. <members />
    10. </group>
    11. <group>
    12. <name>Denied RODC Password Replication Group</name>
    13. <members>
    14. <member>
    15. <name>Read-Only Domain Controllers</name>
    16. </member>
    17. <member>
    18. <name>Group Policy Creator Owners</name>
    19. </member>
    20. <member>
    21. <name>Domain Admins</name>
    22. </member>
    23. <member>
    24. <name>Cert Publishers</name>
    25. </member>
    26. <member>
    27. <name>Enterprise Admins</name>
    28. </member>
    29. <member>
    30. <name>Schema Admins</name>
    31. </member>
    32. <member>
    33. <name>Domain Controllers</name>
    34. </member>
    35. <member>
    36. <name>krbtgt</name>
    37. </member>
    38. </members>
    39. </group>
    40. <group>
    41. <name>Pre-Windows 2000 Compatible Access</name>
    42. <members>
    43. <member>
    44. <name>Authenticated Users</name>
    45. </member>
    46. </members>
    47. </group>
    48. <group>
    49. <name>Windows Authorization Access Group</name>
    50. <members>
    51. <member>
    52. <name>ServerLogon</name>
    53. </member>
    54. </members>
    55. </group>
    56. <group>
    57. <name>Certificate Service DCOM Access</name>
    58. <members />
    59. </group>
    60. <group>
    61. <name>Network Configuration Operators</name>
    62. <members />
    63. </group>
    64. <group>
    65. <name>Terminal Server License Servers</name>
    66. <members />
    67. </group>
    68. <group>
    69. <name>Incoming Forest Trust Builders</name>
    70. <members />
    71. </group>
    72. <group>
    73. <name>Read-only Domain Controllers</name>
    74. <members />
    75. </group>
    76. <group>
    77. <name>Group Policy Creator Owners</name>
    78. <members>
    79. <member>
    80. <name>Administrator</name>
    81. </member>
    82. </members>
    83. </group>
    84. <group>
    85. <name>Performance Monitor Users</name>
    86. <members />
    87. </group>
    88. <group>
    89. <name>Cryptographic Operators</name>
    90. <members />
    91. </group>
    92. <group>
    93. <name>Distributed COM Users</name>
    94. <members />
    95. </group>
    96. <group>
    97. <name>Performance Log Users</name>
    98. <members />
    99. </group>
    100. <group>
    101. <name>Remote Desktop Users</name>
    102. <members />
    103. </group>
    104. <group>
    105. <name>Account Operators</name>
    106. <members />
    107. </group>
    108. <group>
    109. <name>Event Log Readers</name>
    110. <members />
    111. </group>
    112. <group>
    113. <name>RAS and IAS Servers</name>
    114. <members />
    115. </group>
    116. <group>
    117. <name>Backup Operators</name>
    118. <members />
    119. </group>
    120. <group>
    121. <name>Domain Controllers</name>
    122. <members>
    123. <member>
    124. <name>DEBIANSERVER$</name>
    125. </member>
    126. </members>
    127. </group>
    128. <group>
    129. <name>Server Operators</name>
    130. <members />
    131. </group>
    132. <group>
    133. <name>Enterprise Admins</name>
    134. <members>
    135. <member>
    136. <name>Administrator</name>
    137. </member>
    138. </members>
    139. </group>
    140. <group>
    141. <name>Print Operators</name>
    142. <members />
    143. </group>
    144. <group>
    145. <name>Administrators</name>
    146. <members>
    147. <member>
    148. <name>Domain Admins</name>
    149. </member>
    150. <member>
    151. <name>Enterprise Admins</name>
    152. </member>
    153. <member>
    154. <name>Administrator</name>
    155. </member>
    156. </members>
    157. </group>
    158. <group>
    159. <name>Domain Computers</name>
    160. <members>
    161. <member>
    162. <name>PALLAS$</name>
    163. </member>
    164. </members>
    165. </group>
    166. <group>
    167. <name>Cert Publishers</name>
    168. <members />
    169. </group>
    170. <group>
    171. <name>DnsUpdateProxy</name>
    172. <members />
    173. </group>
    174. <group>
    175. <name>Domain Admins</name>
    176. <members>
    177. <member>
    178. <name>Administrator</name>
    179. </member>
    180. </members>
    181. </group>
    182. <group>
    183. <name>Domain Guests</name>
    184. <members>
    185. <member>
    186. <name>Guest</name>
    187. </member>
    188. </members>
    189. </group>
    190. <group>
    191. <name>Schema Admins</name>
    192. <members>
    193. <member>
    194. <name>Administrator</name>
    195. </member>
    196. </members>
    197. </group>
    198. <group>
    199. <name>Domain Users</name>
    200. <members>
    201. <member>
    202. <name>Administrator</name>
    203. </member>
    204. <member>
    205. <name>testbenutzer</name>
    206. </member>
    207. <member>
    208. <name>krbtgt</name>
    209. </member>
    210. <member>
    211. <name>seh</name>
    212. </member>
    213. </members>
    214. </group>
    215. <group>
    216. <name>Praktikanten</name>
    217. <members>
    218. <member>
    219. <name>testbenutzer</name>
    220. </member>
    221. </members>
    222. </group>
    223. <group>
    224. <name>Replicator</name>
    225. <members />
    226. </group>
    227. <group>
    228. <name>IIS_IUSRS</name>
    229. <members>
    230. <member>
    231. <name>IUSR</name>
    232. </member>
    233. </members>
    234. </group>
    235. <group>
    236. <name>DnsAdmins</name>
    237. <members />
    238. </group>
    239. <group>
    240. <name>Guests</name>
    241. <members>
    242. <member>
    243. <name>Domain Guests</name>
    244. </member>
    245. <member>
    246. <name>Guest</name>
    247. </member>
    248. </members>
    249. </group>
    250. <group>
    251. <name>Users</name>
    252. <members>
    253. <member>
    254. <name>Domain Users</name>
    255. </member>
    256. <member>
    257. <name>Interactive</name>
    258. </member>
    259. <member>
    260. <name>Authenticated Users</name>
    261. </member>
    262. </members>
    263. </group>
    264. </groups>



    shared_folders.xml
    Spoiler anzeigen

    HTML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <shared_folders>
    3. <shared_folder>
    4. <name>Praktikanten</name>
    5. </shared_folder>
    6. </shared_folders>



    Wie gesagt, dass man das nachher in Excel importieren können soll sind Verfeinerungen und nicht umbedingt notwendig.
    dann nimm typisiertes Dataset, und mach darin ein angemessenes Datenmodell, dann kann man darauf auch eine ordentliche Präsentation oder gar Datenverarbeitung aufbauen.
    Der Punkt ist: In Wirklichkeit sind die Daten aufeinander bezogen, und diese Beziehungen müssen auch im Datenmodell modelliert sein, sonst Crap.
    Im typDataset kein Problem, Beziehungen zu modellieren (dazu isses ja da), aber wenn du die Daten auf verschiedene Dateien verteilst geht beziehungsmäßig nichts mehr.

    Excel-Export ist ein anneres Thema - da würde ich die Worksheet ganz "dumm" halten. Eine Tabellenkalkulation ist nunmal sehr unzureichend ausgestattet, um die Bezogenheit der Daten untereinander angemessen zu präsentieren.
    In Beziehung sollen die Daten eigentlich auch nicht stehen, die dienen wirklich nur zum Auslesen z.B. Welcher Benutzer ist in dieser oder dieser Gruppe unterwegs usw.

    So wie ich des jetzt hab passts eigentlich schon. Werde mir jetzt gleich mal alle Links anschauen und das damit auch nochmal machen damit ich was dazu lerne.

    ErfinderDesRades schrieb:

    Excel-Export ist ein anneres Thema - da würde ich die Worksheet ganz "dumm" halten. Eine Tabellenkalkulation ist nunmal sehr unzureichend ausgestattet, um die Bezogenheit der Daten untereinander angemessen zu präsentieren.
    Da geht schon einiges.
    Es gibt diverse Lookup- sowie Index-Funktionen.
    Wenn's sein muss, sogar als Array-Formel.

    Eine so einfache Struktur wie die hier beschriebene lässt sich problemlos sogar dynamisch darstellen.
    Und eine XML-Datei als Datenquelle anzubinden ist auch kein Problem.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --