Seguinte:
Tive essa dor de cabeça usando o MS-Terminal Server
Tente definir uma pasta individual para cada usuario ou sessão.
Veja se revolve:

[]s,
Mario.

Chame o seguinte código:
{ cria uma pasta para cada usuario remoto }
   PastaImagensRaiz := 'C:\IMAGENS\'; { BARRAS AO FINAL... }
   CriaPastas; { abaixo ... }
...

 FUNCTION PastaImagens: String;
... 
..
  private
  public
    PastaImagensRaiz, pastaUsuario : String;
  end;
...
PROCEDURE TIWServerController.CriaPastas;
VAR
res : LongBool;
pasta, subPasta : String;
begin
  pasta := PastaImagensRaiz;
  res := CreateDirectory(pAnsiChar(pasta), nil);

  Randomize;
  subPasta := IntToStr(Random(300000)); { numero entre 0 e 300.000. 
NOTA: pode alterar para o nome do usuario, ou qualquer outro ID unico }

  pastaUsuario := pasta + subPasta + '\';
  CreateDirectory(pAnsiChar(pastaUsuario), nil);
{$I-}
   ChDir(pastaUsuario);
{$I+}

TRY { Este trecho muda a pasta onde serão gerados os arquivos DELx.MB e 
evita mensagem "Share Violation" ao se
usar CachedUpdates para LongRaw; note que cada usuario tem uma pasta; E 
se a ANTA do usuario
logar em mais de uma sessao no Termianl Server (TS), o Try mascara 
"directory busy" e mostra a mensagem para deslogar...
}
   Session.NetFileDir := pastaUsuario;
   Session.PrivateDir := pastaUsuario;
   Session.SessionName := subPasta;
   Session.Open;
EXCEPT
{   MessageDLG('Verifique se você não está logado em outro computador e 
deslogue do sistema!',mtInformation,[mbOK],0);
Caso controle por NOME de usuario, NAO permite + de 1 sessao com o mesmo 
nome...}
END; {TRY}

end;

FUNCTION TIWServerController.PastaImagens: String;
begin
  PastaImagens := pastaUsuario; { retorna barra invertida ao final; 
cuidado! }
end;


Responder a