Jump to content
Sign in to follow this  
ace24

Powershell - Passwort für AD-User ändern

Recommended Posts

Hey @all

 

first....bin Frischling ! :-D

 

ich möchte ein Script mit Powershell bauen welches die passwords von allen Benutzer in der OU "Admin Group "(AD) ändert. Die User sollen alle das gleiche Password bekommen.

 

So suche ich die User :

 

Get-ADUser -Filter {sAMAccountName -like "*"} | Where-Object {$_.DistinguishedName -like "*Admins*"} | Select-Object sAMAccountName

 

Output:

 

sAMAccountName

---------------------

user1

user2

user3

 

How can I print the output without the first line? without "sAMAccountName"

 

 

 

other option:

 

Get-ADUser -filter 'samAccountName -like "*"' | where-Object {$_.DistinguishedName -like "*Admins*"} | where-Object {write-host $_.SamAccountName}

 

Output:

 

user1

user2

user3

 

die zweite Option kann ich nicht in eine Variable speichern...warum ? das wäre so perfekt.

 

Wenn ich die User habe...brauche ich eine schleife oder so. Damit ich die dann in den Code unten einbauen kann..

 

Set-ADAccountPassword -Identity user1 -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "Password123" -Force)

 

Einzeln geht das ganze ja...

 

Kann mir jemand helfen ???

 

thx

alex

Share this post


Link to post

Moin,

 

der Unterschied zwischen PowerShell und anderen Shells: In PowerShell arbeitest du immer mit Objekten. Beim Piping von Befehlen leitest du also nicht Texte weiter, sondern die Objekte selbst.

 

Wenn du also ein Kommando hast, das dir genau die gesuchten Objekte zurückgibt, kannst du diese Objektmenge direkt an ein anderes Kommando weiterleiten. Du musst dich nicht um Ausgabeformatierung kümmern und brauchst auch keine Variablen.

 

Ungetestet, aber dieses sollte gehen:

 

Get-ADUser -Filter {sAMAccountName -like "*"} | Set-ADAccountPassword -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "Password123" -Force)

 

(Ob das ganze Vorhaben in einer Echtumgebung sinnvoll wäre, sei mal dahingestellt. Ich gehe davon aus, dass es sich um eine Übungsaufgabe handelt.)

 

Gruß, Nils

Share this post


Link to post

Hallo Nils,

 

nein das ist nicht für Produktiv. Ist nur ein Test in einer Testumgebung...

Danke für den schnellen Post...werd das gleich mal testen ...

 

 

gruß

alex

Share this post


Link to post

Muss ich " Maskieren ???

 

Wenn ich z.B. ein Passwort so setzte

 

(ConvertTo-SecureString -AsPlainText "Pas"sword123" -Force)

 

Kannst du mir da auch helfen...Das Script läuft sonst....SUPER danke !!!

 

alex

Share this post


Link to post
Muss ich " Maskieren ???

 

Wenn ich z.B. ein Passwort so setzte

 

(ConvertTo-SecureString -AsPlainText "Pas"sword123" -Force)

 

Kannst du mir da auch helfen...Das Script läuft sonst....SUPER danke !!!

 

alex

 

Hat sich erledigt....

 

Lösung:

'Pas"sword123'

Share this post


Link to post

Ich habe ebenfalls eine Frage zum o.g. Fall.

Wo kann ich die OU im Script angeben damit ich nur die Passwörter der User von eine bestimmten OU zurücksetzen kann?

 

Danke

Share this post


Link to post

Du kannst ein eigenen Beitrag erstellen, aber die OU kannst du beim Cmdlet Get-ADUser angeben (get-help ist dein Freund):

    -SearchBase <string>
        Specifies an Active Directory path to search under.

        When you run a cmdlet from an Active Directory provider drive, the defa
        ult value of this parameter is the current path of the drive.

        When you run a cmdlet outside of an Active Directory provider drive aga
        inst an AD DS target, the default value of this parameter is the defaul
        t naming context of the target domain.

        When you run a cmdlet outside of an Active Directory provider drive aga
        inst an AD LDS target, the default value is the default naming context
        of the target LDS instance if one has been specified by setting the msD
        S-defaultNamingContext property of the Active Directory directory servi
        ce agent (DSA) object (nTDSDSA) for the AD LDS instance.  If no default
         naming context has been specified for the target AD LDS instance, then
         this parameter has no default value.

        The following example shows how to set this parameter to search under a
        n OU.
          -SearchBase "ou=mfg,dc=noam,dc=corp,dc=contoso,dc=com"

        When the value of the SearchBase parameter is set to an empty string an
        d you are connected to a GC port, all partitions will be searched. If t
        he value of the SearchBase parameter is set to an empty string and you
        are not connected to a GC port, an error will be thrown.
        The following example shows how to set this parameter to an empty strin
        g.   -SearchBase ""

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?       false
        Accept wildcard characters?  false

Share this post


Link to post

Hallo, 

der Beitrag ist schon länger her, 

wollte wissen welchen Parameter man zusätzlich setzen muss, damit man  die Option erhält "Benutzer muss beim nächsten Login Passwort ändern" 

 

Danke

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...