苦逼房奴一枚
全部博文(65)
分类: WINDOWS
2008-09-17 17:08:56
![]() |
|
右键菜单里的启用和禁用帐号是使用dos命令net user实现的,关键代码如下
Dim a As String
a = ListView1.SelectedItems.Item(0).Text
Dim o As New Management.ObjectGetOptions()
Dim path As Management.ManagementPath = New Management.ManagementPath("Win32_Process")
Dim processClass As Management.ManagementClass = New Management.ManagementClass(_scope, path, o)
Dim inParams As Management.ManagementBaseObject = processClass.GetMethodParameters("Create")
inParams("CommandLine") = "cmd.exe /c net user " & a & " /active:yes"
Dim outparams As Management.ManagementBaseObject = processClass.InvokeMethod("Create", inParams, Nothing)
另外执行完之后刷新一次,我就不重复贴了,有个要点,代码顺序执行,有时候刷新速度超快,所以你命令执行成功了,但是显示的状态不会改变,于是我在代码里增加了一句
System.Threading.Thread.Sleep(10000)
执行批量修改本地密码是利用了微软提供的cusrmgr这个工具和dos下的一个for循环,验证过程使用当前系统帐号的验证方式,所以权限问题要搞清楚在执行
Sub doscommand(ByVal Doscomm As String)
Dim p As New Process
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardInput = True
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.RedirectStandardError = True
p.StartInfo.CreateNoWindow = True
p.Start()
p.StandardInput.WriteLine(Doscomm)
p.StandardInput.WriteLine("exit")
Dim strrst As String
Do
strrst = p.StandardOutput.ReadLine()
If Not (strrst Is Nothing) Then
ListBox1.Items.Add(strrst)
End If
Loop While Not (strrst Is Nothing)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("使用此功能请先检查cusrmgr.exe是否和软件放在同一个目录下,此外该工具使用的是当前系统身份验证,请确保身份验证问题,如是在域内使用,建议放在备用域控制器上")
Dim dir As String
dir = System.Environment.CurrentDirectory
ListBox1.Items.Clear()
Call doscommand("FOR /L %i IN (" & TextBox6.Text & "," & TextBox3.Text & "," & TextBox9.Text & ") DO " & dir & "\cusrmgr.exe -u " & TextBox10.Text & " -m \\" & TextBox1.Text & "." & TextBox4.Text & "." & TextBox5.Text & ".%i -r " & TextBox11.Text & " -P " & TextBox12.Text & ">>" & dir & "\log.txt")
MsgBox("执行日志存放在" & dir & "目录下")
End Sub