Código Delphi
[-]uses ComObj, ActiveX;
function GetRemoteUserName(strServer, strUser, strPassword: string): string;
var
wmi, res: OleVariant;
foreach: IInterface;
begin
wmi := CreateOleObject('wbemscripting.swbemlocator');
foreach := wmi.connectserver(strServer, 'root\cimv2', strUser, strPassword).instancesof('win32_computersystem')._NewEnum;
(foreach as IEnumVariant).Next(1, res, PDWORD(0)^);
Result := res.UserName;
Delete(Result, 1, Pos('\', Result));
end;
Modo de uso;
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := GetRemoteUserName('RemoteComputerName', 'Administrador', 'HAclave');
end;
Requiere: RPC, WMI y modo de autenticación clásica en equipo remoto.