Zum Inhalt springen

Tician

Mitglieder
  • Gesamte Inhalte

    541
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    9

Beiträge von Tician

  1. Hiho,

    ich habe mir diese Woche einen Vortrag bei der it-sa365 angesehen und wollte etwas gelerntes mit euch teilen - etwas von dem ich denke, dass es die Wenigsten wissen, aber es doch interessant ist. Dabei geht es um die Access Control List, also einfach gesagt die Zugriffsrechte von Benutzern und Gruppen auf Dateien und Ordner.

    Ich fange - wie in dem Vortrag auch - mit einem Bild an:

    grafik.png.deae1054f615a737a4cc42d775918073.png

    Wenn ihr das seht, was würdet ihr sagen? Hat "Guest" Zugriff auf die Datei oder nicht? Würdet ihr eure Meinung ändern wenn ihr das hier dazu seht?:

    grafik.png.854a5aa52a9dcec1e8ae34c7d1d641b4.png

    Die Antwort: Ja, Guest hat Zugriff auf die Datei.

     

    Warum?

    Wenn man diese Konstellation mit der Vererbung nachbaut bekommt man witzigerweise (in meinem Fall zumindest) von Windows eine Meldung in der explizit gesagt wird dass Deny immer 'stärker' ist als das Allow. Ich würde behaupten die meisten Admins würden das behaupten. Liest man sich allerding ein wenig ein, findet man folgenden Satz in den Docs von Microsoft:

    Zitat

    The system parses ACEs (Access Control Entries) in order, from first to last, until access is either granted or denied. Thus, ordering of ACEs is important. "Deny permissions" should be placed before "allow permissions."

    https://docs.microsoft.com/en-us/archive/msdn-magazine/2008/november/access-control-understanding-windows-file-and-registry-permissions

    Kurzum: Die Berechtigungen werden - nur in den Advanced Security Settings sichtbar - von oben nach unten durchgearbeitet, der erste gefundene Eintrag für den Benutzer zählt. In diesem Beispiel, welches ich nachgebaut habe ist aber automatisch mein "Allow" genau wie hier auch an den Anfang gerutscht - wie also die Reihenfolge ändern? Schließlich gibt es keine Pfeile oder so.

    Jetzt bin ich hier auch kein Experte. Soweit ich gesehen habe braucht man hier die Powershell, muss den sogenannten SDDL für den Ordner rausfinden, die Reihenfolge der Berechtigungen in diesem SDDL verändern und schlussendlich auf den Ordner anwenden.

    Das war es eigentlich... jetzt würde mich interessieren: Wusstet ihr das oder ist es euch gleichgültig weil - so vermute ich - sowieso kaum einer mit Deny arbeitet? :)

  2. Nicht ganz am Thema, aber etwas das mich sehr geprägt hat^^
    In meiner Azubi-Zeit: Mein eigener PC ging erst 2 mal mitten im Betrieb aus und dann gar nicht mehr an. Gehäuse hatte ich geöffnet um einen Blick rein zu werfen, war aber nichts sichtbares. Auch ne Zeit lang komplett ausgesteckt und dann nochmal probiert - nichts.

    Ich: *rufe bei DELL an, weil noch in Garantie-Zeit und erkläre mein Problem*
    Techniker: "Trauen Sie sich zu, ein paar Schritte mit mir durchzugehen?"
    Ich: "Klar, ich bin selbst in der Ausbildung zum Informatiker"
    Techniker: "Alles klar, hinten am Netzteil gibt es ein kleines Knöpfchen, halten Sie das mal gedrückt und sagen sie mir ob das Netzteil etwas macht."

    Ich krabbel unter den Tisch, halte das Knöpfchen gedrückt, Lüfter geht an, es lässt einen Schlag, ich spüre einen kurzen Schmerz am Bein, lasse einen erschrockenen Schrei los.

    Techniker: "Was ist passiert??!"

    Ich: *schau auf mein Bein (nix sichtbares, hat aber gefetzt), hebe etwas kleines vom Boden auf, schau in den PC* "Mir kam gerade ein Chip entgegen geflogen..."
    Techniker: "OK, belassen wir es dabei, ich schicke einen Techniker los"

    Am nächsten Tag wurden Mainboard und Netzteil getauscht und alles lief wieder. Aber die Geschichte in der mir eine South-Bridge entgegen geflogen kam werde ich nie vergessen^^

  3. Hatte ich versucht, aber nichts abnormales feststellen können.

    Ich wollte mit TCPViews aus den Sysinternals mal drauf schauen, aber dann hat der Chef schon entschieden den Server gleich neu zu starten - seitdem funktioniert es wohl erstmal wieder.

    Ich hatte im externen Program noch eine schönere Fehlermeldung gefunden:

    System.InvalidOperationException: Can not start HTTP communication endpoint because no ports are available

    Die passt auch zu dem was ich Online gelesen habe - wenn auch nicht zu dem was ich mit netstat gesehen habe. Naja in dem Sinne wohl erstmal geklärt :(

  4. Es wird keine bewusst aktive Verbindung aufgebaut, wenn es tatsächlich mein Programm war dann reden wir hier von stupiden "File.Move" oder maximal "using StreamWriter". Aber als Ziel sind eben Netzlaufwerke im Format \\servername\freigabe oder \\{ip-adresse}\freigabe angegeben auf die Dateien geschoben werden.

    Error: System.IO.IOException: Die Namensbegrenzung für den Netzwerkadapter im lokalen Computer wurde überschritten.
    
       bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       bei System.IO.__Error.WinIOError()
       bei System.IO.File.InternalMove(String sourceFileName, String destFileName, Boolean checkHost)
       bei System.IO.File.Move(String sourceFileName, String destFileName)
       bei _Rückmeldung_.Program.Main(String[] args)
    

    Bei StreamWriter sollte das IDisposable automatisch soweit ich weiß aufgerufen werden, bei File.Move... keine Ahnung, es wäre traurig und ärgerlich wenn das tatsächlich der Fehler ist, zumal ich das Programm nicht direkt abkacheln lasse, die Fehlermeldung wird in eine Datei geschrieben und das Programm wird trotzdem mit Environment.Exit(0) beendet.

  5. Ich hab die Port-Range jetzt um das 4-fache erhöht (ohne das mein eigenes Programm lief), aber es hat sich absolut nichts verändert, nicht einmal für eine Sekunde, das externe Programm läuft unverzögert weiter im sekundentakt auf diese Fehlermeldung.

    Wie gesagt es war kein Witz dass die aktive Verbindungen die mir nur mit netstat angezeigt werden überschaubar sind, lass es grob 50 Verbindungen sien die mir da angezeigt werden.

    Könnte es noch etwas sein? Der Zugriff auf eine bestimmte Freigabe vom Server aus? Aber würde mir das dann nicht auch über netstat angezeigt werden sollen? Ich bin planlos.

  6. Hiho,

    ich weiß ehrlich gesagt nicht ob das tatsächlich ein Programmier-Problem ist, ich denke eher nicht, weswegen ich mich hier melde.

    What happened: Mein eigenes Programm (Schiebt Dateien Client-übergreifend durch die Gegend) ist gestern mit der Meldung "Die Namensbegrenzung für den Netzwerkadapter im lokalen Computer wurde überschritten." abgestürzt. Das schien einmalig zu sein udn ich habe mir nichts weiter dabei gedacht.

    Zeitgleich, das wusste ich aber nicht, gab es mit einem anderen, externen Programm (Logistik-Software, ebenfalls in .NET programmiert) immer wieder Probleme das keine Dateien erstellt wurden. Heute hatte ein Supporter in die Logs gekuckt und das Programm wirft - sehr viel häufiger - dieselbe Fehlermeldung.

    Was hab ich versucht: Sowohl die deutsche als auch die englisch übersetzte Fehlermeldung gesucht.

    Anscheinend hat es etwas mit der Überschreitung der freien Port-Anzahl zu tun, vielleicht Zugriffe vom Server aus auf Netzwerkfreigaben wenn man den DNS-Namen statt der IP-Adresse verwendet. Jetzt weiß ich aber nicht wie ich das nachvollziehen kann, es gibt den 'netstat'-Befehl, aber der gibt mir ohne Parameter eine sehr überschaubare Anzahl aktiver Verbindungen zurück.

    netstat -ano | find /c "TIME_WAIT"

    liefert Ergebniss: 0. Gefunden hier: https://capens.net/content/fix-windows-error-name-limit-local-computer-network-adapter-card-was-exceeded

    Ich bin mir also nicht sicher ob mir die Vergrößerung der Port-Range hier helfen würde und wie ich das Problem genauer eingrenzen kann.

  7. Hiho,

    ich verwalte mehrere Domänen mit Vertrauensstellung, würde aber eine Domäne als "Hauptdomäne" bezeichnen.

    Bisher war es so dass es für jede Domäne eigene Admins gibt. Gewünscht wäre ein Benutzer mit dem man alle Domänen administrativ verwalten kann.

    Gefunden habe ich eine recht einfach klingende Lösung: Die "Domänen-Admins" Gruppe der einen Domäne in die Builtins "Administratoren" der anderen Domäne hinzufügen.

    Jetzt wollte ich mir aber nochmal eure Meinung einholen: Hat jemand Erfahrung damit, gibt es etwas zu beachten oder vielleicht einen besseren Weg?

  8. Moin,

    ich suche nach irgendeiner Möglichkeit eine Datei zu bearbeiten nachdem sie an einen Drucker geschickt wurde, aber noch bevor sie gedruckt wird, quasi im Spooler oder sowas. Die Bearbeitung kann ich mit C# übernehmen, aber ich brauch erstmal die Möglichkeit den Druck-Prozess anzuhalten und müsste wissen wo sich die Datei dann im Spooler befindet.

    Der Hintergrund: Wir haben 203 dpi Etikettendrucker, brauchen aber manchmal Etiketten die für 300 dpi ausgelegt sind. Diese lassen sich zwar auch mit demselben Drucker drucken, aber das gedruckte ist wesentlich kleiner. Die Datei kann recht einfach verädert werden indem man ein paar Werte verändert, aber es gibt keine Möglichkeit vorher schon Dateien zu bearbeiten weil diese aus einem Programm heraus beim Druck-Auftrag erstellt werden.

    Die Idee: Denselben Drucker 2 mal installieren, die eine Version soll ganz normal die Dateien drucken, bei der 2. Version suche ich nach einer EInstellung die Dateien die an diesen Drucker geschickt werden vorher zu bearbeiten.

    Jemand hatte mir geraten mir Druckprozessoren anzusehen, aber ich sehe nicht wie mir das helfen könnte.

    Kennt sich jemand aus oder hat eine kreative Idee?

  9. Auch FISI in BaWü und wir haben im 1. Layer überhaupt keine Netzwerkgrundlagen angefasst und auch keine Datenbanken.

    Programmierung (C#):

    - Getter / Setter; Datentypen, Schleifen, Verzweigungen, Methoden, Klassen, Arrays

    Systemintegration:

    - EVA und alles rund um sämtliche Hardware-Teile (Prozessorarchitekturen, Speicherarten, etc.)

     

    Im 2. Lehrjahr kamen dann Forms, PHP, Javascript, HTML, CSS und die Grundlagen von Datenbanken (Begriffe, Normalisierung,...)

  10. vor 9 Minuten schrieb Bitschnipser:

    Über einen Vergleich zwischen einem vmtl. recht aktuellen iPhone und einem 5 Jahre alten Android smartphone was Displaytechnologie und SoC-Performance angeht lasse ich mich jetzt mal nicht aus, aber das sollte dir selbst einleuchten.

    Tritt mal einen Schritt zurück und überlege bitte deine Wortwahl. Mir ist durchaus bewusst dass der Vergleich den ich habe nicht gerade gut ist, aber es ist das Einzige was ich als eigene Erfahrung zu bieten habe. Also fahr mich bitte nicht wegen meiner persönlichen Meinung anhand dessen an. Ich wollte mir jetzt kein aktuelles Smartphone mit Android kaufen nur damit ich zu deiner Zufriedenheit einen besseren Vergleich abgeben kann. Und ich wollte auch nicht die Meinung anderer aus irgendwelchen Foren ziehen weil dann hätte dieser Thread hier keinen Sinn.

  11. Dann mische ich auch mal mit!

    Ich hatte 10 Jahre lang Android, an sich keine Probleme, allerdings haben mich die ganzen vorinstallierten Programme genervt. Ich kannte nichts anderes und war eigentlich ganz zufrieden, zumal ich das Handy auch nicht für irgendwelche außergewöhnlichen Dinge genutzt habe.

    Vor knapp 2 Jahren habe ich ein Geschäftshandy bekomme, ein iPhone SE - und da fing dann der Vergleich an. Zugegeben ich hatte nur noch den Vergleich zu meinem 5 Jahre alten Android. Der Touch war viel genauer, die Bilder schärfer, es war schneller, war nicht so aufgebläht und schlussendlich hatte ich dann auch noch eine Apple-Watch geschenkt bekommen (eine andere Geschichte) und was soll ich sagen, ich war und bin begeistert.

    Vor einem Jahr habe ich mir dann ein iPhone 8 geholt welches mein Uralt-Android ersetzen sollte und hatte bisher einfach nie auch nur irgendwelche Probleme.

    Fazit: Auf kurze Dauer hab ich Apple lieben gelernt, ich mag die Handhabung, die Apps und empfinde es als schneller und akkurater von der Handhabung. Auf lange Sicht was Akkulaufzeit und Geschwindigkeit angeht habe ich noch keine Erfahrungen gesammelt.

  12. Kunde: Ich habe den Toner vom Drucker getauscht, aber der Drucker zeigt immer noch an dass der Toner leer ist.

    Ich stehe vor dem Drucker und nehme den Toner raus: Ja, der fühlt sich ziemlcih leer an.

    Kunde: Achso... das ist der Toner? Ich hab das Andere getauscht *zeigt auf den Plastikbehälter für den Resttoner*

     

  13. Heyho!

    Ich wollte wissen ob jemand Overcooked 2 spielt. Der erste lässt sich nur lokal Multiplayer spielen, der 2. ist über Steam auch Online spielbar.

    Overcooked ist ein super-lustiges, chaotisches und freundschaften-zerstörendes Co-Op Spiel, das man lieber nicht alleine und nur mit Kommunikationsmöglichkeit (voice) spielt.

    Meldet euch! :)

  14. Exakt. Normalerweise benutz ich die EventArgs und die beinhalten auch meine Fehlermeldungen - was hier wohl nicht der Fall war, ich hatte nur geraten. Ich brauch irgendein Interface von meinem sender, hatte eben noch ein tolles Beispiel... und find es nicht mehr. Wie gesagt, ab hier sollte ich erstmal wieder alleine klar kommen :)

    @KeeperOfCoffeeDanke! ❤️

  15. Edit:

    Mein Gedankengang war, dass ich keinen neuen Thread brauche, weil ps.Invoke ja schon einen neuen Thread erstellt. Jetzt hab ich trotzdem alles mal in einen neuen Thread verschoben und nun funktioniert es auch. Mein Error-Text stimmt zwar nicht, aber das sollte ich jetzt auch noch hinkriegen :)

  16. Ich verzweifel. Ich hab aber auch keine AHnung wie man Multi-Threading debuggt.

    Auf jedenfall hab ich das hier und haufenweise Haltepunkte (weswegen ich zumindest weiß wo mein Programm sich verabschiedet:

                    using (PowerShell ps = PowerShell.Create())
                    {                    
                        ps.AddScript("Blabla");
                        ps.Streams.Error.DataAdded += Error_DataAdded;
    
                        Collection<PSObject> psOutput = ps.Invoke();                   
                    }
    
            private void Error_DataAdded(object sender, DataAddedEventArgs e)
            {
                InvokeMethod(Convert.ToString(e));
            }
    
            public void InvokeMethod(string text)
            {
                if (InvokeRequired)
                {
                    this.Invoke(new Action<string>(InvokeMethod), new object[] { text }); //hier passiert nichts mehr
                    return;
                }
                richTextBox1.AppendText("Bla ");
            }

    Meiner Meinung nach hab ich quasi genau das kopiert was auf stackoverflow stand und ich hab es auch in einem neuen Projekt ausprobiert, da funktioniert es, aber in meinem Projekt passiert ab 'this.Invoke(....)' gar nichts mehr. Ich hab es 5 Minuten laufen lassen bevor es mir zu blöd wurde. Die GUI ist zu dieser Zeit auch nicht ansprechbar (logisch, sie wartet eigentlich darauf dass mein ps.Invoke fertig ist - glaube ich). Ich seh im Debug-Modus das noch kurz der Balken für die Ereignisse 2-3 mal ausschlagen, dann ist tote Hose und mein Programm veravschiedet sich ins Nirvana... macht irgendwas und kommt nicht mehr zurück.

    Was mach ich nur falsch?

  17. Die Anleitung ist irgendwie... unvollständig. Ich hab mir zwar ein wenig über Delegaten und auch Threads durchgelesen, aber ich fürchte es reicht nicht aus um zu verstehen was bei mir eigentlich falsch läuft und warum ich auch im Debug-Modus nicht weiter komme - und irgendwas gewaltig falsch mache und dabei die nächste Exception bekomme.

    Folgendes hab ich jetzt (auf wesentliches gekürzt):

            private delegate void InvokeDelegate(string text);
    
                    using (PowerShell ps = PowerShell.Create())
                    {                    
                        ps.Streams.Error.DataAdded += Error_DataAdded;
                        ps.AddScript("...");
    
                        Collection<PSObject> psOutput = ps.Invoke(); //geht hier in das Ereignis
                    }
    
            private void Error_DataAdded(object sender, DataAddedEventArgs e)
            {
                //richTextBox1.AppendText(Convert.ToString(e));
                richTextBox1.BeginInvoke(new InvokeDelegate(InvokeMethod)); //Macht 'nichts'
                //InvokeMethod(Convert.ToString(e));
                //InvokeDelegate(Convert.ToString(e));
            }
                          
            public void InvokeMethod(string text)
            {
                richTextBox1.AppendText("Bla ");
            }                     

    Was passiert: Sichtbar quasi nichts, die TextBox bleibt leer, der Code läuft ne ganze Weile bis er dann in 'Program.cs' bei folgendem hängen bleibt:

    Unbenannt.PNG.5136d01940afbd51ae32f073d18b9068.PNG

    Die Dinge die ich nicht verstehe:

    'ps.Invoke()' wird in einem anderen Thread ausgeführt, weswegen ich trotz Haltepunkt (das Delegaten-Zeug auskommentiert) direkt die Exception bekomme. Gibt es in VS eine Möglichkeit auch hier irgendwie einen Haltepunkt für andere Threads zu setzen?

    Im Microsoft-Beispiel wird 'InvokeMethod()' direkt ausgeführt ohne vorher ein Objekt erstellt zu haben anhand dessen man die Methode aufrufen könnte. Ich hab alles versucht irgendwie noch meinen string-Parameter an den Delegaten ran zu packen, aber mir erschließt sich der Aufbau nicht. Ich hab hier nochmal ein Beispiel mit Parameter gefunden: https://www.codeproject.com/Articles/10311/What-s-up-with-BeginInvoke

    richTextBox1.BeginInvoke(new InvokeDelegate(InvokeMethod),new object[] { e });

    Ich schätze also es müsste so aussehen, aber trotzdem läuft irgendwas gewaltig schief, er versucht New Form1() mit dem Parameter aufzurufen, deswegen hier nun die Ausnahme dass Form1 keinen Parameter vom Typ string mag. Aber warum es überhaupt dorthin geht statt zu 'InvokeMethod()' ... keine Ahnung. ?

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...