Hi Arran,
~, |, & are the bitwise operators of C# language.
You can find ADS_UF_ACCOUNTDISABLEa in ADS_USER_FLAG_ENUM:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netdir/adsi
/ads_user_flag_enum.asp
that ADS_UF_ACCOUNTDISABLE= 0x0002;
0x0002's binary expression is 0000,0000,0000,0010, so ~0x0002 is
1111,1111,1111,1101.
val & ~ADS_UF_ACCOUNTDISABLE equals val&1111,1111,1111,1101 which makes all
the other bits stay the same value as before, only the second bit becomes 0.
Then, when invoke CommitChanges(), .Net Framework will check second bit of
userAccountControl property, and 0 means enable.
Alike, val | ADS_UF_ACCOUNTDISABLE equals valu| 0000,0000,0000,0010 which
makes all bits stay the same, second bit becomes 1.
This makes diable the user account.
Hope I explain clear.
If you still have any unclear, please feel free to tell me.
Best regards,
Jeffrey Tan
Microsoft Online Partner Support
Get Secure! -
www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
--------------------
| From: "Arran Pearce" <
[email protected]>
| References: <#
[email protected]>
<#HAV#
[email protected]>
<#
[email protected]>
<7Nh#
[email protected]>
| Subject: Re: ADSI Account Lockout
| Date: Sat, 25 Oct 2003 18:14:07 +0100
| Lines: 145
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <#
[email protected]>
| Newsgroups: microsoft.public.dotnet.languages.csharp
| NNTP-Posting-Host: host213-122-67-95.in-addr.btopenworld.com 213.122.67.95
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.languages.csharp:194030
| X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
|
| In the example for enable or disable the account it has this:
|
| int val = (int) usr.Properties["userAccountControl"].Value;
| usr.Properties["userAccountControl"].Value = val | ADS_UF_ACCOUNTDISABLE;
|
| and
|
| int val = (int) usr.Properties["userAccountControl"].Value;
| usr.Properties["userAccountControl"].Value = val & ~ADS_UF_ACCOUNTDISABLE;
|
| What is happening with the "val | ADS_UF_ACCOUNTDISABLE" and "val &
| ~ADS_UF_ACCOUNTDISABLE"?
|
|
|
| | >
| > Hi Arran,
| >
| > If you still have anything unclear, please feel free to tell me.
| > Have a nice weekand.
| >
| > Best regards,
| > Jeffrey Tan
| > Microsoft Online Partner Support
| > Get Secure! -
www.microsoft.com/security
| > This posting is provided "as is" with no warranties and confers no
rights.
| >
| > --------------------
| > | From: "Arran Pearce" <
[email protected]>
| > | References: <#
[email protected]>
| > <#HAV#
[email protected]>
| > | Subject: Re: ADSI Account Lockout
| > | Date: Fri, 24 Oct 2003 19:12:12 +0100
| > | Lines: 81
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | Message-ID: <#
[email protected]>
| > | Newsgroups: microsoft.public.dotnet.languages.csharp
| > | NNTP-Posting-Host: host213-122-88-5.in-addr.btopenworld.com
213.122.88.5
| > | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP10.phx.gbl
| > | Xref: cpmsftngxa06.phx.gbl
| microsoft.public.dotnet.languages.csharp:193875
| > | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| > |
| > | Thanks for all your help.
| > |
| > |
| > | | > | >
| > | > Hi Arran,
| > | >
| > | > Just as Peter said, you should use the userAccountControl property.
| > | > For Lockout and Disabled acount, you should refer to ADS_UF_LOCKOUT
| and
| > | > ADS_UF_ACCOUNTDISABLE flag which are defined in ADS_USER_FLAG_ENUM
| enum.
| > | > Please refer to ADS_USER_FLAG_ENUM enum at the link below:
| > | >
| > |
| >
|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netdir/adsi
| > | > /ads_user_flag_enum.asp
| > | >
| > | > You also can find a small sample of how to enable and disable a user
| > | acount:
| > | >
| > |
| >
|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netdir/netd
| > | > s/enabling_and_disabling_the_user_account.asp
| > | >
| > | > If you still have any questions, please feel free to let me know.
| > | >
| > | > Best regards,
| > | > Jeffrey Tan
| > | > Microsoft Online Partner Support
| > | > Get Secure! -
www.microsoft.com/security
| > | > This posting is provided "as is" with no warranties and confers no
| > rights.
| > | >
| > | > --------------------
| > | > | From: "Arran Pearce" <
[email protected]>
| > | > | Subject: ADSI Account Lockout
| > | > | Date: Thu, 23 Oct 2003 19:58:59 +0100
| > | > | Lines: 23
| > | > | X-Priority: 3
| > | > | X-MSMail-Priority: Normal
| > | > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | > | Message-ID: <#
[email protected]>
| > | > | Newsgroups: microsoft.public.dotnet.languages.csharp
| > | > | NNTP-Posting-Host: host213-122-124-127.in-addr.btopenworld.com
| > | > 213.122.124.127
| > | > | Path:
cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP11.phx.gbl
| > | > | Xref: cpmsftngxa06.phx.gbl
| > | microsoft.public.dotnet.languages.csharp:193614
| > | > | X-Tomcat-NG: microsoft.public.dotnet.languages.csharp
| > | > |
| > | > | Hi,
| > | > |
| > | > | I am looking for a way to use System.DirectoryServices to find all
| > users
| > | > on
| > | > | a domain whos accounts are either locked out or disabled. I have
| used
| > | > | ADSIEdit and the mmc schema add-in to try and find properties for
| > these
| > | > | things but have not had any luck so far. Also i did a search on
the
| > | > | Platform SDK doc's. It has examples in VB and C++ but these are
not
| > | using
| > | > | DotNet and dont give any hint to a property that may be used.
They
| > seem
| > | > to
| > | > | call a method directly on a object, and i am sure that method is
not
| > | > | available as part of a DirectoryEntry class.
| > | > |
| > | > | I have a feeling i may need to do a Invoke (as you do when you
reset
| a
| > | > users
| > | > | password from DotNet) if i do have to do this then how can i do a
| > | search
| > | > of
| > | > | all users in a domain?
| > | > |
| > | > | I would also like to be able to Enable or Disable a account from
my
| > | > | application (This is Account Lockout and Account Disabled).
| > | > |
| > | > | thanks for any help anyone can offer.
| > | > |
| > | > | Arran
| > | > |
| > | > |
| > | > |
| > | >
| > |
| > |
| > |
| >
|
|
|