Jump to content

BOfH_666

Expert Member
  • Gesamte Inhalte

    2.036
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BOfH_666

  1. hmmmm ... und warum kommt dann Powershell nicht in Frage? Mit Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter "NOT Description LIKE '%TAP%'" | Where-Object -Property DefaultIPGateway -Value '' -NOTLIKE wärst Du bestimmt schon ein Stück näher am Ziel, oder?
  2. $Array = Get-ADGroup -Filter "Name -like 'GruppeXX*'" | Select-Object -ExpandProperty Name $Liste = foreach ($element in $Array) { Get-ADGroupMember -Identity $element | Get-Aduser -Properties name, DisplayName, Mail | Select-Object name, DisplayName, Mail,@{Name='Group';Expression={$element}} } $Liste $Liste | Export-Csv -Path C:\Scripte\2017\Januar\GruppenMitglieder.csv -NoTypeInformation -Delimiter ';' Vielleicht hilft Dir das ja weiter. Wenn Du Daten hast, die quasi eine Tabelle darstellen, macht es mehr Sinn, diese auch als solche zu exportieren. Das kannst Du mit Export-CSV erledigen. Um die einzelnen Gruppen dann noch auseinanderzuhalten, hab ich mal eine weitere Spalte mit dem Gruppennamen hinzugefügt. Du könntest natürlich auch jeweils eine Datei pro Gruppe machen. Noch ein Tipp für dieses Forum (vielleicht auch für alle Foren): Es zeugt von gutem Stil, wenn man Code postet, diesen auch als solchen zu formatieren. Dafür gibt es entsprechende Optionen in den jeweiligen Editoren. Und es macht Dir und den Menschen, die Dir helfen sollen das Leben einfacher, wenn Du möglichst keine Aliasse und Abkürzungen verwendest und entsprechende Einrückungen verwendest. Na denn ... viel Spaß
  3. Um sich alle möglichen von einem cmdlet gelieferten Properties anzusehen, ist Format-Table ungeeignet. Da wäre besser: Get-Printer -Name "H14 Raum 401 MF" | Select-Object -Property * oder Get-Printer -Name "H14 Raum 401 MF" | Format-List * Bei "Select-Object" kannst Du dann mit der Ausgabe weiterarbeiten - wohingegen Du mit "Format-List" die Pipeline quasi abbrichst und die Infos nur in der Konsole ausgibst. (was aber zum "Forschen" auch ok ist) Unabhängig davon ist es empfehlenswert IMMER die komplette Hilfe für ein cmdlet zu lesen. !!! Inklusive der Beispiele !!! Es kommt zwar vor, dass die Hilfe unvollständig oder ungenau ist, aber besser als raten ist es allemal.
  4. Ich fürchte, dafür fehlen uns die Informationen. Bei Druckern und Druckertreibern kocht (nach meiner Erfahrung) immernoch jeder Druckerhersteller sein eigenes Süppchen. Wir haben Ricoh und HP im Einsatz und benutzen deren "Universal Driver". So lange während der Druckereinrichtung auf dem Server der Drucker übers Netz erreichbar ist, holt sich der Druckertreiber die verfügbaren Optionen und Standardeinstellungen, inclusive zusätzlich installierter Papierfächer oder Sortierer oder Locher oder so, vom Drucker und wir belassen alles auf den Vorgaben vom Hersteller.
  5. Wenn ich mich nicht irre, solltest Du in Deinem Foreach-Loop eventuell noch den AD-User angeben für das neue Homedirectory gesetzt werden soll foreach-object{Set-ADUser -Identity $_.sAMAccountName -HomeDirectory ("\\domain.local\USERHOME\" + $_.samaccountname)} ... und zur Sicherheit kannst Du den 'zusammengebauten neuen Pfad' noch in Klammern setzen. Dann braucht PS nicht zu raten wo das dazu gehört.
  6. Ich kann auch nur mit dem arbeiten, was Du mir anbietest .... statt der Erklärung in Klammern, hab ich eben die ausgelesene SID eingefügt. Wenn Du's nicht brauchst, lass'es weg. Es schmerzt übrigens nicht, wenn man das ein oder andere in der Konsole oder in der ISE einfach ausprobiert ;) :rolleyes:
  7. ... ich zwar auch immer noch nicht verstanden, wo Du dann hinwillst, aber vielleicht hilft Dir das hier weiter: $user = $Env:UserName $SID = ([Security.Principal.NTAccount]($user)).Translate([Security.Principal.SecurityIdentifier]).Value $SID $ZielPfad = "C:\Windows\System32\GroupPolicyUsers\SID$SID\User\" $ZielPfad
  8. .... hhmmm ... und wie bewerkstelligst Du nun diese Aufgabe? Wir sind neugierig. ;) :rolleyes: ... oder gibst Du einfach auf? :confused: :schreck:
  9. Wow .... mit der Attitude kommst Du bestimmt gut durchs Leben. Na dann versuchs doch mal mit Get-ChildItem. Die komplette Hilfe zu diesem cmdlet bekommst Du mit: Get-Help Get-ChildItem -Full Viel Spaß!
  10. Du könntest mittels Powershell den Inhalt einlesen, die Zeilen entsprechend parsen, Datum und Uhrzeit in Powershell-Objekte umwandeln und diese dann vergleichen.
  11. Vielleicht genügt ja auch schon das Powershell-Excel Modul. Wenigstens die Landing Page sieht danach aus, als könnte es, was Du benötigst. https://blogs.technet.microsoft.com/heyscriptingguy/2015/11/25/introducing-the-powershell-excel-module-2/
  12. ... und der korrekte Aufruf des Scriptes wäre besser so: ....\Powershell.exe -noprofile -file <Pfad\Datei.ps1> Du kannst auch noch weitere Parameter anhängen. Alle möglichen Parameter findest Du in einer CMD mit: Powershell.exe /?
  13. ... ob ich ihm damit einen Gefallen tun würde!? Da bin ich sehr skeptisch. Ich bin mit batch nie richtig warm geworden. Deswegen war ich ja so froh, als PS rausgekommen ist. ;) :D :jau: :thumb1: :wink2:
  14. ... und wenn Dir Excel eventuell nicht zur Verfügung steht, gibt es vermutlich einen dicken Sack voll mehr oder weniger gute Tools im Internet, die das für Dich erledigen. Eins davon wäre vielleicht der kostenlos verfügbare FreeCommander mit seinem Mehrfach - Umbenennen - Tool. Wenn Du diese Aktion regelmäßig durchführen musst/möchtest, empfehle ich Dir Powershell zu lernen. Es ist unglaublich viel mehr flexibler und mächtiger als Batch-Scripte. Ein paar gute Quellen für den Start mit Powershell findest Du hier: Beginner Sites und Tutorials. Wenn Du allerdings schon ein paar Zeilen Code hast - auch wenn der noch nicht so richtig tut, was er soll - poste ihn einfach hier. Es gibt immer jemanden hier, der Dir damit weiterhelfen kann.
  15. Dafür gibt es einen Trick. Der ist aber ein bissl tricky. Der im Moment interaktiv an einem Windows-Client angemeldete Benutzer wird in der Registry im Zweig 'HKEY_USERS' angelegt. Dort hat er dann (und nur er) einen Schlüssel 'Volatile Environment'. In diesem Schlüssel findet sich dann auch wieder ein Zeichenfolgen-Wert mit dem Namen 'Username', den Du auslesen kannst. ;) :cool: :thumb1:
  16. Hmmm ... ok, ich gehe mal davon aus, dass es nur ein Tippfehler hier im Forum ist, aber da fehlt die schließende Klammer. Vielleicht üben wir das mit dem Kopieren und Einfügen auch noch mal .... ;)
  17. Hmmm ... und Du bekommst keine Fehlermeldung, wenn Du diesen Code ausführst?
  18. Anstatt: $Shortcut.TargetPath = "%windir%\explorer.exe /e," Probier ma so: $Shortcut.TargetPath = '%windir%\explorer.exe' $Shortcut.Arguments = '/e,'
  19. Schonmal danach gesucht? https://blogs.technet.microsoft.com/bernhard_frank/2010/03/23/shortcuts-oder-verknpfungen-automatisch-via-powershell-script-erzeugen/ Nur zur Info: Gesucht habe ich bei Google nach "powershell verknüpfung anlegen"
  20. Ja - manchmal hat man Nachtschattengewächse auf den Augen. :schreck: :D
  21. Siehste ... da hab ich vorhin gar nicht drauf geachtet. Du fragst in Deinem 'if' das AD ab, ob es den User schon gibt. Und wenn ja, dann willst Du genau diesen User neu anlegen. Soll das so sein? Wenn nicht, sollte die if - Zeile eher so aussehen: if (-not (Get-ADUser -Filter {SamAccountName -eq $Username})) und von mir auch noch ein kleiner Tipp: Backtick in Scripten zu benutzen ist gefährlich. Der BackTick ist ein Escape-Zeichen. Und wenn dahinter mal kein Zeilenumbruch kommt, sondern versehentlich ein Leerzeichen, was mann normalerweise nicht sieht, dann funktioniert das Ganze nicht mehr und es ist schwer zu ermitteln warum.
  22. Wie testperson schon richtig meint - technisch betrachtet liegt der Fehler in der Zeile: Import-Csv -Delimiter ";" -Path "c:\test\mappe1.csv" die sollte so aussehen: $ADUsers = Import-Csv -Delimiter ";" -Path "c:\test\mappe1.csv" damit Dein Script wie gewünscht funktioniert.
  23. Eine hilfreiche Zusammenfassung, wie man mit XML-Daten umgehen kann, findest Du hier : Free Powershell Cookbooks und hier auch gleich der Download-Link
  24. $User = Get-ADUser -Identity 'User' ($User.DistinguishedName -split ',')[0] So bekommst Du den CN aus dem Distinguished Name separiert.
×
×
  • Neu erstellen...