Adicione esta linha ao arquivo de lote:
WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
Estou usando o .bat file
para criar um usuário e uma senha no nível do sistema operacional Windows.
O problema que estou enfrentando é quando eu passo EXPIRES:NEVER
para senha, quando o usuário é criado, ele não tem "Password never expires"
caixa de seleção marcada (ou seja, a senha nunca expira é selecionada para aquele usuário criado) e o usuário expira automaticamente após 90 dias.
Net User %1 %2 /COMMENT:"%3" /EXPIRES:NEVER /PASSWORDCHG:NO /ADD
O código acima é a principal linha de código, eu passo o nome de usuário e a senha de um arquivo de texto e executo o arquivo .bat.
A opção / expira é por conta, não por senha, verifique o comando help.
Da documentação: "Faz com que a conta do usuário expire se você especificar a data."
O comando net user
pode ser usado em contas locais e de domínio. Use a opção /domain
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 do usuário da rede está listada aqui:
Único usuário do AD
Para usuários do Active Directory, você pode usar o comando dsmod para alterá-lo por um único usuário:
dsmod user "CN=username,OU={User Org Unit},DC... etc" -pwdneverexpires yes
Vários usuários do AD
Se você quiser definir essa propriedade em massa, poderá fazer isso para uma unidade organizacional inteira (UO) usando as opções acima em combinação com dsquery .
Primeiro, para listar todos os usuários em uma UO (isso é seguro para ser executado, porque só gera uma lista de usuários):
dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}"
Então, supondo que você esteja feliz com a saída do comando acima, você pode canalizá-lo para o dsmod da seguinte forma:
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: link
net accounts /MaxPWAge:unlimited
Faz a senha para nunca expirar; mas para todas as contas na máquina - não é ruim para uma máquina doméstica ou VM
Como afirmado acima, net user
não parece permitir que a otpion mude a expiração da conta apenas pela expiração da senha (através de / expire).
Isso é o que eu usei para remover a expiração da senha da minha conta:
wmic UserAccount where Name='username' set PasswordExpires=False
Altere "username" para o nome de usuário da conta que você deseja alterar.