Neues Passwort für AD-User-Konto bei Login per PowerShell-Skript
Hallo.
Ich habe auf einem SBS 2011 bestimmte User in einer Gruppe zusammengefasst.
Diese Gruppe wird von einem PowerShell-Skript erfasst.
In diesem PowerShell-Skript sollen die User bei Bedarf beim nächsten Login ein neues Passwort erstellen.
Der PowerShell-Befehl dafür wird jetzt ohne Fehler ausgeführt, bewirkt aber rein gar nichts.
Um dem nachzuforschen, habe ich dem Skript eine Log-Funktion vorangestellt.
Leider erfasst die Log-Funktion ebenfalls nichts.
Active Directory-Benutzer und -Computer
<company-name>.local ==> MyBusiness (Organisationseinheit) ==> ActiveUsers (Organisationseinheit) ==> <company-name>DomainUser (Verteilergruppe - Lokal (in Domäne)
Wo liegt mein Fehler?
Gruß Daniel
Ich habe auf einem SBS 2011 bestimmte User in einer Gruppe zusammengefasst.
Diese Gruppe wird von einem PowerShell-Skript erfasst.
In diesem PowerShell-Skript sollen die User bei Bedarf beim nächsten Login ein neues Passwort erstellen.
Der PowerShell-Befehl dafür wird jetzt ohne Fehler ausgeführt, bewirkt aber rein gar nichts.
Um dem nachzuforschen, habe ich dem Skript eine Log-Funktion vorangestellt.
Leider erfasst die Log-Funktion ebenfalls nichts.
Active Directory-Benutzer und -Computer
<company-name>.local ==> MyBusiness (Organisationseinheit) ==> ActiveUsers (Organisationseinheit) ==> <company-name>DomainUser (Verteilergruppe - Lokal (in Domäne)
$path = "C:\Temp"
$date = get-date -format "yyyy-MM-dd-HH-mm"
$file = ("Log_" + $date + ".log")
$logfile = $path + "\" + $file
function Write-Log([string]$logtext, [int]$level=0)
{
$logdate = get-date -format "yyyy-MM-dd HH:mm:ss"
if($level -eq 0)
{
$logtext = "[INFO] " + $logtext
$text = "["+$logdate+"] - " + $logtext
Write-Host $text
}
if($level -eq 1)
{
$logtext = "[WARNING] " + $logtext
$text = "["+$logdate+"] - " + $logtext
Write-Host $text -ForegroundColor Yellow
}
if($level -eq 2)
{
$logtext = "[ERROR] " + $logtext
$text = "["+$logdate+"] - " + $logtext
Write-Host $text -ForegroundColor Red
}
$text >> $logfile
}
# log something
Write-Log "this is a simple log test"
# create warning log entry
Write-Log "this is a simple log test" 2
# use more than simple variables in a string
$cmds = get-command
Write-Log "there are $($cmds.count) commands available"
Get-ADUser -Filter * -SearchBase “CN=<company-name>DomainUser,OU=ActiveUsers,OU=MyBusiness,DC=<company-name>,DC=Local” | Set-ADUser -ChangePasswordAtLogon:$True
Wo liegt mein Fehler?
Gruß Daniel
Please also mark the comments that contributed to the solution of the article
Content-Key: 458488
Url: https://administrator.de/contentid/458488
Printed on: May 15, 2024 at 01:05 o'clock
4 Comments
Latest comment
Moin,
38 Zeilen Logging-"Funktionalität" ohne richtigen Sinn, und 1 Zeile "Payload"... sehr nice Copy und Paste lässt grüßen!
Werden in Z.39 denn überhaupt User ausgewählt? Lass das Get-ADUser doch mal ohne Set-ADuser laufen
/EDIT: Du willst die Mitglieder der Gruppe abfragen und in SET... rein pipen? dann ist versuchs mal mit Get-AdGroup -Members ...
lg,
Slainte
38 Zeilen Logging-"Funktionalität" ohne richtigen Sinn, und 1 Zeile "Payload"... sehr nice Copy und Paste lässt grüßen!
Werden in Z.39 denn überhaupt User ausgewählt? Lass das Get-ADUser doch mal ohne Set-ADuser laufen
/EDIT: Du willst die Mitglieder der Gruppe abfragen und in SET... rein pipen? dann ist versuchs mal mit Get-AdGroup -Members ...
lg,
Slainte
Moin,
vielleicht hilft Dir das ein wenig weiter.
Das Skript wird bei uns täglich ausgeführt, um den Passwortwechsel auf den Login zu verschieben. Vielleicht kannst du Teile davon verwenden.
Gruß
Looser
vielleicht hilft Dir das ein wenig weiter.
Das Skript wird bei uns täglich ausgeführt, um den Passwortwechsel auf den Login zu verschieben. Vielleicht kannst du Teile davon verwenden.
Gruß
Looser