Ich versuche, ein Skript zu erstellen, in dem einige Benutzer in einer CSV-Datei gespeichert werden. Ändern Sie dann das Kennwort und aktivieren Sie es in Active Directory. Das Problem ist, ich kann nicht alle Benutzer ausgeben zu bekommen scheinen entweder CSV oder eine Textdatei, die wie folgt aussieht:Alle Benutzer und Kennwörter in eine Datei ausgeben
User1 Password User2 Password User3 Password User4 Password
ich versucht habe Write-Host
und das hat nicht funktioniert, so dass ich spielte mit ein Array, aber ich kann es immer noch nicht bekommen. Kann mir bitte jemand helfen mit dem was ich falsch mache, damit ich alle User an einen Tisch ausgeben lassen kann? Hier
ist der Code, den ich verwende:
if (-not (Get-Module ActiveDirectory)){
Import-Module ActiveDirectory
}
#Construct an out-array to use for data export
$OutArray = @()
# User setup
$users = Import-Csv "C:\accounts.csv"
foreach ($user in $users) {
# set up random number generator
$rand = New-Object System.Random
#Generate a new password
$NewPassword = [char]$rand.next(65,90) + [char]$rand.next(65,90) +
[char]$rand.next(48,57) + [char]$rand.next(97,122) +
[char]$rand.next(48,57) + [char]$rand.next(97,122) +
[char]$rand.next(97,122) + [char]$rand.next(35,38)
#setup username variables
$username = $user.samAccountName
#enable ad account
Enable-ADAccount -Identity $username
#set-ad password
Set-ADAccountPassword $username -NewPassword (ConvertTo-SecureString -AsPlainText "$NewPassword" -Force) -PassThru -Reset
#$outarray += $Username,$NewPassword
#Write-Host "Password has been set for:" $username $NewPassword
}
#After the loop, export the array to CSV
$outarray | Export-Csv "c:\login.csv"
'System.Random' sollte niemals für Kennwörter verwendet werden. Es verwendet einen vorhersagbaren Algorithmus. Sie sollten stattdessen 'System.Security.Cryptography.RNGCryptoServiceProvider' verwenden, oder sogar etwas sehr einfaches wie' [System.Web.Security.Membership] :: GeneratePassword (8,0) '. –
@krousemw Aus Sicherheitsgründen wäre es eine hirnverbrannte Idee, eine nicht sichere Website von Drittanbietern zu verwenden, um Ihre Kennwörter zu generieren. Wörterbuchangriffe, Lauschangriffe und Man-in-the-Middle sind viel zu einfache Angriffsvektoren. – vonPryz