Does ActiveDs work under Win2000 SP4?

Posted on 2005-04-01
Medium Priority
Last Modified: 2008-02-01
I have an app which imports the Active Directory Services dll, ActiveDs.dll.  To simplify things, it basically only contains this line of code just to access the activeds.

private void OnTestButtonPushed(object sender, System.EventArgs e)
   ADsSecurityUtility asu = new ADsSecurityUtilityClass();

The app is compiled on a WinXP Pro SP2 machine dotnet 1.1 and runs fine.  When run on a win2000 SP4 dotnet 1.1 machine I get this error:

   'COM object with CLSID {F270C64A-FFB8-4AE4-85FE-3A75E5347966} is either not valid or not registered'

Now, noticed that the version of ActiveDs.dll on the XP machine is 5.1.2600.2180, while the version on the win2k machine is 5.0.2195.6601.  Does microsoft change the CLSID with each new version of the file?  I thought about copying activeds.dll from the XP machine to the 2k machine and then registering, but I think that might be bad for the 2k machine as the new version might conflict with other things besides my app.  Does it mean I have to compile my app on a 2k machine to function there?

Question by:colemaj1
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Author Comment

ID: 13684996
I found something else interesting. I copied activeds.dll and activeds.tlb to my XP developement machine and imported this version into my project instead.  I recompiled and then tried to run it again on the win2k machine - same error.  Also, just to be sure on the win2k machine, I re-registered activeds.dll using regsvr32.exe.  Still same error.
LVL 20

Accepted Solution

ihenry earned 1500 total points
ID: 13687524
>>  Does microsoft change the CLSID with each new version of the file?
ActiveDs.dll version in my W2K3 box is 5.2.3790.0

>> Does it mean I have to compile my app on a 2k machine to function there?
It's very likely yes. In order to function correctly, you must use the correct dll and compile the code in the same windows version.

I have one application which uses ActiveDs.dll, so I have different version of the same app for each windows version. Just a thought, maybe you can try to import different activeds.tlb version into different interop assembly. Then in run-time, detect the running OS and load the correct assembly version dynamically. I'm not very sure as I never do that myself, but it worth a try.

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question