Jump to content

Needhelp12

Abgemeldet
  • Gesamte Inhalte

    12
  • Registriert seit

  • Letzter Besuch

Reputation in der Community

0 Neutral
  1. Hallo zusammen, ich habe eine Frage zu Power Shell. Undzwar habe ich eine Textdatei, welche nach folgendem Schema aufgebaut ist: "NB-00439,1054-01-01-00" nun soll nach dem durchlaufen des Scriptes über den Spalten stehen Client ,Nummer NB-00439,1054-01-01-00 Diese formatierung ist notwenig da diese Text datei zu einem späteren Zeitpunkt noch verwendet werden muss und anhand des "," und der Namensgebung "Client" , "Nummer" erkannt wird wo was steht. Über hilfe würde ich mich sehr freuen und bedanke mich sehr
  2. Ist es in dem Script möglich einen allgemeinen LOG zu machen also z.B. Teil 1 Wäre überprüfung aller Variablen und wenn alle anderen Variablen vorhanden sind wird in die LOG geschrieben Variablen überprüft und vorhanden / oder eben Fehler. und dann soll das Script weiter laufen und dann der nächste Teil überprüft und gelogt werden. Der Fehler Log der momentan vorhanden ist kann entfernt werden und wir nach Absprache nicht zwigend benötigt? # Anfang der Try / catch verzweigung zum Fehler Log $ErrorActionPreference = "Stop" try { # Bennenung der Variablen / Link Zuweisung. $Software = Get-Content "C:\Users\user\Desktop\Software.txt" $DB = Get-Content "C:\Users\user\user\DB.txt" $hinzugefügt = "C:\Users\user\Desktop\Hinzugefügt.txt" $entfernt = "C:\Users\user\Desktop\Entfernt.txt" $log = "C:\Users\user\Desktop\log.txt" $cpsoftware = "C:\Users\user\Desktop\Software.txt" $cpdb = "C:\Users\user\Desktop\DB.txt" # Der Soll und der Ist Zustand werden verglichen und die Unterschiede in die Output Dateien geschrieben. Compare-Object $Software $DB | ? {$_.Sideindicator -eq "<="} | Out-File -FilePath $entfernt -append Compare-Object $Software $DB | ? {$_.Sideindicator -eq "=>"} | Out-File -FilePath $hinzugefügt -append # Überschreiben des IST Zustandes durch den Soll Zustand, erfolgt am Ende des Scriptes Copy $cpsoftware $cpdb } catch # Sollte im Scipt ein Fehler vorliegen wird die Fehlermeldung in die Datei Log.txt geschrieben # Im Log File ist der oberste Fehler = der Aktuellste Fehler { $Error | Out-File -FilePath $log }
  3. Hallo, also das Inventarsystem ist schon ein paar Tage Alt (vorab). Wird aber bei Zeiten noch ausgetauscht, dass dauert aber noch ein bisschen. In dem Inventarsystem werden alle Komponeten wie Rechner, Telefone, Monitore etc. den Nutzer als Komponete zu gewiesen. Software ist in diesem System auch eine Komponete und wird als Zahl angegeben z:B. hat Microsoft Ofiice die Zahl 11. Das ist das Grund Prinzip. Diese Datenbank erzeugt alle 15min ein TXT File in welchem drin steht welche Software, welchem Notebook/ Rechner zugewiesen worden ist. Der SCCM Server läuft zurzeit noch auf einem Windows Server 2008 R2 welcher jedoch nun auf 2012 migirert wird. Auf dem alten Server läuft zurzeit noch ein Visual Basic Script welches die Aufgaben erfüllt die nun durch das Power Shell Script abgelöst werden soll. Das Script vergleich zunächst den Soll mit dem Ist Zustand also Datei vor 15 min wird verglichen mit aktueller Datei. Software Komponeten welche einem Rechner Hinzugefügt bzw. Entfernt worden sind werden in 2 TXT Files gespeichert. Und durch den Copy Befehl wird der Soll zum Ist Zustand. Im nächsten Schritt sollen die beiden TXT Files "Hinzugefügt" & "Entfernt" nun über in Power Shell implementierte SQL Befehle in die SCCM Datenbank gebracht werden. Der SCCM Server verteilt nun anhand der Informationen des Inventarsystems die Software an die jeweiligen Rechner. Ich hoffe nun ist ein bisschen klarer wozu der ganze Spaß eigentlich gut ist. :)
  4. Hallo Frank, also so ungefähr sollte die Ausgabe hinterher in der Entfernt, sowie in der hinzugefügt.txt aussehen. Rechner , Software NB-00447,0606-00-07-00 <= NB-00447,0961-01-02-00 <= NB-00449,0492-01-01-00 <= Ich hab dies mit deiner Variante probiert, dies hat jedoch nicht funktioniert
  5. Hallo, ja das würde mich auch mal Interessieren. Gruß
  6. Okay, nun wirklich meine allerletzte frage, da ich zu dieser Frage bisher nirgendwo eine Antwort gefunden habe geschweige denn bekommen habe undzwar die Fehlerausgabe dir mir evtl. gegeben wird bsp. ich verschiebe die Software.txt. Wird normalerweise unten in der PS Console angezeigt, ist es möglich diese Fehler in eine Datei umzuleiten sagen wir in C:\log.txt?
  7. Super vielen dank, ja das leuchtet ein habe ich in der Zwischenzeit auch bemerkt, dass das nicht funktionieren konnte so :suspect: :D Gibt es durch einen anderen Befehl die möglichkeit die Aktuelle Systemzeit + Datum in das Output File zu bekommen, zur besseren Übersicht ? Bis jetzt wirklich vielen dank für die super Hilfe ! :)
  8. Also der hat anscheinend ein Problem mit ? sowie Where. Ich habe es jetzt mal ganz anders gemacht und er vergleicht jetzt schon mal und legt eine neue Datei an, aber in diese wird nach wie vor keine änderung hinein geschrieben, sie bleibt leer. $Software = Get-Content "C:\Users\nutzer\Desktop\Software.txt" $DB = Get-Content "C:\Users\nutzer\Desktop\DB.txt" Copy-Item C:\Users\nutzer\Desktop\Software.txt C:\Users\nutzer\Desktop\DB.txt Compare-Object -referenceObject $Software -differenceObject $DB Diff $Software $DB -IncludeEqual | Format-Table InputObject, SideIndicator -AutoSize Out-File 'C:\Users\nutzer\Desktop\änderung.txt' -append Wahlweise auch das hier, wo müsste ich hier Out-File einsetzten, damit ich die Ausgabe erhalte? if($_.InputObject -match $pattern) { if($_.SideIndicator -ne "==") { if($_.SideIndicator -eq "=>") { $lineOperation = "added" |where } elseif($_.SideIndicator -eq "<=") { $lineOperation = "deleted" |where } [PSCustomObject] @{ Line = $lineNumber Operation = $lineOperation Text = $_.InputObject } } }
  9. Hallo, danke für die Antwort ich habe das ganze soweit ausprobiert, bisschen abgeändert funktioniert auch die erstellung der beiden Dateien, jedoch schreibt das Script in die Datei "$_.Sideindicator -eq "<=" " und nicht was geändert worden ist. Wie kann ich den fehler beheben ? Gruß
  10. Erstmal danke für die Antwort,dass hilft mir schonmal weiter, also: Ein Script auf dem Inventar Server erzeugt alle 15 Minuten eine Datei, die “Software.txt“ heißt. Diese beinhaltet immer den kompletten Bestand aller Software die den Endgeräten zugeordnet ist, das ist der sogenannte „SOLL-Bestand“. Nach 15 Minuten wird diese Datei neu erzeugt. Um jetzt die Differenz zur vorherigen Datei ermitteln zu können, muss die vorher erzeugte Datei gespeichert werden. Das ist der Arbeitsauftrag, welchen ich mir quasi selber geschrieben habe, hier ist auch beschrieben, was die Software.txt Datei beinhaltet.
  11. Nein ich erwarte natürlich kein fertiges Script und "erwarten" finde ich ist sowieso ein schwieriges Wort, weil ich um Hilfe bitte und dankbar für jede Antwort bin. (nur am rande) Nein eigentlich gibt es kaum Script erfahrungen, da bisher immer eher der Technische ansatz erarbeitet worden ist, deswegen stehe diesem Thema mit ziemlich schlechten Vorwissen gegenüber. Mein bisheriger Ansatz ist, dass ich versuche mir ein Script aus verscheidenen Quellen wie google zusammen zu kopieren, dass ist leider aber nicht so wie erhofft umzusetzten und habe deshalb den Beitrag in dem "Experten" Forum erstellt. JA, der jenige weiß das und hat mir empfohlen zu Googlen und Hilfe in Foren oder ähnlichen Platformen zu suchen.
  12. Hallo zusammen, ich habe Probleme mit Windows Power Shell, da ich damit noch nie gearbeitet habe. Ich soll mit Hilfe von Windows Power Shell zwei Text Dateien vergleichen und die veränderungen sollen in eine 3. bzw 4. datei gespeichert werden. Konkret geht es darum das Inventarsystem gibt alle 15 min eine Text datei aus: "Software.txt" in dieser Datei steht z.B. Rechner 12345 bekommt Software XY. Das Script soll auf einem Windows Server 2012 auf welchem SCCM Installiert ist nun einen abgleich mit seiner Datenbank machen was hat sich geändert innerhalb der letzten 15 min. Sollte eine änderung geschehen sein soll diese in die Datei "+" geschrieben werden sollte dies nicht der Fall sein wird in die Datei "-" geschrieben. Ebenso soll eine LOG Datei erstellt werden in welcher evtl. Fehlermeldungen ausgegeben werden. Ich bedanke mich vorab schonmal für die Hilfe
×
×
  • Neu erstellen...