 
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  
 
Bom dia, estou com problema nesta linha
ResponderExcluirspf_getfields(cPswFile, nPswRec, @cPswId, @cPswName, @cPswPwd, @cPswDet)
ele não reconhece, tem algum include para funcionar??
obrigado
João Zabotto
jzabotto.analista@gmail.com
Boa tarde.
ResponderExcluirao 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
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