Re: Using WMI to disable a user account
- From: "Al Dunbar" <AlanDrub@xxxxxxxxxxxxxxxxxxx>
- Date: Thu, 12 Apr 2007 18:04:35 -0600
"Paul" <mail@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:B71B475B-AA52-414B-9E70-30407277BCD5@xxxxxxxxxxxxxxxx
Hi,
I want to use a WMI script to disable a user account. Here's the test code
I'm using:
compName = "localhost"
Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//"& _
compName & "\root\cimv2")
Set users = wmi.ExecQuery("SELECT * FROM Win32_UserAccount")
For Each user In users
If user.Name = "whatever" Then
user.Disabled = True
End If
Next 'user
The code runs fine (on a Windows Server 2003 box; I'm logged in as
Administrator), but the user's account is not disabled. Any idea why?
Interesting. I had the same result on XP with a non-admin account, so it's
not just that you are testing against a name where the (upper/lower) case
doesn't match. I added some echo statements to make sure the .disabled
attribute has a boolean value and is modifiable, i.e.:
compName = "localhost"
Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//"&
_
compName & "\root\cimv2")
Set users = wmi.ExecQuery("SELECT * FROM Win32_UserAccount")
For Each user In users
If user.Name = "zzz" Then
wscript.echo "disabling user [" & user.name & "]"
wscript.echo "[" & user.disabled & "]"
user.Disabled = not user.disabled
wscript.echo "[" & user.disabled & "]"
End If
Next 'user
wscript.echo "after FOR EACH loop"
Since this indicated that the attribute had indeed changed (although not on
the actual account), it seems to me that there might perhaps be some
requirement to write the property back to the sam database with something
like the ".SetInfo" method used in active directory. There might be, but it
isn't user.setinfo, as that threw an "object doesn't support this property
or method" exception.
Curious.
/Al
.
- Follow-Ups:
- Re: Using WMI to disable a user account
- From: Richard Mueller [MVP]
- Re: Using WMI to disable a user account
- Prev by Date: Re: Checking printers exist
- Next by Date: Re: Need WMI script
- Previous by thread: Re: Checking printers exist
- Next by thread: Re: Using WMI to disable a user account
- Index(es):
Relevant Pages
|