Ich bin ein Neuling, wenn es um Programmierung und Powershell kommt. Ich habe einen hohen Ehrgeiz, also habe ich mich selbst beauftragt, etwas viel schwierigeres zu schaffen, als es hätte sein sollen. Funktioniert bisher großartig, aber es könnte besser sein.Powershell mehrere Benutzereingabe Verzweigung
Mein Ziel: Erstellen Sie ein Powershell-Skript, das einen vorhandenen Benutzer kopiert, um einen neuen Benutzer mit ähnlichen Funktionen mit etwas Glocke und Pfiff zu erstellen.
Die Skriptfunktionen:
die Admin-Benutzer fragen, die AD Fragen Sie den Admin nennen Sie den neuen AD-Benutzer Ausgabe einiger Schriften und dann fragen Sie den Benutzer zur Bestätigung, bevor Sie mit Wahl Y oder N kopieren Wenn Geben Sie Y ein, fahren Sie mit dem Skript fort. Wenn der Administrator N eingeben, starten Sie das Skript neu. Wenn der Administrator etwas anderes eingibt, stellen Sie die Frage erneut.
Meine Frage: Wie implementiere ich eine Art von Fehlern bei Überprüfung der Server-Betreiber gibt die falschen AD Benutzer von kopieren, die nicht und einen Fehler wirft Code existieren? Ich möchte, dass die Konsole sie darauf aufmerksam macht, dass es falsch ist und sie erneut eingeben.
Code unten. Jeder Tipp, um es zu perfektionieren, würde auch sehr geschätzt werden.
PS: Ich habe gerade angefangen, mit Powershell und Kodierung im Allgemeinen zu arbeiten, also bin ich über die Spitze gegangen, etwas so einfaches zu tun, aber ich habe ziemlich viel gelernt. Ich plane, auch die Codes aufzuräumen. Vielleicht kann dieser Code nützlich sein, um jemand da die Suche nach etwas ähnlichen
Write-Host "****************************************************************"
Write-Host "**" -nonewline
Write-Host " New User Creation Script " -ForegroundColor yellow -nonewline
Write-Host "**"
Write-Host "****************************************************************`n"
Do {
Write-Host "Enter an AD Username to copy: " -ForegroundColor Green -NoNewline
$InputUser = Read-Host
$User = Get-AdUser -Identity $InputUser -Properties OfficePhone, Title, Department, State, Streetaddress, City, Country, Office, HomePage, Fax, Description, co, OfficePhone, PostalCode
$DN = $User.distinguishedName
$OldUser = [ADSI]"LDAP://$DN"
$Parent = $OldUser.Parent
$OU = [ADSI]$Parent
$OUDN = $OU.distinguishedName
Write-Host "Enter New Username: " -ForegroundColor Green -NoNewline
$NewUser = Read-Host
Write-Host "Enter First Name: " -ForegroundColor Green -NoNewline
$FirstName = Read-Host
Write-Host "Last Name: " -ForegroundColor Green -NoNewline
$LastName = Read-Host
$NewName = "$firstname $lastname"
Write-Host "Domain Name such as `"" -ForegroundColor Green -NoNewline
Write-Host "Datamartinc.net" -ForegroundColor Yellow -NoNewline
Write-Host "`": " -ForegroundColor Green -NoNewline
$Domain = Read-Host
$upn = $NewUser+"@$Domain"
Write-Host "`n---------------------------------------------------------------`n"
Write-Host "`Username: " -ForegroundColor Yellow -NoNewline
Write-Host "$NewUser"
Write-Host "First Name: " -ForegroundColor Yellow -NoNewline
Write-Host "$FirstName"
Write-Host "Last Name: " -ForegroundColor Yellow -NoNewline
Write-Host "$LastName"
Write-Host "UPN: " -ForegroundColor Yellow -NoNewline
Write-Host "$upn"
Write-Host "Copied User: " -ForegroundColor Yellow -NoNewline
Write-Host "$InputUser"
Do {
Write-Host "`nPress " -NoNewline
Write-Host "Y " -ForegroundColor Yellow -NoNewline
Write-Host "to confirm and " -NoNewline
Write-Host "N " -ForegroundColor Yellow -NoNewline
Write-Host "to redo: " -NoNewline
$confirm = Read-Host
} until (($Confirm -eq 'y') -or ($Confirm -eq 'n'))
if($Confirm -eq 'y')
{
New-ADUser -SamAccountName $NewUser -userPrincipalName $upn -Name $NewName -GivenName $firstname -Surname $lastname -Instance $DN -Path "$OUDN" -AccountPassword (Read-Host "New Password: " -AsSecureString) –ChangePasswordAtLogon $false
Get-ADUser -Identity $InputUser -Properties memberof | Select-Object -ExpandProperty memberof | Add-ADGroupMember -Members $NewUser
Set-ADUser -Identity "$NewUser" -CannotChangePassword:$true -PasswordNeverExpires:$True
Enable-ADAccount -Identity $NewUser
$Completed = "y"
; $Confirm ="n"}
else {Clear-Host
}
}
Until ($Completed -eq "y")
Write-Host "AD User Creation Completed Successfully"
Das stimmt. Das ist hauptsächlich ein Experiment für mich. Es hat einige Verwendung, aber es wird mir nicht viel Zeit sparen oder die AD-Benutzerkopierrate um eine ganze Menge verbessern. – firebolt126