| | | Was bringt der 3D-Druck in der Elektronik?, eine Pressemitteilung
|
Autor
|
Thema: Excel Dateien mit Kennwort-Blattschutz ect. finden (2739 mal gelesen)
|
Garry Mitglied Techniker/Konstrukteur
Beiträge: 684 Registriert: 05.03.2003
|
erstellt am: 29. Nov. 2011 11:44 <-- editieren / zitieren --> Unities abgeben:
Hallo, wir haben im Netzwerk viele Excel-Dateien. Manche Mitarbeiter(trotz Verbot) Schützen Blätter Mappen oder Zellen. Meine Frage. Gibt es eine möglichkeit Excel-Dateien ausfindig zu machen, diese in Irgendeiner weise einen Schutz haben. Natürlich ohne jede zu Öffnen. Wir möchten dies Rausfiltern und über den Admin sperren lassen bis das Kennwort rausgegeben wurde. ------------------ Gruß Garry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 29. Nov. 2011 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
Hallo Garry, hm - "ohne zu Öffnen" ist mir nichts bekannt ... Was spricht gegen öffnen, nachgucken, Änderungen - i. d. R. kommt eine Rückfrage seitens Excel, bitte testen! - nicht speichern? Verstehe, dass die (unartigen) Kollegen nicht unbedingt wissen müssen, was gerade vor sich geht; oder ist es schlichtwege die Menge an Dateien, die zu untersuchen wäre? Vielleicht geht sowas mit VBA; hoffe, hier kommt noch jemand vorbei ... ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 29. Nov. 2011 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
Zitat: Original erstellt von Garry: Wir möchten dies Rausfiltern und über den Admin sperren lassen bis das Kennwort rausgegeben wurde.
Nice, ein Admin , der nicht weiss wie er sich da behelfen könnte Da bei Blattschutz der Hashwert geprüft wird um es zu entsperren, muss nur die Entsprechende Routine vorhanden sein ;-) IMHO ->google hilft Mir persönlich is es egal ob Blatt oder ein Projekt-Schutz drauf ist - wenn die Neugier gross genug ist , geht beides auf. Und Blätter, Mappen, Zellen zu schützen - muss nicht ein Unart sein. Hat auch was mit Bedienungs-Komfort (Auswahl auf bestimmte Zellen) oder ersparen von unnötiger Arbeit (Weil Anwender wieder mal die Formel gelöscht hat) zu tun Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Garry Mitglied Techniker/Konstrukteur
Beiträge: 684 Registriert: 05.03.2003
|
erstellt am: 29. Nov. 2011 13:23 <-- editieren / zitieren --> Unities abgeben:
Thomas, der Admin macht das eher Nebenberuflich (Extern), ich habe eher die Aufgabe, die Geschützten Daten zu finden. Aber bei der Menge von Daten habe ich keine Lust jede Datei zu öffnen und zu Schauen. geschützt JA oder NEIN. Die Mitarbeiter haben dafür Extra Kennwörter bekommen wo dafür verwendet werden sollen. Nein sie nehmen eigene. Habe mir gedacht jemand weiss vielleicht wie man die Ausfindig machen kann, als normaler User. ------------------ Gruß Garry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 29. Nov. 2011 18:11 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
Zitat: Original erstellt von Garry: ... dafür Extra Kennwörter bekommen wo dafür verwendet werden sollen. Nein sie nehmen eigene. Habe mir gedacht jemand weiss vielleicht wie man die Ausfindig machen kann, als normaler User.
Garry, wir kommen in neue Dimensionen;-) Es soll garnicht nur geprüft werden ob Schutz ja/nein, sondern wenn Schutz=ja, soll das PW gefunden werden und mit der firmeninternen Liste abgeglichen werden, ob gutes oder böses PW? Aber vielleicht verstehe ich das grade nur falsch - egal, hab Dir unten mal einen ganz simplen Code angehängt, der alle *.xls in einem Ordner auf Blattschutz prüft und im Direktfenster ausgibt. Allerdings mit Öffnen. (Ohne zu öffnen, hm - keinen Plan, vielleicht den Hexdump durchforsten;-)) Aber egal wie, IMHO löst das dein Problem nicht, da es 'Extra Kennwörter' gibt, beisst sich die Katze in den Schwanz. Dann lieber allen Files das Passwort: "Susi" drüberbraten - 1x in der Woche;-) Würde das PW eher als 'Hinderung vor unbeabsichtigten Überschreiben' sehen als einen dauerhaft effektiven Schutz. lg Nancy --
Code: Sub test() Dim f$, p$, wSheet p = "e:\Ordner\" '<- Pfad angeben f = Dir(p & "*.xls") Application.EnableEvents = False Application.ScreenUpdating = False Do While f <> "" Workbooks.Open p & f, , True With ActiveWorkbook For Each wSheet In .Worksheets If wSheet.ProtectContents Then Debug.Print .FullName Exit For End If Next .Close End With f = Dir Loop Application.EnableEvents = True Application.ScreenUpdating = True End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 29. Nov. 2011 20:33 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
ich nehme mal Nancys Schnippsel auf definiere Array mit erlaubten Passwörtern "HUGO", "Benedikt", "Caesar", "Dominik", "NIX" Durchlaufe den Ordner Prüfe(Unprotect) die Sheets auf erlaubte PW anschliessend setze das PW wieder und stelle Flag auf 1 wenn flag = 0 dann war kein PW zutreffend, dann mache Bruteforce auf PW, Anschliessend Setze PW HUGO weiter mit... Code:
Sub test() Dim f$, p$, wSheet Dim PWname PWname = Array("HUGO", "Benedikt", "Caesar", "Dominik", "NIX") '5 PW flag = 0 p = "C:\xls-test\xl\" '<- Pfad angeben f = Dir(p & "*.xls") 'Application.EnableEvents = False Application.ScreenUpdating = False Do While f <> "" Workbooks.Open p & f, , False 'True ist mit schreibschutz With ActiveWorkbook For Each wSheet In .Worksheets If wSheet.ProtectContents Then On Error Resume Next flag = 0 For x = 0 To 4 PW = PWname(x) ActiveSheet.Unprotect PWname(x) If wSheet.ProtectContents = False Then ActiveSheet.Protect PWname(x) flag = 1 Exit For End If Next If flag = 0 Then Blattschutz_loeschen flag = 0 End If 'Debug.Print .FullName Exit For End If Next .Close End With f = Dir Loop Application.EnableEvents = True Application.ScreenUpdating = True End Sub Sub Blattschutz_loeschen() On Error Resume Next ı ʇxǝu ظ ʇxǝu ʞ ʇxǝu ן ʇxǝu ɯ ʇxǝu u ʇxǝu o ʇxǝu d ʇxǝu b ʇxǝu ɹ ʇxǝu s ʇxǝu ʇ ʇxǝu (ʇ;)ɹɥɔ & (s)ɹɥɔ & (ɹ;)ɹɥɔ & (b)ɹɥɔ & (d)ɹɥɔ & (o)ɹɥɔ & (u)ɹɥɔ ‾ & (ɯ;)ɹɥɔ & (ן;)ɹɥɔ & (ʞ;)ɹɥɔ & (ظ;)ɹɥɔ & (ı;)ɹɥɔ ʇɔǝʇoɹdun˙ʇǝǝɥsǝʌıʇɔɐ 921 oʇ 23 = ʇ ɹoɟ 99 oʇ 59 = s ɹoɟ 99 oʇ 59 = ɹ ɹoɟ 99 oʇ 59 = b ɹoɟ 99 oʇ 59 = d ɹoɟ 99 oʇ 59 = o ɹoɟ 99 oʇ 59 = u ɹoɟ 99 oʇ 59 = ɯ ɹoɟ 99 oʇ 59 = ן ɹoɟ 99 oʇ 59 = ʞ ɹoɟ 99 oʇ 59 = ظ ɹoɟ 99 oʇ 59 = ı ɹoɟ ActiveSheet.Protect Password:="HUGO" MsgBox "PW Fertig - setzt HUGO" End Sub
ich habe mir erlaubt einen Teil des Codes horizontal und vertikal zu verdrehen ;-)in der Zip-Datei sind 4 XLS, eines mit dem Makro, die anderen 3 enthalten im ersten Sheet einen Blattschutz mit dem PW wie sie benannt sind, nach durchlaufen des Makros , sollte PW SUSI in HUGO geändert worden sein, die anderen bekannten PW (hier HUGO) wurden wieder gesetzt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Garry Mitglied Techniker/Konstrukteur
Beiträge: 684 Registriert: 05.03.2003
|
erstellt am: 30. Nov. 2011 13:00 <-- editieren / zitieren --> Unities abgeben:
|
Garry Mitglied Techniker/Konstrukteur
Beiträge: 684 Registriert: 05.03.2003 WIN10 (64bit), SWX 2019 Premium SP5, PDM-Pro2019 , XEON W-3225-3,7GHz 128GB, NVidia RT6000 SpacePilot Pro, SSD500GB Office 365
|
erstellt am: 30. Nov. 2011 14:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, So jetzt habe ich noch 2 Fragen. 1) Kann man den Pfad auch so Definieren, das dieser auch Unter-Ordner mit durchsucht. 2) Kann man das auch Erweitern auf einen Arbeitsmappen-schutz das diese PW auch in HUGO geaendert wird. Sollte irgend etwas dabei sein wo nicht mehr Erlaubt ist. Kann man dann diese Dateien+Pfad, diese in Irgeneiner weise ein PW haben in ein TXT File schreiben, damit wir diese Kontrollieren können und evt. für die komplette Benutzung sperren- oder zum löschen Freigeben. ------------------ Gruß Garry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 30. Nov. 2011 18:05 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
1) denke mal ja <vba verzeichnisse durchsuchen> 2) auch denke mal ja <vba Arbeitsmappen schutz> 3) klar- der Namen des Verzeichnis, Excelmappe, Tabellenblatt, bekanntes vorhandenes PW (unbekannte geht nicht), geändertes PW etc. alles lässt sich in eine txt streamen, man muss den code nur schreiben ;-) <vba txt streamen> ich bin kein Programmierer ;-) aber bei den obigen 3 Punkten würde ich mich mit der Netzsuche auseinandersetzen und mir verschiedene Code-Schnippsel anschauen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 30. Nov. 2011 19:40 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
Hi nochmal, ein Ansatz zu 3.), den auskommentierten Part habe ich nur 1x getestet, aktuell schreibt er erstmal eine Liste mit allen gefundenen xls. Wenn du rumprobierst, nimm nicht allzu viele Files/Unterverzeichnisse in Angriff, Sreenupdate & Enableevents in der Garry() musste noch setzen. Ansonsten überlege, was du in der xlTest() tust, wegen: Error 13: Recursion Error > see Error 13 sprich, die xlTest ruft sich immer wieder selbst auf, solange bis der letzte Unterordner erreicht wurde. Alternativ, kommentiere die letzte Schleife aus, das wäre dann der Stand wie meine erste Antwort in dem Thread. Matsch Fun beim Basteln;-) lg Nancy --
Code: Sub Garry() Dim fso As Object, ofolder As Object Set fso = CreateObject("Scripting.FileSystemObject") Set ofolder = fso.getfolder("e:\cad\xxx\yyy\") Open "e:\xl_blacklist.txt" For Output As #1 xlTest ofolder Close #1 Set fso = Nothing End SubSub xlTest(fld As Object) Dim subfld As Object, fil As Object, x For Each fil In fld.Files If fil.Type = "Microsoft Excel-Arbeitsblatt" Then Print #1, fil.Path ''''''''''''''' Workbooks.Open fil.Path ''''''''''''''' For Each x In ActiveWorkbook.Worksheets ''''''''''''''' If x.ProtectContents Then Print #1, fil.Path: Exit For ''''''''''''''' Next ''''''''''''''' ActiveWorkbook.Close 0 End If Next For Each subfld In fld.subfolders xlTest subfld Next End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Garry Mitglied Techniker/Konstrukteur
Beiträge: 684 Registriert: 05.03.2003
|
erstellt am: 01. Dez. 2011 10:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Nancy, habe das mit deinem Code getestet und Probiert, das klappt, das er mir die Excel Dateien in die Blacklist schreibt. Mein Problem ist jetzt. Er schreibt alle rein Geschützt oder nicht. Kannst du mir sagen was ich jetzt da ändern muss damit er nur die mit PW Reinschreibt. ------------------ Gruß Garry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 01. Dez. 2011 20:20 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
Garry, nachdem ich deine letzte Frage gelesen habe ... - nur mal Folgendes: Es hatte mich gestern selbst mal interessiert, wie man Unterordner durchsucht, versucht hatte ich das nämlich bisher noch nie, entsprechend fehlerbehaftet können solche Versuche sein, unausgegorene Snippets eben. Hauptaugenmerk war hierbei auch eher das reine Durchsuchen von Unterordnern nach xl-Files und weniger das Öffnen-Prüfen-Schliessen derer. Dies nämlich würde ich mich nicht so einfach trauen auf ein Netzwerk loszulassen. Und ohne Erfahrung mit VBA und nur mit Foren-Bastelwastel - nicht weiter drüber nachdenken, bleiben lassen. Punkt. An deiner Stelle würde ich mich erstmal von den Grundlagen aufwärts mit VBA auseinandersetzen, allein schon weil ich wissen wöllte, was ich da mit jeder einzelnen Zeile eigentlich tue, um nicht zu sagen - anrichten könnte. Alternativ lasst euch eine 'Spuernase.exe' proggn, die dann auch entsprechende Errorhandler etc. pp. mitbringt. Das war keine 'erhobener Zeigefinger Mahnung' an Dich (lies das bitte nicht so), sondern ein gutgemeinter Ratschlag von einem ebenfalls Nichtprogrammierer;-) ... der ganz nebenbei & zumindest etwas den Anschein geben soll, dass hier cad.de und nicht ccc.de ist Gruß Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Garry Mitglied Techniker/Konstrukteur
Beiträge: 684 Registriert: 05.03.2003
|
erstellt am: 02. Dez. 2011 06:36 <-- editieren / zitieren --> Unities abgeben:
Hallo, Habe eine Anweisung an unsere Azubis geschrieben, mit der Bitte alles zu durchforsten was mit XLS zu tun hat. Diese auch zu Kontrollieren. Also an alle vielen Dank für die Hilfe. Besonders an Nancy die mir die Augen geöffnet hat, das man einige Dinge lieber lassen soll wen man nicht richtig weis was man macht. Danke ------------------ Gruß Garry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Maler Micha Mitglied Malermeister
Beiträge: 33 Registriert: 22.09.2011 Solid Murks 2015 Solid Murks 2014 Solid Murks 2013 Solid Murks 2012 HICAD 2007 ("All in" Homeuser) HiCAD 2011 HiCAD 2010 HiCAD 2008 HiCAD 2007 HiCAD 2006 & Helios
|
erstellt am: 02. Dez. 2011 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für Garry
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|