Page 1 of 2 12>
Topic Options
#165845 - 2006-08-11 10:49 PM OT: - Allow normal users to update their own AD info
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
This may be of interest to some of you guys out there.

The Challenge: Updating Active Directory User Information




The cost is US$250.00 per Active Directory domain



Edited by NTDOC (2006-08-11 10:50 PM)

Top
#165846 - 2006-08-11 11:17 PM Re: OT: - Allow normal users to update their own AD info
Gargoyle Offline
MM club member
*****

Registered: 2004-03-09
Posts: 1597
Loc: Valley of the Sun (Arizona, US...
That is a nice find there doc.
Top
#165847 - 2006-08-11 11:22 PM Re: OT: - Allow normal users to update their own AD info
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
At 250.00, it might just be simplere to build a KF app that updates an ini file, that an admin could import...
Top
#165848 - 2006-08-12 02:31 AM Re: OT: - Allow normal users to update their own AD info
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Well you do work cheap then Rad

I agree that one could probably script something to do it, but then you'd also need to deploy KF to all desktops as well which is not a bad thing, but is time consuming.

I work at a rather cheap place and they can afford $250 -
Any solution I hand crafted would ultimately cost more than $250 in labor. Though some figure they pay you anyways, but actually quite busy lately to take on much custom work beyond my normal day to day work.

Top
#165849 - 2006-08-12 04:18 AM Re: OT: - Allow normal users to update their own AD info
Gargoyle Offline
MM club member
*****

Registered: 2004-03-09
Posts: 1597
Loc: Valley of the Sun (Arizona, US...
Although if we were to make a group project out of it... Assign different functions to different users... We might be onto something.. The Korg consortium of scripters.
Top
#165850 - 2006-08-12 08:36 PM Re: OT: - Allow normal users to update their own AD info
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22346
Loc: OK
hmm... kf might not be the right way to go.
this stuff could easily be done via a html page that feeds to kix-asp script...

Top
#165851 - 2006-08-13 08:00 AM Re: OT: - Allow normal users to update their own AD info
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Yes it could and in fact we did do it with a Web page at the Mouse.
However - WAAAAAY much more cost to setup/run/maintain/backup than $250

I think we all realize there are plenty of methods to do this task and each company requirements or desires will be a little different.
I only posted as I thought for the cost involved it is pretty easy to use for many. I didn't post it as it being the only solution.

Top
#165852 - 2006-08-13 08:17 AM Re: OT: - Allow normal users to update their own AD info
Allen Administrator Offline
KiX Supporter
*****

Registered: 2003-04-19
Posts: 4567
Loc: USA
I knew I had seen something like this that was free... just took me a while to find it again...

rDirectory Community Edition

If anyone tries it, I'd be interested in your results.

Top
#165853 - 2006-08-14 11:20 AM Re: OT: - Allow normal users to update their own AD info
Elizabeth_UK Offline
Lurker

Registered: 2006-08-14
Posts: 1
Loc: U.K.
I hope it is okay for a newbie to jump in here. I downloaded the Directory Update application and took a peek. Thanks NTDOC for pointing it out. It is quite simple and to the point. Directory Update more closely matches what we need our users to do, it is customizable, and it is very easy to use. And $250 USD is a bargain at the current exchange rate. :-)

I looked previously at the Community Edition of rDirectory. rDirectory is a powerful application, but it is a bit much for an end-user since it requires them to first search the directory for their account, select it, and specify Edit. I could live with that, but the fields such as City, Office, and State are not validated via drop-down list, it does not contain the Department attribute, you cannot hide any of the attributes on the form, and the attribute labels are fixed (you can't customize or localize them.)


By the way, thank you to all the regulars here that make these forums so helpful!

Top
#165854 - 2006-08-14 12:39 PM Re: OT: - Allow normal users to update their own AD info
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
So with all that being said...

Lets make our own out of KF.

It should simply be in 2 apps, Client and Admin.
Client selects and updates data into a central INI
Admin reads ini, probably displays in a list/gridview, and then populates AD

Client Comboboxes are read from 'local' ini.
Default values are read from AD and/or 'regional' ini.


local ini = all possibilities of acceptable data, ie values for all offices and location for any user in domain

regional ini = default data for a given location. Meant to be customized for a given office. will probably have to pass location as variable into app at runtime.

Top
#165855 - 2006-08-14 02:07 PM Re: OT: - Allow normal users to update their own AD info
masken Offline
MM club member
*****

Registered: 2000-11-27
Posts: 1222
Loc: Gothenburg, Sweden
why not a KF app which handles AD-login directly instead, so the users can change certain details?
Top
#165856 - 2006-08-14 02:59 PM Re: OT: - Allow normal users to update their own AD info
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
I suppose that really depends on if the user has the perms to do so.
Top
#165857 - 2006-08-14 04:43 PM Re: OT: - Allow normal users to update their own AD info
masken Offline
MM club member
*****

Registered: 2000-11-27
Posts: 1222
Loc: Gothenburg, Sweden
yeah... but it could be the same app, with a button that changes to "Export" instead of "Update" if the app notices that there isn't enough perms?

...and perhaps a special admin-tab that's only visible if you've got the perms?


Edited by masken (2006-08-14 04:44 PM)

Top
#165858 - 2006-08-15 12:42 PM Re: OT: - Allow normal users to update their own AD info
MightyR1 Offline
MM club member
*****

Registered: 1999-09-09
Posts: 1264
Loc: The Netherlands
See M$ KB: How to use the GAL Modify tool

Works super too.

Quote:

INTRODUCTION
------------
You can use the GAL Modify tool to modify personal information that is displayed in the global address list. The GAL Modify tool is located in the Tools\Client\Galmod32 folder on the Exchange 2000 Resource Kit CD-ROM or in the Exchange\operating system\platform\Client\GalMod folder on the Microsoft Back Office Resource Kit, Second Edition CD-ROM.

MORE INFORMATION
----------------
To let users update attributes on their own accounts against the server that is running Microsoft Exchange 5.5 Server (and up...), follow these steps.



Top
#165859 - 2006-08-15 01:40 PM Re: OT: - Allow normal users to update their own AD info
Arend_ Moderator Offline
MM club member
*****

Registered: 2005-01-17
Posts: 1896
Loc: Hilversum, The Netherlands
Seeying as this is Off Topic anyway, I've written a similar tool in KixForms and rewrote it in VB. I think it's really bad asking money for an app that anyone with scripting and ADSI knowledge can write themselves. This kinda software is just asking to be cracked/hacked.
Top
#165860 - 2006-08-15 03:15 PM Re: OT: - Allow normal users to update their own AD info
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
read only code...

(looks like plagarism to me...)

Code:



Break On
$System = CreateObject("Kixtart.System")

;KD START

;************* Form **************
$Form = $System.Form()
$Form.BackColor = 212,208,200
$Form.Height = 571
$Form.Left = 22
$Form.Text = "User Account Information Update"
$Form.Top = 22
$Form.Width = 640
;**************************************

;************* AcctGroupBox **************
$AcctGroupBox = $Form.Controls.GroupBox("User Account", 15, 15, 600, 110)
$AcctGroupBox.BackColor = 212,208,200
;**************************************

;************* Label1 **************
$Label1 = $AcctGroupBox.Controls.Label("First:", 25, 17, 70, 17)
$Label1.BackColor = 212,208,200
$Label1.FontBold = "True"
;**************************************

;************* Label2 **************
$Label2 = $AcctGroupBox.Controls.Label("Initial:", 25, 47, 70, 17)
$Label2.BackColor = 212,208,200
$Label2.FontBold = "True"
;**************************************

;************* Label3 **************
$Label3 = $AcctGroupBox.Controls.Label("Last:", 25, 77, 70, 17)
$Label3.BackColor = 212,208,200
$Label3.FontBold = "True"
;**************************************

;************* TextBox1 **************
$TextBox1 = $AcctGroupBox.Controls.TextBox("TextBox1", 100, 18, 170, 13)
$TextBox1.BackColor = 212,208,200
$TextBox1.BorderStyle = 0
$TextBox1.ReadOnly = "True"
$TextBox1.TabStop = "False"
;**************************************

;************* TextBox2 **************
$TextBox2 = $AcctGroupBox.Controls.TextBox("TextBox2", 100, 48, 170, 13)
$TextBox2.BackColor = 212,208,200
$TextBox2.BorderStyle = 0
$TextBox2.ReadOnly = "True"
$TextBox2.TabStop = "False"
;**************************************

;************* TextBox3 **************
$TextBox3 = $AcctGroupBox.Controls.TextBox("TextBox3", 100, 78, 170, 13)
$TextBox3.BackColor = 212,208,200
$TextBox3.BorderStyle = 0
$TextBox3.ReadOnly = "True"
$TextBox3.TabStop = "False"
;**************************************

;************* Label4 **************
$Label4 = $AcctGroupBox.Controls.Label("User Name:", 325, 17, 70, 17)
$Label4.BackColor = 212,208,200
$Label4.FontBold = "True"
;**************************************

;************* Label5 **************
$Label5 = $AcctGroupBox.Controls.Label("Display:", 325, 47, 70, 17)
$Label5.BackColor = 212,208,200
$Label5.FontBold = "True"
;**************************************

;************* Label6 **************
$Label6 = $AcctGroupBox.Controls.Label("Email Addr:", 325, 77, 70, 17)
$Label6.BackColor = 212,208,200
$Label6.FontBold = "True"
;**************************************

;************* TextBox4 **************
$TextBox4 = $AcctGroupBox.Controls.TextBox("TextBox4", 400, 18, 170, 13)
$TextBox4.BackColor = 212,208,200
$TextBox4.BorderStyle = 0
$TextBox4.ReadOnly = "True"
$TextBox4.TabStop = "False"
;**************************************

;************* TextBox5 **************
$TextBox5 = $AcctGroupBox.Controls.TextBox("TextBox5", 400, 48, 170, 13)
$TextBox5.BackColor = 212,208,200
$TextBox5.BorderStyle = 0
$TextBox5.ReadOnly = "True"
$TextBox5.TabStop = "False"
;**************************************

;************* TextBox6 **************
$TextBox6 = $AcctGroupBox.Controls.TextBox("TextBox6", 400, 78, 170, 13)
$TextBox6.BackColor = 212,208,200
$TextBox6.BorderStyle = 0
$TextBox6.ReadOnly = "True"
$TextBox6.TabStop = "False"
;**************************************

;************* DeptGroupBox **************
$DeptGroupBox = $Form.Controls.GroupBox("Department Details", 15, 135, 600, 110)
$DeptGroupBox.BackColor = 212,208,200
;**************************************

;************* DeptLabel1 **************
$DeptLabel1 = $DeptGroupBox.Controls.Label("Title:", 25, 17, 70, 17)
$DeptLabel1.BackColor = 212,208,200
$DeptLabel1.FontBold = "True"
;**************************************

;************* DeptLabel2 **************
$DeptLabel2 = $DeptGroupBox.Controls.Label("Company:", 25, 47, 70, 17)
$DeptLabel2.BackColor = 212,208,200
$DeptLabel2.FontBold = "True"
;**************************************

;************* DeptLabel3 **************
$DeptLabel3 = $DeptGroupBox.Controls.Label("Office", 25, 77, 70, 17)
$DeptLabel3.BackColor = 212,208,200
$DeptLabel3.FontBold = "True"
;**************************************

;************* DeptTextBox1 **************
$DeptTextBox1 = $DeptGroupBox.Controls.TextBox("", 100, 15, 170, 20)
;**************************************

;************* DeptTextBox2 **************
$DeptTextBox2 = $DeptGroupBox.Controls.TextBox("", 100, 45, 170, 20)
;**************************************

;************* DeptTextBox3 **************
$DeptTextBox3 = $DeptGroupBox.Controls.TextBox("", 100, 75, 170, 20)
;**************************************

;************* DeptLabel4 **************
$DeptLabel4 = $DeptGroupBox.Controls.Label("Department:", 325, 17, 70, 17)
$DeptLabel4.BackColor = 212,208,200
$DeptLabel4.FontBold = "True"
;**************************************

;************* DeptLabel5 **************
$DeptLabel5 = $DeptGroupBox.Controls.Label("Supervisor:", 325, 47, 70, 17)
$DeptLabel5.BackColor = 212,208,200
$DeptLabel5.FontBold = "True"
;**************************************

;************* DeptLabel6 **************
$DeptLabel6 = $DeptGroupBox.Controls.Label("Assistant:", 325, 77, 70, 17)
$DeptLabel6.BackColor = 212,208,200
$DeptLabel6.FontBold = "True"
;**************************************

;************* DeptTextBox4 **************
$DeptTextBox4 = $DeptGroupBox.Controls.TextBox("TextBox4", 400, 15, 170, 20)
;**************************************

;************* DeptTextBox5 **************
$DeptTextBox5 = $DeptGroupBox.Controls.ComboBox("TextBox5", 400, 45, 170, 20)
;**************************************

;************* DeptTextBox6 **************
$DeptTextBox6 = $DeptGroupBox.Controls.TextBox("TextBox6", 400, 75, 170, 20)
;**************************************

;************* InfoGroupBox **************
$InfoGroupBox = $Form.Controls.GroupBox("Contact Information", 15, 255, 600, 110)
$InfoGroupBox.BackColor = 212,208,200
;**************************************

;************* InfoLabel1 **************
$InfoLabel1 = $InfoGroupBox.Controls.Label("Work #:", 25, 17, 70, 17)
$InfoLabel1.BackColor = 212,208,200
$InfoLabel1.FontBold = "True"
;**************************************

;************* InfoLabel2 **************
$InfoLabel2 = $InfoGroupBox.Controls.Label("Pager #:", 25, 47, 70, 17)
$InfoLabel2.BackColor = 212,208,200
$InfoLabel2.FontBold = "True"
;**************************************

;************* InfoLabel3 **************
$InfoLabel3 = $InfoGroupBox.Controls.Label("Cell #:", 25, 77, 70, 17)
$InfoLabel3.BackColor = 212,208,200
$InfoLabel3.FontBold = "True"
;**************************************

;************* InfoTextBox1 **************
$InfoTextBox1 = $InfoGroupBox.Controls.TextBox("TextBox1", 100, 15, 170, 20)
;**************************************

;************* InfoTextBox2 **************
$InfoTextBox2 = $InfoGroupBox.Controls.TextBox("TextBox2", 100, 45, 170, 20)
;**************************************

;************* InfoTextBox3 **************
$InfoTextBox3 = $InfoGroupBox.Controls.TextBox("TextBox3", 100, 75, 170, 20)
;**************************************

;************* InfoLabel4 **************
$InfoLabel4 = $InfoGroupBox.Controls.Label("Fax #:", 325, 17, 70, 17)
$InfoLabel4.BackColor = 212,208,200
$InfoLabel4.FontBold = "True"
;**************************************

;************* InfoLabel5 **************
$InfoLabel5 = $InfoGroupBox.Controls.Label("", 325, 47, 70, 17)
$InfoLabel5.BackColor = 212,208,200
$InfoLabel5.FontBold = "True"
;**************************************

;************* InfoLabel6 **************
$InfoLabel6 = $InfoGroupBox.Controls.Label("Home:", 325, 77, 70, 17)
$InfoLabel6.BackColor = 212,208,200
$InfoLabel6.FontBold = "True"
;**************************************

;************* InfoTextBox4 **************
$InfoTextBox4 = $InfoGroupBox.Controls.TextBox("TextBox4", 400, 15, 170, 20)
;**************************************

;************* InfoTextBox5 **************
$InfoTextBox5 = $InfoGroupBox.Controls.TextBox("TextBox5", 400, 45, 170, 20)
;**************************************

;************* InfoTextBox6 **************
$InfoTextBox6 = $InfoGroupBox.Controls.TextBox("TextBox6", 400, 75, 170, 20)
;**************************************

;************* OfficeGroupBox **************
$OfficeGroupBox = $Form.Controls.GroupBox("Office Location", 15, 375, 600, 110)
$OfficeGroupBox.BackColor = 212,208,200
;**************************************

;************* OfficeLabel1 **************
$OfficeLabel1 = $OfficeGroupBox.Controls.Label("Street:", 25, 17, 70, 17)
$OfficeLabel1.BackColor = 212,208,200
$OfficeLabel1.FontBold = "True"
;**************************************

;************* OfficeLabel3 **************
$OfficeLabel3 = $OfficeGroupBox.Controls.Label("P.O. Box:", 25, 77, 70, 17)
$OfficeLabel3.BackColor = 212,208,200
$OfficeLabel3.FontBold = "True"
;**************************************

;************* OfficeTextBox1 **************
$OfficeTextBox1 = $OfficeGroupBox.Controls.TextBox("TextBox1", 100, 15, 170, 50)
$OfficeTextBox1.Multiline = "True"
;**************************************

;************* OfficeTextBox3 **************
$OfficeTextBox3 = $OfficeGroupBox.Controls.TextBox("TextBox3", 100, 75, 170, 20)
;**************************************

;************* OfficeLabel4 **************
$OfficeLabel4 = $OfficeGroupBox.Controls.Label("City:", 325, 17, 70, 17)
$OfficeLabel4.BackColor = 212,208,200
$OfficeLabel4.FontBold = "True"
;**************************************

;************* OfficeLabel5 **************
$OfficeLabel5 = $OfficeGroupBox.Controls.Label("State:", 325, 47, 70, 17)
$OfficeLabel5.BackColor = 212,208,200
$OfficeLabel5.FontBold = "True"
;**************************************

;************* OfficeLabel6 **************
$OfficeLabel6 = $OfficeGroupBox.Controls.Label("Zip Code:", 325, 77, 70, 17)
$OfficeLabel6.BackColor = 212,208,200
$OfficeLabel6.FontBold = "True"
;**************************************

;************* OfficeTextBox4 **************
$OfficeTextBox4 = $OfficeGroupBox.Controls.TextBox("TextBox4", 400, 15, 170, 20)
;**************************************

;************* OfficeTextBox5 **************
$OfficeTextBox5 = $OfficeGroupBox.Controls.TextBox("TextBox5", 400, 45, 170, 20)
;**************************************

;************* OfficeTextBox6 **************
$OfficeTextBox6 = $OfficeGroupBox.Controls.TextBox("TextBox6", 400, 75, 170, 20)
;**************************************

;************* Accept **************
$Accept = $Form.Controls.Button("Accept Changes", 120, 510, 125, 23)
$Accept.enabled = "False"
;**************************************

;************* Button2 **************
$Cancel = $Form.Controls.Button("Cancel Changes", 405, 510, 125, 23)
$Cancel.OnClick = "ReadADInfo()"
;**************************************

ReadADInfo()

;KD END

$Form.Show
While $Form.Visible
$=Execute($Form.DoEvents())
Loop
Exit 1

Function ReadADInfo()

$ldap = TranslateName(1, @domain, 3, @ldomain+'\'+@userid, 1)
$UserProperties = GetObject("LDAP://"+$LDAP[0])

$FirstName = $userProperties.FirstName
$MiddleName = $userProperties.initials
$LastName = $userProperties.LastName
$UserName = $userProperties.sAMAccountName
$DisplayName = $userProperties.displayName
$emailName = $userProperties.mail

$TitleName = $userProperties.title
$CompanyName = $userProperties.company
$OfficeName = $userProperties.physicalDeliveryOfficeName
$DepartmentName = $userProperties.department
$ManagerName = $userProperties.manager
$AssistantName = $userProperties.assistant

$WorkNumber = $userProperties.telephoneNumber
$PagerNumber = $userProperties.pager
$MobileNumber = $userProperties.mobile
$FaxNumber = $userProperties.facsimileTelephoneNumber
; $ = $userProperties.
$HomeNumber = $userProperties.homePhone

$StreetAddr = $userProperties.streetAddress
$POBox = $userProperties.postOfficeBox
$city = $userProperties.l
$state = $userProperties.st
$zipcode = $userProperties.postalCode


$Super = TranslateName(1, @domain, 1, $ManagerName, 4)
if not @error and ubound($super)>1
$manager=$Super[0]
endif

; set default values of no data present
$company = iif($CompanyName='','Company',$CompanyName)


; populate form with data
$TextBox1.text = $FirstName
$TextBox2.text = $MiddleName
$TextBox3.text = $LastName
$TextBox4.text = $UserName
$TextBox5.text = $DisplayName
$TextBox6.text = $emailName

$DeptTextBox1.text = $TitleName
$DeptTextBox2.text = $Company
$DeptTextBox3.text = $OfficeName
$DeptTextBox4.text = $DepartmentName
$DeptTextBox5.text = $Manager
$DeptTextBox6.text = $AssistantName

$InfoTextBox1.text = $WorkNumber
$InfoTextBox2.text = $PagerNumber
$InfoTextBox3.text = $MobileNumber
$InfoTextBox4.text = $FaxNumber
$InfoTextBox5.text = ''
$InfoTextBox6.text = $HomeNumber

$OfficeTextBox1.text = $StreetAddr
$OfficeTextBox3.text = $POBox
$OfficeTextBox4.text = $city
$OfficeTextBox5.text = $state
$OfficeTextBox6.text = $zipcode

EndFunction




Function TranslateName($InitType, $BindName, $LookupNameType, $LookupName, $ReturnNameType)
Dim $InitType, $BindName, $LookupNameType, $LookupName, $ReturnNameType
Dim $NameTranslate, $ReturnName, $Error, $ErrorText
$Error = 0 $ErrorText = "" $ReturnName = ""
$NameTranslate = CREATEOBJECT ("NameTranslate") $Error = @error $ErrorText = @serror
if $Error = 0
$NameTranslate.Init ($InitType, $BindName) $Error = @error $ErrorText = @serror
if $Error = 0
$NameTranslate.Set ($LookupNameType, $LookupName) $Error = @error $ErrorText = @serror
if $Error = 0
$ReturnName = $NameTranslate.Get($ReturnNameType) $Error = @error $ErrorText = @serror
endif
endif
endif
$TranslateName = $ReturnName, $Error, $ErrorText
Endfunction


Top
#165861 - 2006-08-15 09:32 PM Re: OT: - Allow normal users to update their own AD info
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
A start Rad

But need some user input validation and a method for a real Administrator
to print out and review the details for anything bogus or obscene.

Top
#165862 - 2006-08-15 10:01 PM Re: OT: - Allow normal users to update their own AD info
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
I figure that obscene info will be handled by mgmt

Office will probably be a combobox to load template data to the balance of the form.

Top
#165863 - 2006-08-15 10:26 PM Re: OT: - Allow normal users to update their own AD info
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11631
Loc: CA
Well you must have nice management. Most don't have time and don't want to spend time dealing with something like data validation.
Top
#165864 - 2006-08-15 10:28 PM Re: OT: - Allow normal users to update their own AD info
Radimus Moderator Offline
Moderator
*****

Registered: 2000-01-06
Posts: 5187
Loc: Tampa, FL
nope... they'd ignore it until someone complains.

Then the hammer would fall

Top
Page 1 of 2 12>


Moderator:  Arend_, Allen, Jochen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Mart 
Hop to:
Shout Box

Who's Online
0 registered and 1045 anonymous users online.
Newest Members
ManuvdWielNL, Sir_Barrington, batdk82, StuTheCoder, M_Moore
17887 Registered Users

Generated in 0.074 seconds in which 0.026 seconds were spent on a total of 13 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org