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

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.

Teclas de Atalhos TOTVS Developer Studio (Eclipse)

Seguem os atalhos para o TOTVS Developer Studio  (Eclipse)  : CTRL+H Localizar vários locais CTRL+F Localizar / substituir CTRL+K Localizar proximo resultado abaixo CTRL+SHIFT+K Localizar proximo resultado acima F11 Depurar F5 Percorre linha F6 Pula linha CTRL+F8 Trocar perspectiva CTRL+F7 Mudar visualização CTRL+F6 Navegar entre os fontes abertos CTRL+M Maximiza / miniminiza fonte CTRL+N Novo (wizard) CTRL+L Ir para linha CTRL+D Deleta toda linha CTRL+ALT+DOWN Duplica linha para baixo CTRL+ALT+UP Duplica linha para cima CTRL+SHIFT+L Apresenta lista de atalhos ALT+UP Move linha para cima ALT+DOWN Move linha para baixo CTRL+SHIFT+I Indenta o fonte CTRL+F9 Compilar CTRL+ESPAÇO...

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...