webForumDet fria alternativet

ADSI hjälp (ASP->PHP)

4 svar · 370 visningar · startad av raki

rakiMedlem sedan jan. 2003137 inlägg
#1

Tjena!

Håller på att försöka lägga till användare i NT med PHP.
Jag hittade ett en jätte bra funktion som aleborg har skrivit fast jag kan inte ASP något och vill ha det översatt till PHP.
Denna:
http://www.webforum.nu/showthread.php?forumid=89&threadid=49948&highlight=Terminal+Services

Försökte mig på en översättning och det borde då bli något sånt här, fast fungerar gör det ju inte.

function AddUserAccount($ServerName, $UserName, $Password, $SelGroup) {
	$UF_SCRIPT = '&H1';
	$UF_ACCOUNTDISABLE = '&H2';
	$UF_HOMEDIR_REQUIRED = '&H8';
	$UF_LOCKOUT = '&H10';
	$UF_PASSWD_NOTREQD = '&H20';
	$UF_PASSWD_CANT_CHANGE = '&H40';
	$UF_TEMP_DUPLICATE_ACCOUNT = '&H100';
	$UF_NORMAL_ACCOUNT = '&H200';
	$UF_INTERDOMAIN_TRUST_ACCOUNT = '&H800';
	$UF_WORKSTATION_TRUST_ACCOUNT = '&H1000';
	$UF_SERVER_TRUST_ACCOUNT = '&H2000';
	$UF_DONT_EXPIRE_PASSWD = '&H10000';
	$UF_MNS_LOGON_ACCOUNT = '&H20000';

	$ComputerObj = new COM("WinNT://" . $ServerName);
	
	$NewUser = $ComputerObj->Create("User", $UserName);
	$NewUser->SetInfo;
	
	$NewUser->SetPassword($Password);
	$NewUser->FullName = $UserName;
	$NewUser->Description = $UserName;
	$NewUser->SetInfo;
	
	// Problem börjar
	$flags = com_get($NewUser, "UserFlags");
	$NewUser->UserFlags = $flags | $UF_PASSWD_CANT_CHANGE | $UF_DONT_EXPIRE_PASSWD;
	$NewUser->SetInfo;
	
	$GroupObj = new COM("WinNT://" . $ServerName . "/" . $SelGroup);
	$GroupObj->Add("WinNT://" . $ServerName . "/" . $UserName);
}

AddUserAccount("AMD1700", "olle", "losenord", "Users");

Nån som kan hjälpa mig?
Detta kanske inte ens går att göra med PHP ?

rakiMedlem sedan jan. 2003137 inlägg
#2

Har löst det så långt att den sparar användaren och lägger den i rätt grupp men jag har problem med att ändra UserFlags för användaren. (förstår inte asp-koden)

Ni som kan asp kan väl förklara för mig som inte kan asp (kodar php) vad denna koden nedan betyder eller om ni kan översätta den till php.
(Hämta userflags tror jag att jag vet hur jag gör, problemet är att få in dem på rätt sätt)

Const UF_SCRIPT = &H1
Const UF_ACCOUNTDISABLE = &H2
Const UF_HOMEDIR_REQUIRED = &H8
Const UF_LOCKOUT = &H10
Const UF_PASSWD_NOTREQD = &H20
Const UF_PASSWD_CANT_CHANGE = &H40
Const UF_TEMP_DUPLICATE_ACCOUNT = &H100
Const UF_NORMAL_ACCOUNT = &H200
Const UF_INTERDOMAIN_TRUST_ACCOUNT = &H800
Const UF_WORKSTATION_TRUST_ACCOUNT = &H1000
Const UF_SERVER_TRUST_ACCOUNT = &H2000
Const UF_DONT_EXPIRE_PASSWD = &H10000
Const UF_MNS_LOGON_ACCOUNT = &H20000

flags = NewUser.Get("UserFlags")
NewUser.Put "UserFlags", flags Or UF_PASSWD_CANT_CHANGE Or UF_DONT_EXPIRE_PASSWD
NewUser.SetInfo
OveRRidEMedlem sedan feb. 200112 078 inlägg
#3

Tråden flyttas från ASP, VBScript.

mifyMedlem sedan feb. 200344 inlägg
#4

vet inte om detta kan vara till nån hjälp kanske

http://www.developer.com/lang/php/article.php/10941_3100951_2

Lycka till
// Micke

rakiMedlem sedan jan. 2003137 inlägg
#5

har löst det
tack ändå! :)

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)