Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Вниз

Изменения пароля пользователя Windows   Найти похожие ветки 

 
Darkwin   (2003-03-21 12:36) [0]

Народ, подскажите плз, как можно программно поменять пароль для пользователя домена Win2000, зная его логин и текущий пароль. Программа будет работать на контролере домена (сервисом), и несколько раз в день будет менять пароль для доступа к определенному ресурсу. Или ткните меня куда-нибудь где это описано.
Заранее благодарен.


 
Clickmaker   (2003-03-21 13:31) [1]

NetUserChangePassword


 
Darkwin   (2003-03-21 13:58) [2]

Точно и сам только что нашел. Но все равно спасибо. А в каком модуле она содержится? В хелпе, в quikinfo ссылка на файлы netapi32.lib и Imaccess.h...


 
Darkwin   (2003-03-21 14:12) [3]

вопрос снят: тупанул, естественно netapi32.dll


 
Darkwin   (2003-03-21 16:03) [4]

блин, опять открыт :((
что это за тип такой (сишный) NET_API_STATUS, и что вместо него использовать в дельфи? или я может не так функцию импортирую?

function NetUserChangePassword(NomainName,UserName,OldPassword,NewPassword:LPWSTR):integer; external "netapi32.dll" name "NetUserChangePassword";

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
NetUserChangePassword("WaPBBS","GA","1","2");
end;

после выполнения этой функции выскакивает ошибка и окно отладки кода...


 
Darkwin   (2003-03-21 16:05) [5]

да еще: в MSDN я описания NET_API_STATUS не нашел, хотя примеров кода с использованием этого типа полно, естественно на си


 
Clickmaker   (2003-03-21 16:12) [6]

NET_API_STATUS это банальный DWORD или cardinal


 
Darkwin   (2003-03-21 17:01) [7]

ладно, сделал вот так:

{$EXTERNALSYM NET_API_STATUS}
NET_API_STATUS = LongWord;

{$EXTERNALSYM NetUserChangePassword}
function NetUserChangePassword(NomainName,UserName,OldPasword,NewPassword:LPWSTR):NET_API_STATUS; external "netapi32.dll" name "NetUserChangePassword";

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
domen,name,oldpass,newpass:LPWSTR;
begin
rez:=0;
domen:="\\WaPBBS.landos.ru";
name:="GA";
OldPass:="1";
NewPass:="2";
try
NetUserChangePassword(domen,Name,OldPass,NewPass);
except
ShowMessage("Error");
end;
end;

вроде бы все типы соблюдены.
Самое интересное, что NetUserChangePassword выполняется, управление в блок except не передается, а при выходе из процедуры вылетает ошибка(если запускаю проект из дельфей), а если запускаю экзешник то прога вылетает (в ускоренном порядке закрывается :))))
че за фигня такая? винда отсервиспатчена 3 сервиспаком. тут кода то - кот наплакал, где ошибка может быть не знаю, может эта функция вообще не работает?


 
Clickmaker   (2003-03-21 17:07) [8]

Соглашение о вызовах виндозное не учел
function NetUserChangePassword(NomainName,UserName,OldPasword,NewPassword:LPWSTR):NET_API_STATUS; stdcall; external "netapi32.dll" name "NetUserChangePassword";
Да и параметры то она требует уникодные, без StringToWideChar не обойтись, пожалуй.
И в блок except она и не вылетит никогда, надо результат проверять, NET_API_STATUS


 
Romkin   (2003-03-21 17:08) [9]

stdcall забыл :-))


 
Darkwin   (2003-03-21 17:13) [10]

ураааа, огромное спасибо, блин я бы еще часа три на прогу пялился пока не заметил бы этот stdcall



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
3-59548
Vick
2003-04-25 17:24
2003.05.19
Уникальное значение поля для таблицы detail


7-59959
NKiril
2003-03-18 01:18
2003.05.19
Защита от копирования...


3-59617
dtm
2003-04-28 19:11
2003.05.19
Суммирование количества записей в QReport


3-59569
Centr
2003-04-27 06:12
2003.05.19
Как добавить поле, не потеряв данные в БД


14-59889
badaxe2
2003-04-29 13:47
2003.05.19
Кто-нибудь ставил RX Library 2.75 conversion to Delphi 7?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский