Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Define variables
- $computers = Get-Content C:\scripts\computers.txt
- $username = "<username>"
- $password = "<password>"
- $fullname = "<full name>"
- $local_security_group = "Administrators"
- $description = "Description"
- $errorLog = "C:\scripts\errorList.txt"
- Foreach ($computer in $computers) {
- $users = $null
- $comp = [ADSI]"WinNT://$computer"
- if (Test-Connection -Quiet $computer -BufferSize 16 -Count 1)
- {
- #Check if username exists
- Try {
- $users = $comp.psbase.children | select -expand name
- if ($users -like $username) {
- Write-Host "$username already exists on $computer"
- } else {
- #Create the account
- $user = $comp.Create("User","$username")
- $user.SetPassword("$password")
- $user.Put("Description","$description")
- $user.Put("Fullname","$fullname")
- $user.SetInfo()
- #Set password to never expire
- #And set user cannot change password
- $ADS_UF_DONT_EXPIRE_PASSWD = 0x10000
- $ADS_UF_PASSWD_CANT_CHANGE = 0x40
- $user.userflags = $ADS_UF_DONT_EXPIRE_PASSWD + $ADS_UF_PASSWD_CANT_CHANGE
- $user.SetInfo()
- #Add the account to the local admins group
- $group = [ADSI]"WinNT://$computer/$local_security_group,group"
- $group.add("WinNT://$computer/$username")
- #Validate whether user account has been created or not
- $users = $comp.psbase.children | select -expand name
- if ($users -like $username) {
- Write-Host "$username has been created on $computer"
- } else {
- Write-Host "$username has not been created on $computer"
- }
- }
- }
- Catch {
- Write-Host "Error creating $username on $($computer): $($Error[0].Exception.Message)"
- $computer | Out-File $errorLog -Append
- }
- }
- else
- {
- Write-Host "$computer is offline."
- $computer | Out-File $errorLog -Append
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement