Von Quest gibt es ein sehr gutes Modul für PowerShell. Das Modul umfasst über 80 cmdlets. Mit diesem cmdlets lassen sich viele Operationen in PowerShell sehr einfach abhandeln u.a. auch das setzen eines Passwortes.
Die Quest CMDLETS gibt es unter „Free downloads“ zum Download. Genauer gesagt benötigt man das Quest One ActiveRoles Management Shell for Active Directory 64-bit – oder 32-bit -Zip. Dort enthalten ist ebenfalls eine ausführliche Beschreibung aller cmdlets. Ich weis, dass man sich aus dem Pack lediglich das QuestAD Modul ziehen kann, um nicht alles von Quest installieren zu müssen. Das wie und warum das geht, werde ich allerdings nicht behandeln.
Um das Passwort eines Benutzer nun mittels PowerShell zu ändern nutze ich die cmdlet Set-QADUser. Um Informationen eines Benutzers auszulesen muss ein Benutzerobjekt mittels Get-QADUser erzeugt werden. Ich habe jeweils den samAccountName angeben. Anschließend können alle Eigenschaften des Benutzerobjektes bearbeitete werden, wie z.B. Namen, Ort, Email-Adresse etc.. Dies geschieht wiederum mit Set-QADUser. Um da Passwort eines Benutzers zu ändern, werden administrative Rechte gefordert, sonst wird der Zugriff verweigert.
Codebeispiele
Benutzerobjekt erzeugen
1 2 3 4 5 6 |
#Variante 1 $user = Get-QADUser StefanRehwald write-host $user.givenName $user.LastName, $user.Email, $user.City #Ausgabe #Stefan Rehwald, blog@stefanrehwald.de, Leipzig |
Passwort setzen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#Variante 1 Set-QADUser StefanRehwald -UserPassword "neuesPWD!*?" #Variante 2 $user = Get-QADUser StefanRehwald Set-QADUser $user -UserPassword "neuesPWD!*?" #Variante 3 - mit und ohne get-QADUser $user = Get-QADUser StefanRehwald $pwd = "geheim" Set-QADUser $user -UserPassword $pwd #Variante 4 $user = Get-QADUser StefanRehwald $pwd = "geheim" Set-QADUser $user -UserPassword $pwd write-host $user.givenName $user.LastName ": letzte Änderung des Passwortes am"$user.PasswordLastSet |
Es wird keine Information angezeigt. Allerdings kann man sich, wie in Variante 4, das Datum der letzten Passwortänderung anzeigen lassen.
Zum Schluss noch eine Liste aller QuestAD cmdlets.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
#Name der Cmdlets Add-QADCertificate Add-QADCertificateRevocationList Add-QADGroupMember Add-QADMemberOf Add-QADPasswordSettingsObjectAppliesTo Add-QADPermission Add-QADProxyAddress Clear-QADProxyAddress Connect-QADService Convert-QADAttributeValue Deprovision-QADUser Disable-QADComputer Disable-QADDiagnosticLog Disable-QADEmailAddressPolicy Disable-QADUser Disconnect-QADService Edit-QADCertificate Enable-QADComputer Enable-QADDiagnosticLog Enable-QADEmailAddressPolicy Enable-QADUser Export-QADCertificate Export-QADCertificateRevocationList Get-QADCertificate Get-QADCertificateRevocationList Get-QADComputer Get-QADDiagnosticLogStatus Get-QADGroup Get-QADGroupMember Get-QADInactiveAccountsPolicy Get-QADLocalCertificateStore Get-QADManagedObject Get-QADMemberOf Get-QADObject Get-QADObjectSecurity Get-QADPasswordSettingsObject Get-QADPasswordSettingsObjectAppliesTo Get-QADPermission Get-QADPKIObject Get-QADProgressPolicy Get-QADPSSnapinSettings Get-QADRootDSE Get-QADUser Import-QADCertificate Import-QADCertificateRevocationList Move-QADObject New-QADComputer New-QADGroup New-QADLocalCertificateStore New-QADObject New-QADPasswordSettingsObject New-QADUser Publish-QADCertificate Publish-QADCertificateRevocationList Remove-QADCertificate Remove-QADCertificateRevocationList Remove-QADGroupMember Remove-QADLocalCertificateStore Remove-QADMemberOf Remove-QADObject Remove-QADPasswordSettingsObjectAppliesTo Remove-QADPermission Remove-QADPrivateKey Remove-QADProxyAddress Rename-QADObject Reset-QADComputer Restore-QADDeletedObject Set-QADComputer Set-QADGroup Set-QADInactiveAccountsPolicy Set-QADObject Set-QADObjectSecurity Set-QADProgressPolicy Set-QADProxyAddress Set-QADPSSnapinSettings Set-QADUser Show-QADCertificate Unlock-QADUser Unpublish-QADCertificate Unpublish-QADCertificateRevocationList Where-QADCertificate |
rewe
Ein Gedanke zu „PowerShell – 06 – Passwort setzen oder ändern mittels QuestAD“