Como criar uma senha e um usuário que nunca expiram via net user através do arquivo .bat


23

Estou usando um .bat filepara criar um usuário e uma senha no nível do sistema operacional Windows.

O problema que enfrento é quando passo EXPIRES:NEVERa senha, quando o usuário é criado, ele não tem a "Password never expires"caixa de seleção marcada (o que significa que a senha nunca expira é selecionada para esse usuário criado) e o usuário expira automaticamente após 90 dias.

Net User %1 %2 /COMMENT:"%3" /EXPIRES:NEVER /PASSWORDCHG:NO /ADD

A descrição acima é a principal linha de código, passo o nome de usuário e a senha de um arquivo de texto e executo o arquivo .bat.

Respostas:


34

Adicione esta linha ao arquivo em lotes:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE

NB: Acredito que isso funcionará apenas com contas LOCAIS, não com contas DOMAIN. Mas parece que é o que você precisa ...
Glenn Sullivan

1
A resposta aceita tentará alterar o usuário local e o domínio, se ambos existirem com esse nome de usuário. (Talvez ele não tenha direitos para alterar o usuário do domínio e retorne "Falha genérica" ​​para essa parte, mas pelo menos tentará.) Se você deseja alterar apenas o usuário local, não um usuário de domínio com o mesmo nome, se existir, use o seguinte: WMIC USERACCOUNT WHERE (Nome = '% 1' e Domínio = '% computername%') SET PasswordExpires = FALSE
Ronny D'Hoore


1

O net usercomando pode ser usado em contas locais e de domínio. Use a /domainopção para contas de domínio.

Por exemplo, para ver as informações do usuário do domínio% 1, use

net user %1 /domain

A lista completa de opções de usuários da rede está listada aqui:

http://support.microsoft.com/kb/251394


1

Usuário único do AD

Para usuários do diretório ativo, você pode usar o comando dsmod para alterá-lo para um único usuário:

dsmod user "CN=username,OU={User Org Unit},DC... etc" -pwdneverexpires yes

Vários usuários do AD

Se você desejar definir em massa essa propriedade, poderá fazê-lo para uma OU (unidade organizacional) inteira usando uma das opções acima em combinação com dsquery .

Primeiro, para listar todos os usuários em uma UO (é seguro executar, porque gera apenas uma lista de usuários):

dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}"

Então, supondo que você esteja satisfeito com a saída do comando acima, você pode canalizá-lo para dsmod da seguinte maneira:

dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}" | dsmod user -pwdneverexpires yes

Mais algumas informações, com capturas de tela, aqui: http://www.petenetlive.com/KB/Article/0000532.htm


0
net accounts /MaxPWAge:unlimited

Faz com que a senha nunca expire; mas para todas as contas na máquina - nada mal para uma máquina doméstica ou VM


-1

Como mencionado acima, net usernão parece permitir que o otpion altere a expiração da senha apenas a expiração da conta (até / expira).

Isto é o que eu usei para remover a expiração da senha da minha conta:

wmic UserAccount where Name='username' set PasswordExpires=False

Altere 'nome de usuário' para o nome de usuário da conta que você deseja alterar.


4
Esta já é a resposta aceita de quatro anos atrás.
Sven
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.