Jump to content

stefan4711

Members
  • Gesamte Inhalte

    80
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von stefan4711

  1. ok, also ich hab jetzt in der Export Zeile einfach -Encoding Default rangehängt, jetzt is alles so wie es sein soll danke noch mal und schönes Wochenende
  2. nach Umlaute in powershell richtig darstellen, fündig schon, aber funktionierte alles nicht, teilweise wurde geschrieben, dass in Powershell das automatisch erfolgt, bei mir jedenfalls nicht
  3. Nein ich möchte sie darstellen, er zeigt mit statt ä bspw. nur ? an
  4. So eine letzte Frage noch, eigentlich nur noch nen Schönheitsfehler, bin ich leider auch nicht zu fündige geworden, dann bin ich erst mal glücklich. Was ist wenn in diesem Description Feld Umlaute drin stehen, kann man dass irgendwie gerade rücken? lg Stef
  5. ok sorry war mein Fehler, es lag wohl an meiner nächsten csv Spalte 'SMB' =$smbt -replace ".{1}$"; Die Apostrophs hab ich jetzt auch weg, habe einfach das "`-", jeweils gelöscht lg und danke nochmals stef
  6. So danke erst mal noch, leider scheint es so nicht ganz zu funktionieren, denke habe mich wieder mal falsch ausgedrückt. Die Server Bezeichnung wird immer nach folgendem Muster gebildet: Mustermann, Vorname - PC. Ich habe es jetzt nach deinem Vorschlag so stehen: $BeschreibungKey = 'HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters' $BeschreibungTest = Test-Path $BeschreibungKey $BeschreibungSrvcomment = (Get-ItemProperty $BeschreibungKey).Srvcomment Write-Verbose "Beschreibung Srvcomment: $BeschreibungSrvcomment" -Verbose $Description = $BeschreibungSrvcomment #Ausgabe 'Beschreibung' = $(-join ("`'", $Description, "`'")); Was er nun macht ist folgendes (oben die Spaltennamen): Hostname Beschreibung Seriennummer .... ... .. .... 'Mustermann Vorname - PC' ............ Er macht also 2 Fehler, er teilt den String weiterhin auf eine zweite Spalte auf, in der sonst was ganz anderes stehen soll, es werden zusätzlich noch 2 überflüssige ' erzeugt. Irgendwas scheint an der Syntax noch nicht zu stimmen. Also nochmal, Für dieses Feld soll das , als Delimiter ignoriert werden, weil Komma bedeutet ja neue Spalte. lg Stef
  7. okidoki, danke, werrde ich morgen gleich mal ausprobieren lg stef
  8. Na vielleicht tret ich der Sache ja noch etwas näher, manches ist ja wirklich eleganter als beim guten alten Batch. Bei der Gelegenheit würd ich gern noch eine kleine Frage einflechten. In meinem kleinen InventoryScript habe ich eine Variable defniert, welche sich aus der Systembeschreibung ergibt. Dort steht standardmässig sowas wie Name, Vorname - PC. Zudammen mit anderen definierten Systemvariablen wird dieses dann in eine csv gepackt. Sieht auschnittsweise so aus: $BeschreibungKey = 'HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters' $BeschreibungTest = Test-Path $BeschreibungKey $BeschreibungSrvcomment = (Get-ItemProperty $BeschreibungKey).Srvcomment Write-Verbose "Beschreibung Srvcomment: $BeschreibungSrvcomment" -Verbose $Description = $BeschreibungSrvcomment Am Ende wird halrt eine CSV geschrieben, und zwar derart: #CSV Ausgbe $Ausgabe = [PSCustomObject]@{ . . 'Beschreibung' =$Description; . . } $Ausgabe | Export-Csv -Path $DestinationFolder\Ausgabe.csv -NoTypeInformation Das Problem hierbei ist das Komma in der Beschreibung, leider bekomme ich es nicht hin, dass er mir hier keine zweite Spalte aufmacht, klar wegen dem Komma im csv. Kann ich da irgendwie eine Ausnahme erstellen für diese Variable, oder wäre die einzige Lösung einen anderen delimiter zu nehmen? Leider bin ich bei Google nicht so richtig fündig geworden lg und schönen Abend Stef
  9. weiß nicht ob das für mich noch so sehr viel Sinn macht, bin eigentlich in den meisten Fällen mit dem guten alten Batch gut zurecht gekommen, ist für mich auch wesentlich leichter lesbar, in Powershell sind mir definitiv zuviel geschweifte Klammern ;), da bekomm ich Augenkrebs. Aber ich schaue mal was Tante Google sagt Trotzdem erst mal recht herzlichen Dank Um Deien Frage zu beantworten, je es steht was bei Tante Google, aber wie bei so vielen Quelen was PS angeht passiert wieder mal nichts: Import-Csv .\OutputFiltered.csv | sort Hostname ok ich habs jetzt (blindes Huhn findet auch mal nen Korn lach) Import-Csv -Path 'C:\SC\CSVmerge\OutputFiltered.csv' | sort -Property "Hostname" | Export-CSV -Path C:\SC\CSVmerge\OutputSortedEnd.csv -Delimiter ',' -NoTypeInformation ein schönes Wochende noch
  10. Ich nehme an $Data meinst Du und ja das war es, ich danke Dir recht herzlichst, das war das was ich wollte Wenn man das auch noch sortiert bekämme;) lg und schönen Abend noch Stef
  11. Also jetzt hab ichs so, der Pfad zu Summary.csv stimmt, aber jetzt macht er gar nichts data = Import-CSV C:\SC\CSVmerge\Summary.csv $lastTS = @{} $output = @{} for ($i=0; $i -lt $data.Count; $i++) { $curHostname = $data[$i].Hostname $curTS = $data[$i].Timestamp -as [datetime] if ($lastTS.ContainsKey($curHostname)) { if ($lastTS[$curHostname] -lt $curTS) { $lastTS[$curHostname] = $curTS $output[$curHostname] = $i } } else { $lastTS.Add($curHostname, $curTS) $output.Add($curHostname, $i) } } $outputSorted = New-Object System.Collections.Generic.List[PSObject] foreach($i in $output.Values) { $outputSorted.Add($data[$i]) } $outputSorted | Export-CSV -Path C:\SC\CSVmerge\machines-sorted.csv -Delimiter ',' -NoTypeInformation :( lg stef
  12. da steht nur EDIT: Code inklusive CSV-Ausgabe ist drin. Wenn Du möchtest, dass die CSV in Excel mit Doppelklick aufgeht, musst Du den Delimiter auf ';' setzen. bearbeitet vor 48 Minuten von cj_berlin aber sehe leider nix:( achso da oben, jetzt seh ichs, ich probiers
  13. Ich bin mir nicht sicher, ob ich dich richtig verstanden habe, du meintest sicher jeweils in den Zeilen mit Output: die Outputdatei ist 1kb groß und zeigt beim öffnen keinen Inhalt, vielleicht fehlen mir ja noch irgendwelche cmdlets, die ich erst isstallieren muss
  14. Also ich hatte es folgendermaaßen probiert, nachdem ich mit Batch absolut nicht weiterkam: Die Reihenfolge ist im Prinzip ertmal egal, klar wärs schön wenns nach Host sortiert wäre. Danke aber nochmal für die interessanten Lösungsansätze, werde ich mich mal durcharbeiten, melde mich dann wieder lg Stef Also folgendes: Also prinipiell scheint er bei allen Lösungen etwas zu machen, also auch keine doppelten, aber es schreibt leider keine Ergennis CSV. Schon komisch dass ich in anderen Foren zu dem Thema nur "Müll" gefunden habe. @CJ Wie bekomme ich es bei Deinem Ansatz hin dass er eine neue Datei schreibt, so im Fenster kann ich damit nicht viel anfangen, bin leioder noch nicht ganz so firm in Powershell, obgleich ich zugeben muss, dass man damit schon mehr anfangen kann als mit Batch. lg Stef
  15. Hallo werte Forengemeinde, ich beisse mich seit einigen Tagen an einem Problem fest, was wohl laut diverser Foren viele haben, dafür gab es auch schon haufenweise Lösungsvorschläge, aber nichts davon führte bei mir zum Erfolg. Es geht darum dass ich eine Inventarliste im CSV Format (kommagetrennt) habe, die sieht folgendermassen aus (Spaltenanzahl und Zeilenanzahl aus Komplexitätsgründen gekürzt) Wie hier deutlich zu sehen sind von NTX210708 mehere Einträge vorhanden. Ist es möglich per Batch oder auch per PS alle doppelten Zeilen zu löschen, Dabei sollen die Zeilen behalten werden die dem aktuellstzen Timestamp entsprechen. In dem Fall von NTX... also der letzte. Vielleicht hat ja einer eine Idee? lg und schönes we Stef
  16. ja das ist es ja, ich hatte das %1 im Aufruf schon in "", interessiert meinen Recher nicht die Bohne lg Stefan Kleine Korrektur, wenn ich es mache, ( CMD.EXE /c "ren2jpg "%1">nul & EXIT" ) dann passier auch bei normalen Pfaden nichts mehr
  17. Hallo liebe Leute, heute mal eine kurze und knappe Frage. Ich habe ein kurzes Batch, welches ich über einen Parameter via Kontextmenu aufrufe. Dieses hat nur die Aufgabe Dateien ohne Endung mit der Endung jpg. zu versehen. Das Script ren2jpg.bat schaut so aus: @echo off & setlocal PushD "%1" &&( forfiles -s -m *.* -c "cmd /c ren *.* *.jpg" ) & PopD exit aufgerufen wird es wie gesagt über das Ordner Kontextmenu via CMD.EXE /c "ren2jpg %1>nul & EXIT" Das klappt auch wunderbar, aber was mache ich bei Pfaden mit Leerzeichen im Pfad, da geht es nicht, normalerweise soll ja da was mit Leerzeichen gehen? Weiss da jemand Bescheid? lg Stefan
  18. alles klar, werd ich machen, danke noch mal, ich hätte es halt gern vertanden warum die Logik da nicht funzzt, aber manchmal hat es wohl keinen Sinn alles zu hinterfragen. So jetzt weiss ich auch wieder warum ich das unbedingt mit einer If Abfrage haben wollte lach
  19. Na gut, ich fands jetzt ein bisl bescheuert das jedes Mal einzutragen, aber wenn du meinst dass hält nicht großartig auf, dann nehm ich das mal so hin Danke noch mal
  20. Auch das geschieht nicht aus Jux und Dollerei, es gibt halt noch Altsysteme mit Images wo ein Exkollege, diverse Aufgaben auf Benutzer gesetzt hatte und das lief halt in einigen Fällen nicht. Also um es mal festzuhalten, ich habe keine lange Weile, die grundsäzliche Syntax scheint also zu stimmen, seh ich das richtig? Es gibt keine Erklärung warum er mal raus sringt und mal beide Zweige abarbeitet ? Dann bleibt mir wohkl nichts anderes übrig als das zu akzeptieren und das einfach nur zuüberschreiben, auch wenn mir das in einem Startscript nicht ganz so gut gefällt. Und es sollte wohlauch nicht relevant sein, was in der Domäne geändert wurde, es funktioniert ja auich lokal nicht. vielen Dank trotzdem lg Stefan
  21. Ja klar steht in der XML System drin, ich habe diese Prüfung ja auch nur gemacht, um unnötige Verzögerungen zu vermeiden. Es muss doch aber ne Erklärung geben warum das If nicht läuft, Ich habe den Aufgabenimport ja momentan auskomentiert. Und wie bereits erwähnt, vor einigen Monaten funktionierte das ganze ja auch noch. (Updates ? anderes Batchverhalten, wär ja nichts Neues);)
  22. So also noch mal, ich hatte auch beide EXITS schon draussen, ich habe dich nicht ignoriert, es passiert immer noch das selbe, wenn Systemaccount, dann steht da nichts zu machen, wenn nicht dann haut er so schnell raus das man nicht mehr gucken kann und es passiert nichts, ob mit oder gar keinem EXIT. ich befolge schon dass was Ihr sagt;). Einfach mal eine Aufgabe nehmen die unter System läuft, und danach auf was anderes umtragen, dann seht Ihr was ich meine. lg Stefan
  23. sorry, hatte jetzt schon mehrfach versucht das Script zu posten, ich habe die eigentliche Befehlszeile ausgeremt, dass sich hier nicht jeder an der Zeile aufhängt, auch das zweite Exit ist raus, trotzdem muss das Script ja irgendwie beendet werden. Jetzt sezehen also nur Echos drin, und trotzdem funktioniert es nicht Meine Frage lautet, was ist an der IF Anweisung faul, fehlt irgendwo ne Klammer? @Echo Off CD /D %~dp0 SET "AF=C:\Users\Administrator\Downloads" FOR /f %%a in ('schtasks /query /TN _01_Regwerte_setzen /XML ^| findstr "UserId"') DO ( Set xml=%%a ) set var2=%xml:~8,8% echo %var2% IF %var2%==S-1-5-18 ( ECHO - Aufgabe laeuft bereits unter Systemaccount - Echo Es ist nichts zu machen pause exit ) ELSE ( pause ECHO - Aufgabe auf System umtragen ECHO Das sollte passieren wenn Aufgabe nicht unter System läuft, aber auch nur das pause REM FOR %%L in ( _01_Regwerte_setzen ) do SCHTASKS /Create /TN %%L /f /xml "%AF%\Aufgaben\%%L.xml">nul 2>&1 pause ) ECHO ALLES erledigt PAUSE lg Stefan
  24. Dos habe ich doch, ich ändere per Script den Ausführungskontext einer Aufgabe, wenn diese nicht auf System steht, denke da war meine Antwort wohl noch nicht abgeschickt, ok dann probier ichs mal ohne EXIT, aber wie wird das CMD dann beendet? Und ja die For Schleife braucht es hier nicht,, in der Klammer stehen sonst aber noch weitere Aufgaben, und dann macht es doch wieder Sinn, oder? Ich wollte es hier übersichtlich halten, war nicht böse gemeint und verwirren wollte ich auch nicht. lg Stefan
  25. Hallo, danke für deine Antwort, also dann erklär ichs mal kurz, die Anweisungen einzeln fuktionieren aber, es geht mir halt hier nur um die Ablauflogik, irgend etwas scheint mit dem If/Else nicht zu stimmen. Es wird geprüft ob die Aufgabe unter Systemkontext läuft, wenn ja wird nichts gemacht, wenn nein wird die Aufgabe auf System umgeschrieben, von einer XML Datei. Er springt hier aber direkt raus und bringt nicht mal das ECHO - Aufgabe auf System umtragen mit der darauffolgenden Pause, die natürlich hier nur zum Debugging dient und später natürlich keinen Sinn mehr macht, ebenso das Exit.
×
×
  • Neu erstellen...