-
Gesamte Inhalte
2.101 -
Registriert seit
-
Letzter Besuch
Alle erstellten Inhalte von BOfH_666
-
Datumsfeld aus csv auslesen
BOfH_666 antwortete auf ein Thema von al3x in: Windows Forum — Scripting
Was hast Du denn schon? Steht das Datum immer an der gleichen Stelle? Steht es wirklich in der 1. Zeile, also der Header-Zeile? -
Get-ADComputer und ForEach
BOfH_666 antwortete auf ein Thema von marcx2 in: Windows Forum — Scripting
Wenn Du das Ergebnis einer Variable zuweist, z.B. $Result, dann kannst Du mittels Subexpressions auf die einzelenen Properties zugreifen - also $Result.Name oder $Result.MacAddresses -
Get-ADComputer und ForEach
BOfH_666 antwortete auf ein Thema von marcx2 in: Windows Forum — Scripting
Ich glaub das geht einfacher: $OU = Choose-ADOrganizationalUnit $SCCMSource = Get-CimInstance -Namespace Root\SMS\Site_XXX -ClassName SMS_R_System -ComputerName XXXXXXX | Select-Object -Property Name,MacAddresses $ADSource = Get-ADComputer -Filter * -SearchBase $Ou.DistinguishedName | Select-Object -Property Name Compare-Object -ReferenceObject $SCCMSource -DifferenceObject $ADSource -Property Name -PassThru -IncludeEqual -ExcludeDifferent -
[Powershell] Netzwerkdrucker entfernen
BOfH_666 antwortete auf ein Thema von roccomarcy in: Windows Forum — Scripting
Machst Du bitte für ein neues Thema auch einen neuen Thread auf? Wenn Du remote auf einen anderen Computer zugreifst, siehst Du nur die "Umgebung" des Anwenders/Administrators, mit dem Du auf den remote Computer zugreifst. Dieser hat üblicherweise keine Netzwerkdrucker verbunden bzw. es wird beim remote Zugriff nicht das komplette Profile geladen in dem die Netzwerkdrucker verbunden sind. -
PowerShell Return Code 1603 Software Deinstallieren
BOfH_666 antwortete auf ein Thema von marcx2 in: Windows Forum — Scripting
1603 ist der Lieblingsfehler aller Software-Paketierer. Das ist ein Exit-Code von MSIEXEC und sagt: "Da war ein Fehler". Manchmal kann man, wenn man die Log-Dateien durchwühlt, noch den ein oder anderen zielführenden Hinweis finden. Nach meiner Erfahrung aber meistens eher nicht. Davon mal abgesehen, was ist falsch am Aufruf der DeInstallation über über die Setup.exe? -
Ergebnisse sortiert in eine CSV-Datei übergeben
BOfH_666 antwortete auf ein Thema von BrTzL in: Windows Forum — Scripting
Wenn Du schon mit CSV-Dateien arbeitest, solltest Du auch die cmdlets benutzen, die dafür gemacht sind. Das macht Dir das Leben leichter. Um mit den Daten einer CSV-Datei weiterzuarbeiten oder erneut zu arbeiten, ist es viel besser Import-CSV zu benutzen anstatt Get-Content. Dann arbeitest Du nicht mit "flachem" Text, sondern mit Arrays und Properties und brauchst es auch nachher nicht wieder aufwändig sortieren. Ich würde dann auch eher versuchen, die überflüssigen Daten soweit "vorne" wie möglich rauszufiltern … vielelicht so hier irgendwie: $PrinterListFileName = $env:COMPUTERNAME + ".csv" $hostAddresses = @{} Get-CimInstance -ClassName Win32_TCPIPPrinterPort | ForEach-Object { $hostAddresses.Add($_.Name, $_.HostAddress) } $PrinterList = Get-CimInstance -ClassName Win32_Printer | Where-Object {$_.Name -notmatch 'FreePDF|An OneNote|Fax|Microsoft XPS|#TYPE System.Management.Automation.PSCustomObject|Drucker-Name'} | ForEach-Object { [PSCustomObject]@{ 'Drucker-Name' = $_.Name 'IP-Adresse' = $hostAddresses[$_.PortName] 'Computer' = $env:COMPUTERNAME } } $PrinterList $PrinterList | Export-Csv -Path $PrinterListFileName -Encoding UTF8 -Delimiter ';' -NoTypeInformation -
Powershell Temp Skript , Formatieren und filtern
BOfH_666 antwortete auf ein Thema von Foley60528 in: Windows Forum — Scripting
Hallo, ich fände es richtig supi, wenn Du bitte beim nächsten mal den Code auch als Code formatierst. Dann lässt er sich leichter lesen und verstehen und lange Zeilen werden im Zweifelsfall auch nicht umgebrochen. ;) Deine Aufgabe würde ich so anfangen: $Path = '\\netclient273\d$\Temp' $Age = -30 $FileList = New-Object System.Collections.Generic.List[object] Get-ChildItem -Path $Path -File -Recurse -Force -ErrorAction SilentlyContinue | Where-Object {$_.LastAccessTime -le (Get-Date).AddDays($Age)} | ForEach-Object { $newobj = [PSCustomObject]@{ Date = (Get-Date).Date Name = $_.BaseName Path = $_.DirectoryName LastAccessTime = $_.LastAccessTime Length = $_.Length } $FileList.Add($newobj) #Remove-Item -Path $_.FullName -Force -ErrorAction SilentlyContinue } Die auskommentierte Zeile solltest Du dann natürlich noch ent-auskommentieren ... ;) Jetzt hast Du also den Ordner schon mal bereinigt und kannst dann mit den gesammelten Daten weiter verfahren, wie Du es gerne möchtest. Z.B.: $FileList | Format-Table -AutoSize um einfach schon mal zu gucken... oder ... $FileList | Export-Csv -Path 'Pfad zu Deiner Lieblings-CSV-Datei' -Delimiter ';' -Encoding UTF8 -NoTypeInformation -Append .... oder, oder, oder ... -
Dateiberechtigungen ändern
BOfH_666 antwortete auf ein Thema von rb-dewis in: Windows Forum — Scripting
Ich glaub, ich habs noch nicht so ganz. :suspect: :schreck: :nene: Wenn Du sowieso Gruppen zuweisen möchtest, die dann nur lesen können sollen, wenn ich das bis dahin richtig verstanden habe, dann ist doch völlig egal, wer bis dahin irgendwelche anderen Rechte hatte. Du ersetzt ALLE bisher existierenden Rechte durch die von Dir gewünschten neuen und basta, oder? ... und das geht, wie zahni schon geschrieben hatte, mit icacls. .... oder fehlt mir doch noch 'ne Ecke? -
Mit PS System Überwachen
BOfH_666 antwortete auf ein Thema von Highlyeducatedmen in: Windows Forum — Scripting
Die unveränderte Ausgabe des Befehls Get-Process sieht aber normalerweise genauso aus, wie das was per Out-File in eine Datei exportiert wird. Versuch mal ... Get-Process -OutVariable Prozesse | Out-File -FilePath "C:\Users\Documents\Test2\Neu.txt" -Encoding ASCII -Width 100 ; $Prozesse Davon unabhängig kann man natürlich die Ausgabe so gestallten, dass die Informationen enthalten sind, die man haben möchte. Für strukturierte Daten bietet sich natürlich CSV oder XML viel eher an als reiner Text. -
Script zum Auslesen von Exceldaten aus einer noch zu suchenden Datei
BOfH_666 antwortete auf ein Thema von Twxit in: Windows Forum — Scripting
Das kommt auf Deine Scripting-Erfahrung an und was Du dann danach mit den ausgelesenen Daten anstellen willst. Wenn es zwingend in Excel sein soll, kommt eigentlich nur VBA in Frage. Wenn Du aber bei der "Laufzeitumgebung" flexibel bist, könntest Du auch Powershell nehmen (das würde ich favorisieren, weil ich kein VBA drauf hab ;) ). -
Get-HotFix - Installierte Update anzeigen
BOfH_666 antwortete auf ein Thema von Dutch_OnE in: Windows Forum — Scripting
Üblicherweise zeigt Get-Hotfix nur die "richtigen" Windows-Updates an. Keine Office-Updates oder für irgendwelche C++ - Runtimes oder so. -
CSV-Datei in mehrerer Teile separieren
BOfH_666 antwortete auf ein Thema von FranzR in: Windows Forum — Scripting
Hmmm ... bitte den Code als Code formatieren! Das macht uns und auch Dir das Leben leichter. ;) Ich würde es so anfangen: $inFile = "C:\PowerTest\testinput.csv" $Drunter = "C:\PowerTest\out_File_Drunter.csv" $Drueber = "C:\PowerTest\out_File_Drueber.csv" $Drin = "C:\PowerTest\out_File_Drin.csv" Import-Csv -Delimiter ',' -Encoding Default -Path $inFile | ForEach-Object { If([INT]$_.Long -le 10){ $_ | Export-Csv -Path $Drunter -Delimiter ';' -NoTypeInformation -Append } ElseIf([INT]$_.Long -gt 10 -and [INT]$_.Long -le 20){ $_ | Export-Csv -Path $Drin -Delimiter ';' -NoTypeInformation -Append } Else{ $_ | Export-Csv -Path $Drueber -Delimiter ';' -NoTypeInformation -Append } } ... Du wolltest ja schließlich 3 Bedingungen prüfen. Noch'n generellen Tipp: Unnötige Kommentare kannst Du weglassen. Jeder der Powershell kennt, weiß was Import-CSV macht, oder was eine Variablenzuweisung ist ... usw. -
CSV-Datei in mehrerer Teile separieren
BOfH_666 antwortete auf ein Thema von FranzR in: Windows Forum — Scripting
Na zeig doch mal her .... was hast Du denn schon? Du kannst den Code hier (entsprechend als Code formatiert) posten, dann sehen wir bestimmt, wo's klemmt. ;) -
CSV-Datei in mehrerer Teile separieren
BOfH_666 antwortete auf ein Thema von FranzR in: Windows Forum — Scripting
Ganz einfach: Du liest die CSV-Datei ein mit Import-CSV, dann vergleichst Du die gewünschten Werte mit Deinen Vorgaben, entweder mit if oder switch und dann benutzt Du Export-CSV, um die entsprechenden Zeilen jeweils in eine eigene Datei zu schreiben. Was hast Du denn schon? bzw. Wo steckst Du fest? Empfehlung: Du solltest Dir die Hilfe der einzelnen cmdlets dringend komplett durchlesen, inclusive der Beispiele und dann ein wenig "rumspielen" - dabei lernt man meiner Meinung nach am besten. -
PS: Backup Dateien Löschen Inkrimentell und Vollsicherung-Fehler im Script
BOfH_666 antwortete auf ein Thema von Vidan in: Windows Forum — Scripting
Ich versuche das nochmal präzise zu formulieren: Du möchtest also alles entfernen, was älter ist als 14 Tage und zusätzlich die eventuell noch existierenden VIB-Dateien, die älter sind als die älteste VBK-Datei die (noch) jünger ist als 14 Tage, richtig? Die zweite Möglichkeit wäre: Du möchtest alles entfernen, was älter ist als 14, es sei denn, die älteste Datei ist keine VBK-Datei. Dann sollen noch alle VIB-Dateien aufbewahrt werden, bis zur nächsten VBK-Datei, richtig? Beides mit Powershell kein Problem. ;) :wink2: -
PS: Backup Dateien Löschen Inkrimentell und Vollsicherung-Fehler im Script
BOfH_666 antwortete auf ein Thema von Vidan in: Windows Forum — Scripting
Woran erkennt man denn zusammengehörige Dateien? ... am Namen? Wenn das eindeutig zu bestimmen ist, brauchst Du doch nur das Alter der entsprechenden "Hauptdatei" ermitteln und bei den zugehörigen Dateien nicht nach dem Alter entscheiden, sondern nach dem Namen, ob sie weg können oder nicht. -
PS: Backup Dateien Löschen Inkrimentell und Vollsicherung-Fehler im Script
BOfH_666 antwortete auf ein Thema von Vidan in: Windows Forum — Scripting
Wenn Du eine Fehlermeldung bekommst, wäre es natürlich für die Fehlerbeseitigung hilfreich, zu wissen, welche Fehlermeldung Du bekommst. Für sowas reicht üblicherweise ein Einzeiler … ungefähr so: Get-ChildItem -Path '\\wechselplatte\Sicherung\*' -Include *.vbk,*.vib | Where-Object ($_.CreationTime -lt ((Get-Date).AddDays(-14))) | Remove-Item -WhatIf -
PowerShell - Alle Informationen anzeigen
BOfH_666 antwortete auf ein Thema von Rumak18 in: Windows Forum — Scripting
... oooops, sorry. Mein Fehler. Ich hatte angenommen, dass wir alle schon im Jahr 2017 angekommen wären. ;) :D :cool: :p :schreck: -
PowerShell - Alle Informationen anzeigen
BOfH_666 antwortete auf ein Thema von Rumak18 in: Windows Forum — Scripting
Get-Help Get-Help -ShowWindow -
mehrere User aus GAL ausblenden
BOfH_666 antwortete auf ein Thema von stonson25 in: Windows Forum — Scripting
Kannst Du keine Foreach-Schleife benutzen? -
Da hat der Chef durchaus erstmal recht. Aber ist es auch mit einem vertretbaren Aufwand möglich? Meistens fängt man solche "Manager" mit dem finanziellen Aspekt ein. Du kannst ihm ja anbieten, Dich Vollzeit für 2 oder 3 Wochen damit zu beschäftigen. Mal sehen, was er dann meint. ;) :cool: Du musst ja schließlich ALLE möglichen Fälle abdecken und das erfordert eine entsprechende Komplexität. Vermutlich sind ein paar Studies mit Turnschuhen für ein paar Tage billiger. :D
-
PowerShell - nach Datei typ suchen
BOfH_666 antwortete auf ein Thema von =o-n-e= in: Windows Forum — Scripting
hmmmm ... wie könnte man sowas nur rausbekommen?? ... ich habe ne verrückte Idee - probier es doch einfach mal! :p ;) :D Powershell nimmt Dir eine Menge Arbeit ab ... Du kannst einfach die Größe angeben, dann den Teiler angeben für die Einheit die Du haben willst und voilá - Powershell rechnet es für Dich um .... so hier z.B. 5242880 / 1MB Du kannst in Variablen packen was auch immer Du gerne möchtest. Was willst Du denn eigentlich damit anfangen? Vielleicht gibt es ja eine ganz andere Lösung für Deine Aufgabe .... -
PowerShell - nach Datei typ suchen
BOfH_666 antwortete auf ein Thema von =o-n-e= in: Windows Forum — Scripting
Oooops ... ja lustig ... auf die Powershell-Zeile hatte ich gar nicht geachtet .... so sollte es eigentlich funktionieren: Get-ChildItem -Path Y:\* -Recurse -Include *.jpg, *.neg | Where-Object {$_.length -gt 100mb -and $_.Directory -notmatch 'folder1|folder2'} | Sort-Object -Property length | Format-Table fullname, length -AutoSize -
PowerShell - nach Datei typ suchen
BOfH_666 antwortete auf ein Thema von =o-n-e= in: Windows Forum — Scripting
Dann kannst Du jetzt natürlich immernoch robocopy anweisen den Header und die Zusammenfassung wegzulassen, die Liste per Powershell einlesen und weiterparsen .... :-D Also so dann .... robocopy Y:\ c:\temp *.jpg *.nef /L /S /XD Folder1 Folder2 /MIN 104857600 /FP /NJH /NJS /NDL /XX -
PowerShell - nach Datei typ suchen
BOfH_666 antwortete auf ein Thema von =o-n-e= in: Windows Forum — Scripting
Ich weiß, es klingt ein bissl "von hinten durch die Brust ins Auge", aber wenn es Dir nur ums Auflisten geht (Du hast ja schließlich ein "ft" am Ende, kannst Du dafür prima robocopy benutzen. Mit der Option /L werden die gefundenen Dateien nur aufgelistet - nicht kopiert. Mit der Option /XD schließt Du Verzeichnisse aus und mit /MIN beschränkst Du die Suche auf Dateien einer bestimmten Mindesgröße .... und schneller dürfte robocopy vermutlich auch noch sein. robocopy Y:\ c:\temp *.jpg *.nef /L /S /XD Folder1 Folder2 /MIN 104857600 /FP ... also so sollte es eigentlich gehen ... und es lässt sich auch noch erweitern wenn Du magst. ;-)