none
Como tratar comprimento de senha? Como tratar uma data que não existe? RRS feed

  • Pergunta

  • Prezados,

    criei um script Powershell para criar um usuário no domínio.

    Ele funciona bem, mas se digitar a senha com poucos caracteres, sem complexidade ou repetida dá erro.

    Parte do código da senha, onde confirma a senha e faço a comparação:

    do {
    Write-Host "Digite a senha com atenção, pois se errar terá que digitá-la novamente."
    $secpass = Read-Host "Digite a senha" -AsSecureString
    $secpass2 = Read-Host "Confirme a senha" -AsSecureString
    $secpass_text = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($secpass))
    $secpass2_text = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($secpass2))
    }
    while ($secpass_text -cne $secpass2_text)
    Write-Host "Senhas coincidem." -F green

    O erro do comprimento da senha:

    New-ADUser : The password does not meet the length, complexity, or history requirement of the domain.
    At C:\Users\Administrator\Documents\testes\Versoes\Criar_conta_usuario.ps1:57 char:1
    + New-ADUser -SamAccountName $SamAccountName -Name $DisplayName -Displa ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidData: (CN=abc cde,OU=U...eg,dc=art,dc=br:String) [New-ADUser], ADPasswordComplexityException
        + FullyQualifiedErrorId : ActiveDirectoryServer:1325,Microsoft.ActiveDirectory.Management.Commands.NewADUser

    Parte do código onde trato a data:

    $Date = Read-Host -Prompt 'Entre com a data fim de contrato - dd/mm/aaaa'
    Set-ADAccountExpiration -Identity $SamAccountName -DateTime $Date -Server (Get-ADDomain).PDCEmulator

    Se eu digito 31/02/2020, dá erro.

    Set-ADAccountExpiration : Cannot bind parameter 'DateTime'. Cannot convert value "31/02/2020 23:59" to type "System.DateTime". Error: "String was not recognized as a 
    valid DateTime."
    At C:\Users\Administrator\Documents\testes\Versoes\Criar_conta_usuario.ps1:58 char:61
    + ... ccountExpiration -Identity $SamAccountName -DateTime $Date -Server ...
    +                                                          ~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Set-ADAccountExpiration], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.SetADAccountExpiration

    Como tratar esses erros? Não tenho ideia.

    quinta-feira, 19 de novembro de 2020 23:29