![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
определить из сервиса, залогинен ли юзер и не админ ли он часом [D7, Win2k, WinXP]
Ketmar © (2006-11-12 02:32:00)господа, ткните носом в район MSDN, который читать. а то я что-то от недосыпу нифига сообразить не могу.
tnx.
зыж и ещё: я так помню, что сервис, который interactive, может создавать окошки после логина? и юзер их должен, вроде, увидеть...
Ketmar (2006-11-12 23:33:00) [1]>[48] Anatoly Podgoretsky(c) 12-Nov-2006, 23:13
>В MSDN не всегда достоверная информация, точнее часто
>устаревшая.
фигасе "устаревшая"! это про Vista-то? %-)
Anatoly Podgoretsky (2006-11-12 23:13:00) [2]> Ketmar (12.11.2006 22:31:42) [42]
В MSDN не всегда достоверная информация, точнее часто устаревшая.
Ketmar (2006-11-12 22:50:00) [3]зыж tnx.
Ketmar (2006-11-12 22:50:00) [4]работает. обидно...
%-)
Ketmar (2006-11-12 22:43:00) [5]>[44] BiN(c) 12-Nov-2006, 22:32
>Сам что ли не догадываешься?
да уже понял. сразу не заметил. %-)
BiN (2006-11-12 22:32:00) [6]
> Ketmar © (12.11.06 22:32) [43]
>
> зыж а чем WriteLn не устроил? %-)
Сам что ли не догадываешься?
Ketmar (2006-11-12 22:32:00) [7]зыж а чем WriteLn не устроил? %-)
Ketmar (2006-11-12 22:31:00) [8]>[41] BiN(c) 12-Nov-2006, 22:27
* с надрывом *
ну вот. если нельзя верить MSDN, то кому тогда верить?!!
BiN (2006-11-12 22:27:00) [9]
> Ketmar © (12.11.06 22:24) [40]
>
>
> хнык...
Только что под 2000 сваял, честное слово!!! 8\
и даже работает.
Ketmar (2006-11-12 22:24:00) [10]эх. красиво. но MSDN говорит, что
Client Requires Windows Vista or Windows XP.
Server Requires Windows Server "Longhorn" or Windows Server 2003.
хнык...
BiN (2006-11-12 22:17:00) [11]Предупреждая грязные инсинуации (=)), говорю: Да, функционал тот-же, что и у одноименной утилиты от сисинтерналз.
BiN (2006-11-12 22:06:00) [12]Подарок по теме:
{$WARN SYMBOL_PLATFORM OFF}
{$R-}
program LogonSessions;
{$APPTYPE CONSOLE}
uses
SysUtils, JwaWinType, JwaNtSecApi, JwaWinBase, JwaWinNT, JwaSddl, JwaWinCon, NtUtils;
const
SESS_TYPE_NAMES: array [seltFiller0..CachedRemoteInteractive] of String =(
'(none)', '(none)', 'Interactive', 'Network',
'Batch', 'Service', 'Proxy', 'Unlock', 'NetworkCleartext',
'NewCredentials', 'RemoteInteractive', 'CachedInteractive',
'CachedRemoteInteractive');
procedure WriteConsoleLn(const S: String);
var
lpCharsWritten: DWORD;
begin
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), Pwidechar(WideString(S+#13#10)), Length(S)+2, lpCharsWritten, nil);
end;
function SidToStr(Sid:PSID):String;
var
StringSid: LPTSTR;
begin
if Sid=nil then
Result:=''
else
begin
Win32Check(ConvertSidToStringSid(Sid, StringSid));
try
SetString(Result, StringSid, StrLen(StringSid));
finally
LocalFree(HLOCAL(StringSid));
end;
end;
end;
type
LUID_TABLE = array[0..0] of LUID;
PLUID_TABLE = ^LUID_TABLE;
var
dwCount: DWORD;
SessionList: PLUID_TABLE;
SessionData: PSECURITY_LOGON_SESSION_DATA;
stTemp: SYSTEMTIME;
i: Integer;
begin
WriteConsoleLn(#13#10'Logonsesions v1.1'#13#10+
'Copyright (C) 2006 Dmitry Lysenko'#13#10);
NtCheckStatus(LsaEnumerateLogonSessions(@dwCount, PLUID(SessionList)));
try
for i:=0 to dwCount-1 do
begin
try
WriteConsoleLn(Format('[%d] Logon session %s:%s:',
[i, IntToHex(SessionList^[i].HighPart, 8),
IntToHex(SessionList^[i].LowPart, 8)]));
NtCheckStatus(LsaGetLogonSessionData(@SessionList[i], SessionData));
try
WriteConsoleLn(' User name: '+UnicodeStrToWideStr(SessionData^.UserName));
WriteConsoleLn(' Domain: '+UnicodeStrToWideStr(SessionData^.LogonDomain));
WriteConsoleLn(' Auth package: '+UnicodeStrToWideStr(SessionData^.AuthenticationPackage));
WriteConsoleLn(' Logon type: '+SESS_TYPE_NAMES[SessionData^.LogonType]);
WriteConsoleLn(' Session: '+IntToStr(SessionData^.Session));
WriteConsoleLn(' Sid: '+SidToStr(SessionData^.Sid));
FileTimeToLocalFileTime(FILETIME(SessionData^.LogonTime), FILETIME(SessionData^.LogonTime));
Win32Check(FileTimeToSystemTime(FILETIME(SessionData^.LogonTime), stTemp));
WriteConsoleLn( Format(' Logon time: %d.%d.%d %d:%d:%d',
[stTemp.wDay, stTemp.wMonth, stTemp.wYear, stTemp.wHour, stTemp.wMinute, stTemp.wSecond]));
finally
LsaFreeReturnBuffer(SessionData);
end;
WriteConsoleLn('');
except
on E: Exception do
WriteConsoleLn('<'+E.Message+'>');
end;
end;
finally
LsaFreeReturnBuffer(SessionList);
end;
end.
Anatoly Podgoretsky (2006-11-12 20:10:00) [13]> Eraser (12.11.2006 19:25:34) [34]
Вот спустя два года этот пик и наблюдается, первое время происходит постепенный переход, ни бизнес, ни техника, ни продажи к этому не готовы, продаются лицензии на старые системы.
Во время выхода XP Микрософт искуственно прекратил продажу лицензий на 98, потом снова открыл.
Anatoly Podgoretsky (2006-11-12 20:08:00) [14]> Eraser (12.11.2006 19:24:33) [33]
Важнее корпоративный бизнес, с их планированием бюджетов. Правильно выпускать продукт в апреле-июле, в январе уже немного поздно.
Ketmar (2006-11-12 19:33:00) [15]>[33] Eraser(c) 12-Nov-2006, 19:24
>Но все равно на месте покупателя, перед тем как покупать
>продукт, я бы уточнил, будет ли он совместим с самой
>современной ОС.
а я бы уточнял совместимость с той, что использую...
Eraser (2006-11-12 19:25:00) [16]> в пике числа юзеров
точнее в пике активности перехода юзеров на новую ОС ))
Eraser (2006-11-12 19:24:00) [17]> [32] Anatoly Podgoretsky © (12.11.06 19:15)
так дело не в гибели старой системы, а в пике числа юзеров, насчет сервис паков - это точно, многие их ждут, а уже потом переходят.
Но все равно на месте покупателя, перед тем как покупать продукт, я бы уточнил, будет ли он совместим с самой современной ОС.
Anatoly Podgoretsky (2006-11-12 19:15:00) [18]> Eraser (12.11.2006 19:11:31) [31]
Вообще то срок два года, после которого предыдущую версию можно считать погибшей, дальше идет постоянно снижение количества пользователей, к этом времени уже выпускается первый или второй сервис пак.
Так было с остальными, особенно учитывая прекращения поддержки и продажи лицензий. А без лицензий кудв деться бедному крестьянину.
Eraser (2006-11-12 19:11:00) [19]> [30] Ketmar © (12.11.06 19:06)
:-))
эх.. если б оно так и было! )
----
думаю примерно в конце лета 2007, мож чуть позже будет самый "бум" перехода.
Ketmar (2006-11-12 19:06:00) [20]"обычный юзер" это поставить не сможет. а "необычный" не станет. %-)