• 脚本修改域内本地管理员密码


    一台一台的修改域内计算机本地管理员密码不太现实,在没有Configuration manager这些工具的情况下,使用脚本来修改本地密码也颇为方便:

    'Script for change the local administrator password
    
    On Error Resume Next
    Set objDictionary = CreateObject("Scripting.Dictionary")
    i=0
    
    passwd="password1"
    call ChangePWD("OU=ou1,OU=ou2,DC=dc1,DC=cn",passwd)
    
    
    Wscript.echo "Finished!"
    If objDictionary.Count>0 Then call logError(objDictionary)
    
    '-----------------End of main program--------------------
    
    Sub LogError(objDictionary)
        Const ForReading = 1, ForWriting = 2, ForAppending = 8
        APP_ERROR_LOG = "chadminpwd.log"
            
        Set fsoSysObj = CreateObject("Scripting.FileSystemObject")
          Set oshell=createobject("wscript.shell")
        On Error Resume Next
        Set filFile = fsoSysObj.GetFile(APP_ERROR_LOG)
        If Err <> 0 Then
            Set filFile = fsoSysObj.CreateTextFile(APP_ERROR_LOG)
        End If
    
        On Error GoTo 0
        ' Open file as text stream for reading.
        Set txsStream = filFile.OpenAsTextStream(ForAppending)
        With txsStream
               .WriteLine Now & " - Failed to change kbadmin on these computers:"
               For Each strComputer in objDictionary.Items
                   .WriteLine strComputer
               Next
            .WriteBlankLines 1
            .Close
        End With
    LogErrorEnd:
        Exit Sub
    End Sub
    
    'The subroutine used for search the computers in the unit and 
    'change all the local administrator password
    sub ChangePWD(ouname,passwd)
        On Error Resume Next
        set ObjOU = GetObject("LDAP://" & ouname)
        ObjOU.Filter = Array("Computer")
    
    
        For Each ObjComp in ObjOU
            strComputer = Right(ObjComp.Name,Len(ObjComp.Name)-3)
              'MsgBox strComputer & VbCrLf & ObjComp.OperatingSystem
            Set objUser = GetObject("WinNT://" & strComputer & "/administrator, user")
              If Err <> 0 Then
                Wscript.Echo strComputer & " - Failed!!"  '& VbCrLf & Err.Number & " -- " &  Err.Description
                i=i+1
                objDictionary.Add i,strComputer
                Err.Clear
            Else
                objUser.SetPassword passwd
                objUser.SetInfo   
                'MsgBox strComputer & " has been successfully processed!"
                WScript.Echo strComputer & " - OK!"
            End If
         Next
      
    end sub

    需要在远端计算机上关闭防火墙,至少是打开远程管理的端口135等,具体用TCPVIEW检测一下吧。

  • 相关阅读:
    任务调度~Quartz.net实现简单的任务调试
    编译器错误~写JS还是谨慎点好
    编译器错误~不能向ObjectStateManager添加相同的键
    EF架构~将数据库注释添加导入到模型实体类中
    c++ pair类型
    Adobe dreamweaver 5.5安装过程
    c++函数作为参数传递
    c++ vector.clear()
    动态规划之装配线调度问题
    转:VS后缀名详解
  • 原文地址:https://www.cnblogs.com/duanshuiliu/p/2594571.html
Copyright © 2020-2023  润新知