Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.064
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von BOfH_666

  1. Hmmm ... es geht Dir also quasi darum, hierarchische Daten darzustellen und keine strukturierten.  ;-) Da ist eine tabellarische Anzeige sowieso eher ungeeignet. Wenn sich die Anzahl der Desktops pro Server in Grenzen hält, könnte man die Daten eventuell noch serialisieren. Also quasi sowas hier:

    Server  ==> Destop1 ==> Tag1, Desktop2 ==> Tag2

    Server2 ==> Desktop3 ==> Tag3, Desktop4 ==> Tag4.

     

  2. vor 43 Minuten schrieb g2sm:

    Jedoch denke ich mir gerade, dass ich einfach nur searchbase falsch verstehe. Kann es sein, dass dieser einfach immer recursive sucht und ich immer angeben muss, dass er nur in dieser angegeben OU mit hilfe von searchscope suchen soll?

    Yep. Eben genau so, wie es in der Hiilfe beschrieben wird!! ;-) Es wäre sehr empfehlenswert, wenn Du Dir IMMER wenn Du ein cmdlet das erste Mal benutzt, die KOMPLETTE Hilfe dazu anschaust - inklusive der Beispiele. Häufig werden damit bereits viele Anfängerfragen (und manchmal auch Profi-Fragen) beantwortet.  ;-):D 

  3. Das kann ich quasi nicht beantworten. Ich kenne ja Deine Infrastruktur nicht. Das "Standard-Replikations-Interval" zwischen "benachbarten" DCs ist wohl 45 min. wenn ich nicht irre. Ich würde auch erwarten, dass nach 3 Stunden eine Änderung in der Domäne "durchrepliziert" ist. ... 'gibt aber durchaus Optionen, die ein solches Verhalten plausibel erklären könnten.

  4. Sorry, aber aus professioneller Sicht ist das schlicht und einfach Quatsch? Es ist klar definiert, was Standard- und was Extended Support beinhaltet. In der Standard-Support-Phase werden Feature- UND Security-Updates geliefert. In der Extended-Support-Phase werden nur noch Security-Updates geliefert. Wenn man mit den enthaltenen Features zufrieden ist, spricht Nichts dagegen, den Lebenszyklus eines Produkts auszunutzen.

    Zitat

    Würde mich aus verschiedenen Gründen nicht auf den Extendet Support verlassen.

    Welche Gründe wären denn das?

  5. Dein Code ist ein bissl wirr ... irgendwie. In Powershell macht man sowas eigentlich ein bsisl anders. Vielleicht fängst Du erstmal so an:

    $zaehler = 1
    $Userlist = Get-Content -Path 'C:\Users\admgb\users.txt' |
        Sort-Object |
            Get-Unique
    Foreach($UserName in $userlist){
        Set-ADAccountPassword -Identity "CN=$UserName,OU=user,OU=TEST,OU=RAU,DC=rauglobal,DC=local" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "RAUKO@0$zaehler" -Force)
        $zaehler++
    }

    Wenn Du in Deiner Quell-Datei "users.txt" Windows-AnmeldeNamen (sAMAccoutnNamen) hast, kannst Du diese direkt für Set-ADAccountPasswort benutzen und brauchst nicht den FQDN "zusammenbauen". Das liest sich auch leichter und ist weniger fehlerträchtig.  ;-)

    Was willst Du eigentlich mit dem Password1 und und Password2 erreichen?

    • Danke 1
  6. ... kann mich meinem Vorredner nur anschließen .... Powershell!!  ;-)

     

    Es ist sogar egal, ob der Name des Unterordners bekannt ist oder nicht. Wenn es um einen konkreten Unterordner geht, kannst Du es so machen:

    Get-ChildItem -Path C:\Users\*\Desktop

    Geht es um alle Unterordner, funktioniert es dann so:

    Get-ChildItem -Path C:\Users\*\*

    (Ich hab als Beispiel mal den Users-Ordner genommen, weil es den überall gibt)

  7. Hmmm .... standardmäßig rennt robocopy Links hinterher, was dann gern mal in so einer Schleife endet. Man kann dieses Verhalten dann mit den Optionen /XJ (allgemein) oder /XJF (nur für "Files") oder /XJD (nur für "Directories") deaktivieren. Einfach mal die Hilfe für robocopy (robocopy /?) aufrufen und sich die Optionen alle angucken. Im deutschen heißen die Dinger "Abzweigungspunkte" und im englishen "Junctions".

    BTW: Das ist kein Bug, das ist ein Feature!!  ;-):D

  8. Nur eine kleine Idee: Wenn Du wissen möchtest, ob ein optionales Feature in Windows aktiviert/installiert ist, brauchst Du keine DISM Abfrage. Das kann Powershell direkt "out-of-the-box" alleine. Hiermit bekommst Du alle optionalen Feature aufgelistet:

    Get-WindowsOptionalFeature -Online

    So kannst Du Dir alle Features die mit SMB1 zusammenhängen auflisten:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol*

    Und so dampfst Du die Anzeige auf die für Dich vermutlich relevanten Infos ein:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol* |
        Select-Object -Property FeatureName,State

    Wie üblich in Powershell, arbeitest Du mit Objecten und deren Eigenschaften. Das macht es natürlich auch möglich in einem Script, den Status des jeweiligen gesuchten Features abzufragen und das Ergebnis für weitere Schritte zu benutzen.  ;-):D

     

  9. vor 5 Stunden schrieb nv_it:

    Kann mir evt. jemand von euch sagen wenn ich eine csv Datei importiere, die dann in einer Variable speicher, wie ich dann aus dieser Datei in der Tabelle eine bestimmte Zeile auslesen kann?

    Nimm Dir doch jetzt bitte erstmal die Zeit und schaff Dir die Grundlagen drauf. Das wird sehr viele Deiner anfänglichen Fragen beantworten. Es ist nicht Aufgabe eines Forums, Dir eine Technologie beizubringen. Wonach Du fragst ist Grundlagenwissen.

     

    Die allgemeine Antwort auf Deine Frage ist: "... mit einer Schleife, die je nach Aufgabenstellung die Abfrage einer Bedingung enthält".

  10. Ich weiß ja nicht, wie Du Dich gerade in Powershell einarbeitest, aber es ist bestimmt keine schlechte Idee, sich die Grundlagen einigermaßen strukturiert drauf zu schaffen .... das geht kostenlos und sogar einigermaßen unterhaltsam mit einem kostenlosen Videokurs in der Microsoft Virtual Academy - Getting Started with Powershell. Wenn Du dann einmal dabei bist und hoffentlich Spaß hattest, kannst Du gleich noch den 2. Teil angucken - Advanced Tools & Scripting.

    • Like 1
  11. Ein fertiges Script wirst Du vermutlich für so eine spezielle Aufgabe nicht finden. Aber wenn es für Deinen "Prozess" wichtig, dass der Ziel-Ordner leer/abgeräumt ist, bevor Du mit dem nächsten Quellordner weitermachst, würde ich eher keine Wartezeit einbauen, sonder eher einen Check, ob der Ziel-Ordner leer ist. Für sowas hat Powershell entweder das cmdlet Test-Path, wenn es nur um die "reine" Existenz eines Ordners oder einer Datei geht, oder das cmdlet Get-ChildItem, welches existierende Ordner oder Dateien zurückliefert .... die müsstest Du dann weiterverarbeiten.

     

    Je nachdem wie "Neuling" Du mit der Powershell bist, tust Du Dir eventuell selbst einen riesen Gefallen, wenn Du Dir die Grundlagen strukturiert und umfassend aneignest ... das geht sogar kostenlos und einigermaßen unterhaltsam in der Microsoft Virtual Academy mit dem Video-Kurs Getting Started with Powershell.

     

    Na dann erst mal viel Spaß beim Coden!  ... und wenn Du dann Code hast, mit dem Du mal nicht weiterkommst, kannst Du ja wieder hier fragen.  ;-):D

     

    Eine gute Quelle für fertige Scripte und Module für Powershell ist übrigens die Powershell-Gallery.

  12. Da fehlt wohl das entscheidende Stück der Frage, oder?  Was willst Du denn erreichen? Wenn Du im Pattern eckige Klammern benutzt suchst Du nach einer ZeichenKlasse ... in Deinem Fall also nach der Existenz von klein s und klein e aber nicht zwingend in dieser Reihenfolge. Das Caret-Zeichen (^) ist normalerweise ein Anker und meint "Am Anfang des Suchstrings". Ob es innerhalb einer Charachterklasse die gleiche Bedeutung hat, weiß ich nicht  - bin aber eher skeptisch.

    Wenn Du eigentlich nach einer ZeichenGruppe suchen wolltest, müsstest Du normale runde Klammern benutzen.

    So klappt's wie erwartet:

    PS:>'test' -match '(es)'
    True

    und so klappt es nicht ... aber auch erwartet ... ;-)

    PS:>'test' -match '(^es)'
    False

     

    So ... ich hab nochmal recherchiert  ;-) ... das Caret-Zeichen am Anfang innerhalb einer Zeichenklasse [^...] kehrt die nachfolgenden Zeichen um. Also in Deinem zweiten Beispiel suchst Du Alles ausser s und e. Das heißt Du findest die beiden t's. Das kannst Du auch überprüfen, indem Du Dir die nach einem positiven "Match" automatisch befüllte Variable $Matches mal auf der Konsole ausgeben lässt.

    Das Caret-Zeichen an beliebiger Stelle innerhalb einer Zeichenklasse [...^...], meint einfach ein literales Caret-Zeichen.

  13. Hmmm .... klingt ulkig. Ich glaub, ich schließ mich jetzt zahni und testperson an ...  Haben die PC-Namen in der Text-Datei keine eindeutigen Namen? Wenn es PC-Namen in einer Domain sein sollten, sollten sie das aber haben. Vielleicht zeigst Du einfach mal ein bissl mehr von Deinem restlichen Code und/oder sagst, was Du am Ende erreichen möchtest .... vielelciht hast Du Dich in etwas verrannt und es gibt eine viel einfachere Lösung.  ;-):D

    vor 1 Minute schrieb itsa:

     Und wie rufe ich die Variablen wieder auf ohne die direkt zu benennen?

    Ganz einfach .... Du iterierst mit einer foreach-Schleife über Deine Variable $Computers .... !?

×
×
  • Neu erstellen...