DEV Community

Cover image for Criando usuários via CLI Windows
Ivo Dias for M3Corp

Posted on

Criando usuários via CLI Windows

Antes de começarmos, precisamos ter nossas credenciais da Veracode, e nesse caso, precisamos que seja de um usuário com as roles para criar usuários.

A ideia do script e pegar uma lista de usuários, que vão estar organizados em um arquivo CSV formatado por linhas e com as colunas:

  • Nome
  • Sobrenome
  • Email

Nosso script vai receber o caminho desse CSV e utilizar o Wrapper para fazer a criação deles, pegando cada uma das linhas com valores.
Além das ferramentas da Veracode, vamos utilizar em especial o comando Foreach do Powershell, junto a função Import-Csv para tratar os valores.
Colocando isso em código, teremos:

# Recebe o caminho do CSV, que precisa estar no formado:
# Nome, Sobrenome, Email
param (
        [parameter(position=0,Mandatory=$True)]
        $caminhoListaUsuarios
    )

# Configura a ferramenta para uso
$pastaVeracode = "D:\Veracode" # O caminho da pasta onde tem as ferramentas da Veracode
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$pastaVeracode")

# Configurações
$roles = "Greenlight IDE User,Security Insights,Reviewer,Submitter"

# Faz a configuração do Header
$Header = 'Nome', 'Sobrenome', 'Email'

# Faz a criação dos usuários conforme lista
$listaUsuarios = Import-Csv -Path $caminhoListaUsuarios -Header $Header -Delimiter ","
foreach ($usuario in $listaUsuarios) {
    try {
        # Faz o tratamento das informações
        $nome = $usuario.Nome
        $sobrenome = $usuario.Sobrenome
        $email = $usuario.Email

        # Cria um novo usuário
        VeracodeAPI.exe -action createuser -firstname "$nome" -lastname "$sobrenome" -emailaddress "$email" -roles $roles
        # Log de retorno e criação dos usuários
        Write-Host "Usuário: $nome $sobrenome"
        Write-Host "Email: $email"
    }
    catch {
         # Recebendo o erro e exibindo ele, parando a execução
         $ErrorMessage = $_.Exception.Message # Recebe o erro
         # Mostra uma mensagem personalizada
         Write-Host "Erro ao criar o usuário: $nome $sobrenome"
         Write-Host "$ErrorMessage"
    }

}
Enter fullscreen mode Exit fullscreen mode

Como todos os usuários precisam ter roles, a ideia foi deixar predefinidas algumas que normalmente são utilizadas, nesse caso por usuários com um perfil de acessar a plataforma para fazer análises e pegar resultados, e também que utilize as ferramentas de análise na IDE.
Caso tenha necessidades diferentes, pode alterar essa lista.

E para o caso de times?
Caso a ideia já seja criar esses usuários em um time, nosso script só precisa de duas alterações:

  • Adicionar o nome do time como parâmetro
  • Passar ele para o Wrapper

Com essas modificações, nosso script vai ficar:

# Recebe o caminho do CSV, que precisa estar no formado:
# Nome, Sobrenome, Email
param (
        [parameter(position=0,Mandatory=$True)]
        $nomeTime,
        [parameter(position=1,Mandatory=$True)]
        $caminhoListaUsuarios
    )

# Configura a ferramenta para uso
$pastaVeracode = "D:\Veracode" # O caminho da pasta onde tem as ferramentas da Veracode
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$pastaVeracode")

# Configurações
$roles = "Greenlight IDE User,Security Insights,Reviewer,Submitter"

# Faz a configuração do Header
$Header = 'Nome', 'Sobrenome', 'Email'

# Faz a criação dos usuários conforme lista
$listaUsuarios = Import-Csv -Path $caminhoListaUsuarios -Header $Header -Delimiter ","
foreach ($usuario in $listaUsuarios) {
    try {
        # Faz o tratamento das informações
        $nome = $usuario.Nome
        $sobrenome = $usuario.Sobrenome
        $email = $usuario.Email

        # Cria um novo usuario
        VeracodeAPI.exe -action createuser -firstname "$nome" -lastname "$sobrenome" -emailaddress "$email" -roles $roles -teams $nomeTime
        # Log de retorno e criação dos usuários
        Write-Host "Usuário: $nome $sobrenome"
        Write-Host "Email: $email - Time: $nomeTime"
    }
    catch {
         # Recebendo o erro e exibindo ele, parando a execução
         $ErrorMessage = $_.Exception.Message # Recebe o erro
         # Mostra uma mensagem personalizada
         Write-Host "Erro ao criar o usuário: $nome $sobrenome"
         Write-Host "$ErrorMessage"
    }

}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)