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.

Sharpeye500
fonte

Respostas:

34

Adicione esta linha ao arquivo em lotes:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
Glenn Sullivan
fonte
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
2

A opção / expires é por conta, não por senha, verifique o comando help.

http://support.microsoft.com/kb/251394/en-us

Na documentação: "Faz com que a conta do usuário expire se você especificar a data".

Qkolnek
fonte
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
21416 Scott-Pack Pack
1
A primeira frase é importante. Deve estar em resposta aceita.
AD
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

David Paige
fonte
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

Isak Savo
fonte
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

hB0
fonte
-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.

Richard Smith Jr
fonte
4
Esta já é a resposta aceita de quatro anos atrás.
Sven