DEV Community

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

Posted on

1

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

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more