Как изменить настройки локального пользователя "пользователь должен сменить пароль при следующем входе в систему" при создании пользователя - PullRequest
0 голосов
/ 10 июля 2020

Я использую Powershell для создания нового локального пользователя, и мне нужно убедиться, что пользователь должен изменить пароль при следующем входе в систему. Я нашел ответ для ADuser, но этот пользователь будет локальным пользователем, а не ADuser.

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

Вы также можете использовать WinNT-провайдер самостоятельно без модуля LocalAccounts для создания локального пользователя следующим образом:

$newUser      = 'Test'
$ComputerName = $env:COMPUTERNAME

# create a new local user using the WinNT provider
$Computer = [ADSI]"WinNT://$ComputerName,Computer"
$User = $Computer.Create("User", $newUser)
$User.SetPassword("abc123")
$User.SetInfo()

$User.FullName = "Test User"
$User.SetInfo()

$User.Description = "User to test WinNT"
$User.SetInfo()

Чтобы установить «Пользователь должен сменить пароль при следующем входе в систему» ​​для локального пользователя

# bind to the local user with the WinNT provider
$localUser    = 'Test'
$ComputerName = $env:COMPUTERNAME

$user = [ADSI]"WinNT://$ComputerName/$localUser,user"
if ($user.UserFlags.Value -band 65536) {        # ADS_UF_DONT_EXPIRE_PASSWD
    Write-Host "The password for user '$localUser' never expires"
}
elseif ($user.UserFlags.Value -band 64) {       # ADS_UF_PASSWD_CANT_CHANGE
    Write-Host "User '$localUser' is not allowed to change password"
}
elseif ($user.UserFlags.Value -band 32) {       # ADS_UF_PASSWD_NOTREQD 
    Write-Host "User '$localUser' does not require a password"
}
else {
    $user.Put("PasswordExpired", 1)
    $user.SetInfo()
}

См. перечисление ADS_USER_FLAG_ENUM

0 голосов
/ 11 июля 2020

Вам нужен только тот модуль, на который указывает @Graham, если вы не используете последнюю версию Windows PowerShell v5x или PowerShell Code v6 и выше, где эти командлеты уже встроены.

MS Документы:

New-LocalUser

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.localaccounts/new-localuser?view=powershell-5.1

New-LocalUser -Name "User02" -Description "Description of this account." -NoPassword
$Password = Read-Host -AsSecureString
 New-LocalUser "User03" -Password $Password -FullName "Third User" -Description "Description of this account."
New-LocalUser -Name "MicrosoftAccount\usr name@Outlook.com" -Description "Description of this account."

и

Set-LocalUser

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.localaccounts/set-localuser?view=powershell-5.1

Set-LocalUser -Name "Admin07" -Description "Description of this account."
$Password = Read-Host -AsSecureString
 $UserAccount = Get-LocalUser -Name "User02"
 $UserAccount | Set-LocalUser -Password $Password

Прочтите справку относительно '[-PasswordNeverExpires]'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...