Ich benutze Primal Forms Community Edition, um eine GUI zu erstellen, die unseren neuen Student-Erstellungsprozess für unsere Sekretäre streamen wird. In den unteren Schulen verwenden die Schüler ihre Geburtstage als ihre Passwörter, so dass sie leicht zu merken sind.String kann nicht in sicheren String konvertiert werden, um in New-ADUser zu verwenden
Ich habe eine Texteingabe-Box, die als "Geburtstag" Feld gekennzeichnet ist. Ich möchte dieses Feld verwenden und für AccountPassword in New-ADUser verwenden. Egal, was ich versuche, bekomme ich immer diesen Fehler, wenn ich versuche, einen neuen Benutzer mit meinem Skript zu erstellen.
New-ADUser : Cannot bind parameter 'AccountPassword'. Cannot convert the "System.Security.SecureString" value of type
"System.String" to type "System.Security.SecureString".
At C:\Users\pomeroyt\Google Drive\Work\Scripts\Powershell\student_creation_gui.ps1:377 char:12
+ New-ADUser @User
+ ~~~~~
+ CategoryInfo : InvalidArgument: (:) [New-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.NewADUser
Der Code, den ich verwende, sieht so aus.
$password = $dob.text | ConvertTo-SecureString -AsPlainText -Force
$user = @{
Description = "Student"
UserPrincipalName = "[email protected]"
Name = "$lname.text, $fname.text"
SamAccountName = "$username"
Surname = "$lname.text"
GivenName = "$fname.text"
EmailAddress = "$email"
HomeDrive = H:
HomeDirectory = "\\$server\Students\$yog\$username"
ScriptPath = "$script"
ChangePasswordAtLogon = 0
CannotChangePassword = 1
PasswordNeverExpires = 1
AccountPassword = "$password"
Enabled = 1
Path = "OU=$yog,OU=$group,OU=STUDENTS,DC=domain,DC=local"
}
New-ADUser @User
Ich bin wirklich ratlos hier, weil alles, was ich gesehen habe, sagt, dass, was ich sollte
bearbeiten Arbeit tun -
Die Lösung unten hat lösen das Passwort Problem. Ich erkannte jedoch nicht, dass ich tatsächlich zusätzliche Probleme mit meinem Code sah.
Ich habe -verbose eingeschaltet, um zu sehen, was passiert ist und festgestellt, dass das Feld Name nicht korrekt ausgegeben wurde. Wenn "$ lname, $ fname" für Name = gesetzt wurde, führte dies aus irgendeinem Grund zur vollständigen Ausgabe von $ lname. Ich habe einen neuen String namens $ name erstellt und setze ihn auf = $ lname.text + "," + $ fname.text.
Jetzt Name = $ name und der Befehl wird wie erwartet ausgelöst.
hatte ich die Antwort auf die auf dem Excel-Frage, aber Sie es gelöscht, bevor ich es schreiben könnte. –