Pular para o conteúdo principal

Pegando senhas dos usuários do Protheus 8

Para você que é ADMIN e, numa emergência, precise de uma rotina para pegar as senhas dos seus usuários do Protheus 8, segue uma rotina que faz isso e grava tudo num arquivo texto, sem criptografia. A rotina lê o arquivo SIGAPASS.SPF e grava o arquivo DADOSU.TXT na pasta TEMP (que deve ser criada dentro da pasta do Protheus). O arquivo contém o nome reduzido, senha e mais alguns dados. Use com responsabilidade:
 user function PegaSenhas()
    local aPswDet := "",;
    cArquivo, cPswFile := "sigapss.spf", cRBSFConct := cPswId := cPswName := cPswPwd := cPswDet := cUserId := "",;
    lEncrypt := .f.,;
    nArquivo, nPswRec := 0, nRBSFrec := SPF_RecCount(cPswFile, 1)
   psworder(1)
  
   for nId := 1 to nRBSFrec
     cUserId := strzero(nId,6)
     nPswRec := spf_seek(cPswFile,"1U"+cUserId, 1)
     if nPswRec > 0
       spf_getfields(cPswFile, nPswRec, @cPswId, @cPswName, @cPswPwd, @cPswDet)
       aPswDet := str2array(cPswDet, lEncrypt)
       aPswDet[1][3] := PswEncript(aPswDet[1][3],1)
       cRBSFConct += aPswDet[1][2] +""+ aPswDet[1][3] +""+ aPswDet[1][4] +""+ aPswDet[1][13] + chr(13) + chr(10)
     endif
    next

    cArquivo := cFilant + "DADOSU.TXT"
    nArquivo := fcreate("\TEMP\" + cArquivo, 0)
    if ferror() # 0
     msgalert ("ERRO AO CRIAR O ARQUIVO, ERRO: " + str(ferror()))
    else
     fwrite(nArquivo, cRBSFConct)
     if ferror() # 0
       msgalert ("ERRO AO GRAVAR NO ARQUIVO, ERRO: " + str(ferror()))
     endif
    endif
    fclose(nArquivo)
  return nil  

Comentários

  1. Bom dia, estou com problema nesta linha
    spf_getfields(cPswFile, nPswRec, @cPswId, @cPswName, @cPswPwd, @cPswDet)

    ele não reconhece, tem algum include para funcionar??

    obrigado

    João Zabotto
    jzabotto.analista@gmail.com

    ResponderExcluir
  2. Boa tarde.
    ao executar esta função: nPswRec := spf_seek(cPswFile,"1U"+cUserId, 1)
    o retorno é sempre -1.
    Somente com o usuario 000000 (administrador) é que o retorno é igual a 1.

    Tem alguma dica?

    tt.
    alexandre

    ResponderExcluir
  3. Qual a sua versão do Protheus? Adianto que na versão 10 em diante algumas funções destas foram alteradas ou descontinuadas pela TOTVS.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Zeros à esquerda automaticamente

Uma dica simples para que no momento de digitar um código (ex.:000034), você e seus usuários não fiquem contando os zeros à esquerda deste. Configurador Com o pequeno código abaixo (no campo Regra ) num gatilho*, você não terá mais este trabalho. O teste foi feito com o campo RA_REGISTR : Os campos obrigatórios (em azul) devem ser preenchidos. Confirme, saia do Configurador e teste o campo que você configurou o gatilho. Após preencher o campo e clicar TAB (ou ENTER), os zeros à esquerda completam o tamanho do campo : * Se você não sabe onde e como criar gatilhos, acesse o link:   Criando gatilhos no Protheus

Status das tabelas: SPED050 e SPED052

STATUS DA TABELA SPED050: Status NFe (campo STATUS) :  1 = NFe Recebida.  2  =  NFe Assinada.  3  =  NFe com falha no schema XML.  4  =  NFe transmitida.  5  =  NFe com problemas.  6  =  NFe autorizada.  7  =  Cancelamento. Status Cancelamento/inutilização (campo STATUSCANC) :  1  =  NFe Recebida.  2  =  NFe Cancelada.  3  =  NFe com falha de cancelamento/inutilização. Status Mail (campo STATUSMAIL) :  1  =  A transmitir.  2  =  Transmitido.  3  =  Bloqueio de transmissão – cancelamento/inutilização. STATUS DO SPED052:  1  =  Lote transmitido.  2  =  Lote recebido com sucesso.  3  =  Lote com erro.

Protheus integrado ao Active Directory (Single SignOn)

Usando a integração do usuário do Protheus com o Active Directory (AD): 1) O ambiente deve estar atualizado (RPO, Update, LIB e Binário). 2) Entre no Configurador / Usuários / Senhas / Política. 3) Na primeira aba, em Parâmetros, defina no como "Habilitar single sign-on" se a integração será obrigatória ou opcional. 4) No combo "Modalidade de Single Sign-on", defina como "Active Directory". Clique em Confirmar. 5) Agora vá ao cadastro do usuário (Usuário / Senhas / Usuários), clique sobre o usuário e clique em Alterar. Na primeira aba (Usuário), selecione a aba Active Directory. 6) Clique duas vezes sobre o campo abaixo de "Domínio", e preencha o domínio da rede.  Clique duas vezes sobre o campo abaixo de "Usuário", e preencha o nome de usuário da rede que ficará vinculado a este usuário do Protheus. Clique em Confirmar. Ao entrar no Protheus, já irá aparecer por padrão o dom...