Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.098
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von BOfH_666

  1. OK, bitte Code als Code formatieren.

     

    Was ich meinte war, statt die "7" überall direkt hinzuschreiben, eine Variable zu benutzen  ... etwa so:

    $AnzahlZeichen = 7
    foreach ( $Test in Get-ChildItem -Path D:\Test -File ) { 
        if (!(Test-Path -Path $Test.FullName.Substring(0, $AnzahlZeichen ))) { 
            New-Item -ItemType Directory -Path $Test.FullName.Substring(0, $AnzahlZeichen ) 
        } 
        Move-Item -Path $Test.FullName -Destination $Test.FullName.Substring(0, $AnzahlZeichen ) 
    }

    Dann brauchst Du, wenn Du eine andere Anzahl an Zeichen benutzen möchtest, den Code nur an einer Stelle zu ändern.

    vor 18 Minuten schrieb LEDZEPPELIN:

    aber es funktioniert nicht.

    ... ist keine valide Beschreibung. Was funktioniert nicht? 

     

    Edit:  ... und ist mir jetz grad erst aufgefallen ... Du hast beim Move-Item Befehl als -Destination $Rechnung benutzt, obwohl Du in Deinem Code $Rechnung in $Test geändert hattest!!!  ;-) 

  2. Was gefällt Dir denn nicht an dem Script-Beispiel im anderen Thread? Wenn Du die Anzahl der benutzten Stellen des Dateinamens variabel machen möchtest, machst Du aus der dort fest vergebenen Zahl (ich meine die "19") eine Variable und füllst diese vorher, wie Du das für richtig hältst.

     

    Edit: Ich beziehe mich übrigens auf Jans Powershell-Script-Beispiel.  ;-) 

  3. vor 5 Stunden schrieb info@vision4d.de:

    die Rechner in dieser Doäne sind vorsichtig ausgedrückt "Briefbescherer" (Core 2 Duo und Dualcore).

    Ich bin ja auch immer für nachhaltige Lösungen aber ich denke man kann's auch übertreiben. Und PCs mit Core 2 Duo dürften vermutlich mindestens 10 Jahre alt sein. Meinst Du nicht auch, dass diese Rechner ihre Pflicht getan haben und ein Abschied in Würde verdient haben? Bitte lass sie nicht unnötig leiden! ;-) 

    Und ich könnte mir auch vorstellen, dass die Produktivität der Anwender dieser PCs deutlich steigt, wenn sie zeitgemäße Arbeitsmittel gestellt bekommen.

    • Like 1
  4. vor 1 Stunde schrieb info@vision4d.de:
     

    Ich möchte gerne die monatlichen Updates und die Optionalen Qualitätsupdates per GPO automatich herunterladen und installieren lassen.

     

    vor 1 Stunde schrieb info@vision4d.de:

    Oder wass muss ich ändern damit die Updates automatisch heruntergeladen werden?

     

     

    Herunterladen? Oder Herunterladen und Installieren?  ... Du solltest auf jeden Fall erst mal klar artikulieren, was genau Du anstrebst.  ;-) 

  5. Der Parameter, der dazu gemacht ist, eine Datei an Powershell zu übergeben heißt -File!!  .... nicht -Command;-)   Der Parameter -WindowStyle Hidden funktioniert nicht - hat er komischerweise noch nie - in keiner Version. Du könntest  das Script - wenn es im Benutzer-Kontext ausgeführt wird - höchstens minimiert starten. -WindowStyle Minimized funktioniert üblicherweise. 

     

    Ein Möglichkeit das Script ganz "unsichtbar" zu starten, wäre, es in der Aufgaben-Planung "... mit höchsten Privilegien" zu starten - also mit administrativen Rechten. Dann wäre es für den angemeldeten Benutzer auch nicht sichtbar.

     

    Eine andere Möglichkeit ist VBScript zu benutzen, um Powershell zu starten ... hier beschrieben: https://stackoverflow.com/questions/46808635/how-to-run-powershell-script-using-task-scheduler-in-silent-hidden-mode

  6. Deine CSV-Datei hat ein ungünstiges Format. 

     

    Sowas Ähnliches wie das sollte genügen, denke ich:

    $csv = import-csv 'irgendeinpfad\Dateiname.csv' -Delimiter ';'
    
    Foreach ($item in $csv) {
        Add-ADGroupMember -Identity $item.name -members  ($Item.upn -split ' ')
    }

    ... natürlich ungetestet ...  ;-) 

    Edit: Achso ... das setzt natürlich voraus, dass in deiner CSV-datei die UserPrincipalNames mit Leerzeichen innerhalb des Strings getrennt sind. Wenn es wirklich Zeilenumbrüche sind, musst Du das Zeichen für den -Split anpassen ... oder die CSV-Datei vorher entsprechend aufbereiten.

    • Like 1
  7. vor einer Stunde schrieb scrat:

    .... Leider will ActivationDate ein genaues Datum (also 11/24/2020) und gibt sich nicht mit einem allgemeinen Wochentag (wie bei einem Serientermin, z.B. Monday) zufrieden. Mir fällt auch nicht ein, wie ich dass Datum dynamisch einfügen könnte.

    .... müsste man regelmäßig (per Aufgabenplanung) ein Script laufen lassen, welches die Umleitung zum gewünschten Zeitpunkt aktiviert und dann auch wieder deaktiviert. Die Wochentage bekommt man mit PwSh leicht raus. :-) 

  8. vor 1 Stunde schrieb MrMojoRisin666:

    Habt Recht, Powershell ist das Tool der Wahl :D

    Gut erkannt.  ;-) 

    vor 1 Stunde schrieb MrMojoRisin666:

    mit je einem Einzeiler, aber das geht doch bestimmt in einem Statement.

    Hier gleich noch eine dringende Empfehlung für Deine weitere "Powershell-Karriere". Bitte in Scripten und auch hier in Foren nicht alles in mit Einzeilern und so kruz wie's geht abhandeln!! Das macht eventuell auf der Konsole Sinn, wenn Du einfach nur eine Ausgabe brauchst. In Scripten und ganz besonders, wenn auch andere diese Scripte später eventuell benutzen und, wenn nötig, anpassen und erweitern sollen, solltest Du die Befehle so ausführlich und deklarativ schreiben, wie es geht. 

    Dein Einzeiler würde so viel leichter/schneller verständlich sein:

    Get-ChildItem -Path '\\server\backup\folder1' -File | 
        Sort-Object -Property LastWriteTime -Descending | 
            Select-Object -First 1 | 
                Copy-Item -Destination '\\server\backup\000_Archiv' -Force

    Vielleicht liest Du Dir bei Gelegenheit mal den Best-Practice and Style Guide durch.  

    • Like 1
    • Danke 1
×
×
  • Neu erstellen...