Jump to content

Cybquest

Expert Member
  • Gesamte Inhalte

    1.886
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Cybquest

  1. Wie wärs dann mit ner Typwandlung ala "(DT_WSTR,10) GETDATE()"? http://msdn.microsoft.com/de-de/library/ms141704.aspx
  2. Hi, zu 1 kann ich nix sagen. Das Verhalten hab ich hier nicht. zu 2: Variablen leeren brauchst nicht, die werden in jedem Schleifendurchgang ja neu befüllt. Da "Clear-Variable" kannst Dir also schenken zu 3: Deine Variable $MailMessage.To bekommt ja mittels "Add" immer nen Eintrag hinzugefügt. Ersetze das durch "$MailMessage.To = $MailTo"
  3. Vielleicht hilft das ergoogelte ? http://dba.stackexchange.com/questions/14844/adding-timestamp-to-exported-filename-in-sql-server-management-studio
  4. Also wenn bei Dir die hauptsächliche Kommunikation über Broadcasts läuft, solltest Du Dir evtl. erst mal Gedanken darüber machen ;) Mit korrekt konfigurierten Diensten sollte es wenige geben, bei denen ein "gerouteter Broadcast" nötig sein sollte. Und dafür gibt's Möglichkeiten (wie oben beschrieben z.B. DHCP-Helper).
  5. Wenn die 2 VLANs sich "unterhalten" können sollen, sollte irgendwo ein Routing stattfinden. Das könnte z.B. auch einer der Switche übernehmen.
  6. Möglich ist alles ;-) Aber erst mal: Willkommen an Board. Und nun eine Bitte: Nicht die Threads anderer kapern! Mach bitte einen eigenen Thread auf... ggf. mit einem Hinweis/Link auf diesen hier, ok?
  7. Ne einfache Möglichkeit wäre: Try { ... bisheriges Script Catch { $Error | Out-File 'C:\log.txt' } ... ansonsten kannst Dir auch mal die Parameter -erroraction und -errorvariable diverser Methoden (wie z.B. Get-Content) anschauen. Einfach mal googlen :)
  8. Z.B. vor das Ganze sowas: "Check am " + (get-date)| Out-File 'Hinzugefügt.txt' -append; ... und wenn Datum und Zeit getrennt sein sollen, z.B. (get-date).ToShortDateString() bzw. (get-date).ToShortTimeString()
  9. Nu ja, wenn Du VOR dem Vergleich die Datei umkopierst, muss Deine Ausgabe ja leer sein ;) Bei mir macht dieses Script hier genau das, was Du m.E. gerne hättest... (also diesmal geprüft ;)) $Software = Get-Content "J:\DIV\LOG\Software.txt" $DB = Get-Content "J:\DIV\LOG\DB.txt" Compare-Object $Software $DB | ? {$_.Sideindicator -eq "<="} | Out-File 'J:\DIV\LOG\Hinzugefügt.txt' -append Compare-Object $Software $DB | ? {$_.Sideindicator -eq "=>"} | Out-File 'J:\DIV\LOG\Entfernt.txt' -append Copy "J:\DIV\LOG\Software.txt" "J:\DIV\LOG\DB.txt" ... vor dem "Out-File" könnte man die Ausgabe halt noch bissle hübscher formatieren...
  10. Hast Du die Fragezeichen vergessen? Der mittlere gepipte Teil is kpl. so: ? {$_.Sideindicator -eq "=>"} Statt dem Fragezeichen kannst auch "Where" hinschreiben, dann isses evtl. klarer ;)
  11. Dann wäre, wie gesagt, Compare-Object wohl das Mittel der Wahl. Über ne Abfrage des "SideIndicator" kannst dann Deine 2 Dateien "+" und "-" befüllen. So in der Art (ungeprüft!): Compare-Object $(Get-Content 'Software.txt') $(Get-Content 'DB.txt') | ? {$_.Sideindicator -eq "=>"} | Out-File 'Hinzugefügt.txt' -append Compare-Object $(Get-Content 'Software.txt') $(Get-Content 'DB.txt') | ? {$_.Sideindicator -eq "<="} | Out-File 'Entfernt.txt' -append ... und danach einfach die Software.txt in DB.txt umkopieren.
  12. OK :) In dieser "Software.txt" steht immer nur was drin, wenn was geändert wurde? D.h. wenn nix geändert wurde, ist die Datei leer? In diesem Fall dürfte ja reichen, den "Content" der Datei in die Ausgabedatei zu schreiben mittels "Append" (also in der Art ...get-content 'MeineDatei'... || ... Out-File... -append...) Wenn die Dateien verglichen werden müssen wäre "Compare-Object" vermutlich der passende Ansatz.
  13. Cybquest

    SQL Datenbank Suche

    Poste mal Deinen aktuellen Stand. Bei mir kommt genau nur eine Anzahl zurück mit o.g. Count ohne Gruppierung. SELECT COUNT(A1.ID) FROM (SELECT DISTINCT T1.ID, "RT" AS AboRT FROM T1) AS A1 LEFT JOIN T1 ON (A1.AboRT = T1.Abo) AND (A1.ID = T1.ID) WHERE ((T1.Abo) Is Null) ?!?... und was hat Deine "Einfache Abfrage" mit der bisher gestellten Fragestellung zu tun?
  14. Hallo und Willkommen, erwartest Du ein fertiges Script? Hast Du denn andere Script-Erfahrung (VBS o.ä.)? Wie ist, unabhängig von der Scriptsprache, Dein bisheriger Ansatz? Derjenige, der Dir die Aufgabe gab weiß, dass Du noch nie mit PS gearbeitet hast? Dann würde ich mal davon ausgehen, dass er erwartet, dass Du Dir nicht nur ne fertige Lösung "abholst", oder? ;)
  15. Cybquest

    SQL Datenbank Suche

    und wo hast Du den Count hin geschrieben? Wenn Du ausser dem Count noch weitere Felder in der Ausgabe (also am Anfang des Scriptes) drin gelassen hast, müssen die gruppiert werden (daher die Meldung). Wenn Du wirklich nur den Count willst: Select Count(A1.ID) FROM ... sollte Dir'n Ergebnis bringen.
  16. Cybquest

    SQL Datenbank Suche

    A1.Date ist da wiederum der falsche Ansatz! Da sollte es dann T1 sein. Der Subselect mit dem "DISTINCT" leifert ja eindeutige Datensätze pro User (also für jeden User nur 1 Zeile). Wenn Du da nun das Date mit reinpackst, wird's wirr! Also: Ganz am Schluss ein "Where T1.Date > ..." Quatsch... iss ja LEFT JOIN... Du willst nur die User, die Datensätze haben, die neuer als "DATE" sind, korrekt? Dann direkt ein WHERE in den Subselect, würde ich sagen. Subselect wäre dann: (SELECT DISTINCT T1.ID, T1.User, "RT" AS AboRT FROM T1 WHERE T1.Date > '01.09.2014') AS A1 ... dieses Date aber nicht versuchen mit auszugeben! Sonst klappt das mit dem DISTINCT nicht und alles wird hundsehlendlahm ;)
  17. Zu Deiner Frage "Verbesserungsvorschläge?": Powershell ist also keine Alternative für Dich? ... is ja inzwischen nicht mehr so, dass das was sooo Neues wäre ;)
  18. Wenn nicht Batch sein muss, wäre Powershell für nen Einzeiler ne Alternative :) ping (Get-wmiObject Win32_networkAdapterConfiguration | Where {$_.IPEnabled}).DefaultIPGateway
  19. Cybquest

    SQL Datenbank Suche

    fast ;-) SELECT A1.ID, A1.User, T1.Abo FROM (SELECT DISTINCT T1.ID, T1.User, "RT" AS AboRT FROM T1) AS A1... die T1-Tabelle wird, wie schon ein paar Mal erwähnt, per LEFT JOIN angebunden mit "WHERE... NULL" und dient nur der Ermittlung der fehlenden Datensätze. Da KANN nie was zurück kommen! Die Daten, die angezeigt werden können, kommen einzig aus dem Subselect A1. ... und solltest Du noch mehr "User-Felder" drin haben, die Du hier noch nicht erwähnt hast, würde ich Dir dringend Nils' ersten Hinweis ans Herz legen: Erst mal das Datenmodell normalisieren! Haufenweise redundante Daten in einer Tabelle is nich schön...
  20. Cybquest

    SQL Datenbank Suche

    ... und was ist jetzt noch Dein Problem? Die Abfrage spuckt IDs aus, die keine RTs haben aber auf Grund anderer ABO-Einträge (vermutlich dann immer AG) überhaupt existieren... Es geht doch nur um IDs, die kein RT haben, oder nicht? Dass ein NULL-Feld dabei raus kommt, wenn Du die ABO-Spalte mit anzeigen lässt, liegt am LEFT JOIN... das heisst ja nicht, dass es dafür einen Datensatz in der Tabelle geben müsste. Entweder versteh ich Dein Problem nicht, oder Du die Lösung nicht...
  21. Cybquest

    SQL Datenbank Suche

    In Deinen Testdaten hat ja nur die ID 2 keinen RT-Eintrag. D.h. die Abfrage liefert genau einen Datensatz mit ID 2 und ABO = NULL... War das nicht das, was rauskommen sollte? Die IDs, die keinen RT-Eintrag haben? ... und wenn dich das ABO=NULL stört, lass es einfach weg ;) (SELECT A1.ID FROM...)
  22. Cybquest

    SQL Datenbank Suche

    Ja... und? Der Select, den ich da geschrieben hab, holt auch nur Daten aus einer Tabelle (hab ich halt nur T1 genannt). A1 ist ein Subselect auf T1.
  23. Wenn Dein Beispiel vollständig sein sollte, wäre es kein Wunder, dass es nicht läuft. CScript ohne Parameter macht ja genau gar nix ;)
  24. Cybquest

    SQL Datenbank Suche

    Irgendwie so in der Art: SELECT A1.ID, T1.Abo FROM (SELECT DISTINCT T1.ID, "RT" AS AboRT FROM T1) AS A1 LEFT JOIN T1 ON (A1.AboRT = T1.Abo) AND (A1.ID = T1.ID) WHERE ((T1.Abo) Is Null)
  25. Cybquest

    SQL Datenbank Suche

    Wenns nur um die geht, die kein RT haben, wäre folgendes möglich: Mit Distinct die ID eindeutig ziehen und dann mit nem Left Join nur die Datensätze mit RT verknüpfen und das ganze dann auf NULL abfragen... ... und zum "DATA": Siehe Nils' Hinweis :)
×
×
  • Neu erstellen...