《挺好用的自动改名加域工具.docx》由会员分享,可在线阅读,更多相关《挺好用的自动改名加域工具.docx(17页珍藏版)》请在三一办公上搜索。
1、挺好用的自动改名加域工具MAIN.bat 中的内容 echo OFF cls title 歡迎使用FIS加域軟件加入FIS域. :menu cls color 0A echo. echo = echo * 請輸入您即將進行的操作 * echo = echo. echo 1.分配計算機名稱加入FISecho. echo 2.將計算機退出FIS域 echo. echo 3.echo. echo 4.echo. echo 5.echo. echo 6.修改計算機主頁 echo. echo 7.添加IE信任站點、設置安全選項 echo. echo Q. echo. echo. :cho set cho
2、ice= set /p choice= 請輸入: IF NOT %choice%= SET choice=%choice:0,1% if /i %choice%=1 goto changeName if /i %choice%=2 goto UNJOINDOMAIN if /i %choice%=3 goto AddGROUP if /i %choice%=4 goto INI if /i %choice%=5 goto clearall if /i %choice%=6 goto changeindex if /i %choice%=7 goto changeietest if /i %ch
3、oice%=Q goto endd echo 輸入有誤, echo. goto cho :changeName CALL changeName.bat pause GOTO menu :SHUTDOWN -t 0 -r :UNJOINDOMAIN CALL UNJOINDOMAIN.BAT GOTO menu :AddGROUP CALL AddGROUP.BAT GOTO menu :INI CALL changepasswd.bat GOTO menu :clearall CALL clear.bat GOTO menu :changeindex CALL changeindex.bat
4、goto menu :changeietest :changeindex CALL changeietest.bat goto menu :end PAUSE Changename.bat ECHO ECHO 計算機名稱:%NEWNAME% C:FA1Fnamelist1.bat ECHO ECHO OFF C:FA1Fnamelist1.bat ECHO %NEWNAME% C:FA1Fnamelist1.txt ECHO %NEWNAME% Z:FA1FnamelistALL.txt COPY C:FA1Fnamelist1.txt Z:FA1Fnamelist.txt NET USE *
5、 /D /Y cls ECHO 請您記下為您分配的計算機名稱 :ECHO 此名稱需要在修改計算機名時手動輸入 CALL C:FA1Fnamelist1.bat color 0A cscript.exe /nologo fis.vbs %NEWNAME% GOTO END :SA1F net use * /d /y net use z: 192.168.0.2computerList test+123 /user:test copy z:SA1Fnamelist.txt c: for /f tokens=3,4 delims=_ %i in (c:SA1Fnamelist.txt) do set
6、 localIP=%i ECHO %localIP% SET var= %localIP% SET /a var+=1 ECHO %var% SET NEWNAME=ICC_SA1_%var% ECHO ECHO ON C:SA1Fnamelist1.bat ECHO color 0C C:SA1Fnamelist1.bat ECHO ECHO 計算機名稱:%NEWNAME% C:SA1Fnamelist1.bat ECHO ECHO OFF C:SA1Fnamelist1.bat ECHO %NEWNAME% C:SA1Fnamelist1.txt ECHO %NEWNAME% Z:SA1F
7、namelistALL.txt COPY C:SA1Fnamelist1.txt Z:SA1Fnamelist.txt NET USE * /D /Y CLS ECHO 請您記下為您分配的計算機名稱 :ECHO 此名稱需要在修改計算機名時手動輸入 CALL C:SA1Fnamelist1.bat ECHO OFF color 0A cscript.exe /nologo fis.vbs %NEWNAME% GOTO END :FA2F net use * /d /y net use z: 192.168.0.2computerList test+123 /user:test copy z:FA
8、2Fnamelist.txt c: for /f tokens=3,4 delims=_ %i in (c:FA2Fnamelist.txt) do set localIP=%i ECHO %localIP% SET var= %localIP% SET /a var+=1 ECHO %var% SET NEWNAME=ICC_FA2_%var% ECHO ECHO ON C:FA2Fnamelist1.bat ECHO color 0C C:FA2Fnamelist1.bat ECHO ECHO 計算機名稱:%NEWNAME% C:FA2Fnamelist1.bat ECHO ECHO OF
9、F C:FA2Fnamelist1.bat ECHO %NEWNAME% C:FA2Fnamelist1.txt ECHO %NEWNAME% Z:FA2FnamelistALL.txt COPY C:FA2Fnamelist1.txt Z:FA2Fnamelist.txt NET USE * /D /Y cls ECHO 請您記下為您分配的計算機名稱 :ECHO 此名稱需要在修改計算機名時手動輸入 CALL C:FA2Fnamelist1.bat color 0A cscript.exe /nologo fis.vbs %NEWNAME% GOTO END :SA2F net use * /
10、d /y net use z: 192.168.0.2computerList test+123 /user:test copy z:SA2Fnamelist.txt c: for /f tokens=3,4 delims=_ %i in (c:SA2Fnamelist.txt) do set localIP=%i ECHO %localIP% SET var= %localIP% SET /a var+=1 ECHO %var% SET NEWNAME=ICC_SA2_%var% ECHO ECHO ON C:SA2Fnamelist1.bat ECHO color 0C C:SA2Fnam
11、elist1.bat ECHO ECHO 計算機名稱:%NEWNAME% C:SA2Fnamelist1.bat ECHO ECHO OFF C:SA2Fnamelist1.bat ECHO %NEWNAME% C:SA2Fnamelist1.txt ECHO %NEWNAME% Z:SA2FnamelistALL.txt COPY C:SA2Fnamelist1.txt Z:SA2Fnamelist.txt NET USE * /D /Y cls ECHO 請您記錄為您分配的計算機名稱 :ECHO 此名稱需要在修改計算機名時手動輸入 CALL C:SA2Fnamelist1.bat colo
12、r 0A cscript.exe /nologo fis.vbs %NEWNAME% GOTO END :FA3F net use * /d /y net use z: 192.168.0.2computerList test+123 /user:test copy z:FA3Fnamelist.txt c: for /f tokens=3,4 delims=_ %i in (c:FA3Fnamelist.txt) do set localIP=%i ECHO %localIP% SET var= %localIP% SET /a var+=1 ECHO %var% SET NEWNAME=T
13、SB_FA3_%var% ECHO ECHO ON C:FA3Fnamelist1.bat ECHO color 0C C:FA3Fnamelist1.bat ECHO ECHO 計算機名稱:%NEWNAME% C:FA3Fnamelist1.bat ECHO ECHO OFF C:FA3Fnamelist1.bat ECHO %NEWNAME% C:FA3Fnamelist1.txt ECHO %NEWNAME% Z:FA3FnamelistALL.txt COPY C:FA3Fnamelist1.txt Z:FA3Fnamelist.txt NET USE * /D /Y CLS ECHO
14、 請您記錄為您分配的計算機名稱 :ECHO 此名稱需要在修改計算機名時手動輸入 CALL C:FA3Fnamelist1.BAT color 0A cscript.exe /nologo fis.vbs %NEWNAME% GOTO END :END FIS.VBS 加域 On Error Resume Next Const JOIN_DOMAIN = 1 Const ACCT_CREATE = 2 Const ACCT_DELETE = 4 Const WIN9X_UPGRADE = 16 Const DOMAIN_JOIN_IF_JOINED = 32 Const JOIN_UNSECUR
15、E = 64 Const MACHINE_PASSWORD_PASSED = 128 Const DEFERRED_SPN_SET = 256 Const INSTALL_INVOCATION = 262144 Dim strDomain,strPassword,strUser,strComputer Dim objWMIService,objProcess, objNetwork Public strUserName Public strComputerName strDomain = iccfis.inventec strUser = iccfisus111000 strPassword
16、= icc+123 strLocalGroup = administrators strDCMachine = DCName varExitErrorLevel = 0 Set objNetwork = CreateObject(WScript.Network) strHostName = objNetwork.ComputerName Set objNetwork = Nothing WScript.Echo 使用须知:用该脚本加域可以同时修改计算机名称,并将域用户加入本地管理员组。 & VbCrLf &_ 仅修改计算机名称不会将域用户加入本地管理员组,您需要自己操作。 & VbCrLf &
17、_ 同时所有的操作都不会帮用户迁移任何配置文件,您需要自己操作。 & VbCrLf &_ - & VbCrLf &_ 1. 加域 & VbCrLf &_ 2. 修改计算机名称 & vbCrlf &_ - WScript.StdOut.Write 选择操作: varOper = WScript.StdIn.ReadLine Select Case varOper Case 1 subQueryForUser subQueryForComp subJoin Case 2 subQueryForComp subRename Case 3 subRemove Case Else subInvalidA
18、rg End Select Reboot system if success If varExitErrorLevel = 0 Then Dim MyVar MyVar =MsgBox (成功完成. & vbCrLf & 请关闭所有的应用程序. & vbCrLf &_ 点击确定后重启电脑., vbOKOnly,Reboot!) If MyVar = 1 Then Set objOperatingSystems = GetObject(winmgmts:(Shutdown)/./root/cimv2).ExecQuery(select * from Win32_OperatingSystem w
19、here Primary=true) For Each objOperatingSystem In objOperatingSystems objOperatingSystem.Reboot Next End If Else WScript.Echo 完成, 但有错误发生. 请联系 IT 服务热线寻求帮助. End If Sub subQueryForUser On Error Resume Next WScript.StdOut.Write 输入你的用户名 (例如: zhangsan): strUserName = WScript.StdIn.ReadLine If Len(strUserN
20、ame)=0 Then subInvalidArg End If Dim objConnection,objCommand,objRecordSet Set objConnection = CreateObject(ADODB.Connection) Set objCommand = CreateObject(ADODB.Command) objConnection.Provider = ADsDSOObject objConnection.Properties(User ID) = strUser objConnection.Properties(Password) = strPasswor
21、d objConnection.Properties(Encrypt Password) = True objConnection.Open Active Directory Provider Set objCommand.ActiveConnection = objConnection objCommand.CommandText = ;(&(objectCategory=person)(objectClass=User) & _ (samAccountName= & strUserName & );samAccountName;subtree Set objRecordSet = objC
22、ommand.Execute If(Err.number 0) Then subDisplay fncErrorMessage(Hex(Err.Number), Err.Description, True) WScript.Quit Else If objRecordset.RecordCount = 0 Then WScript.Echo 用户名 & strUserName & & 不存在! &_ 请确认你的用户名, 重新运行脚本. WScript.Quit End If End If objConnection.Close End Sub Sub subQueryForComp On Er
23、ror Resume Next WScript.Echo 获得计算机名. Set args = WScript.Arguments If args.Count = 1 Then strComputerName = WScript.Arguments(0) WScript.StdOut.WriteLine strComputerName & 新计算机名 WScript.Echo strComputerName Else WScript.StdErr.WriteLine 获得计算机名失败 WScript.Quit End If WScript.Echo 获得计算机名是: & strComputer
24、Name If Len(strComputerName) 13 Then subInvalidArg End If ePos = InStr(strComputerName, -) If ePos 4 Then subInvalidArg End If Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject(ADODB.Connection) Set objCommand = CreateObject(ADODB.Command) objConnection.Provider = ADsDSOObject objConnecti
25、on.Properties(User ID) = strUser objConnection.Properties(Password) = strPassword objConnection.Open Active Directory Provider Set objCommand.ActiveConnection = objConnection objCommand.CommandText = SELECT * FROM LDAP:/ & strDomain & WHERE CN=& strComputerName & WScript.Echo objCommand.CommandText
26、Set objRecordSet = objCommand.Execute WScript.Echo objRecordset.RecordCount If objRecordSet.EOF Then WScript.Echo 计算机 & strComputerName & & 可以使用 Else WScript.Echo 计算机 & strComputerName & & 已经存在, 不能再次创建. & VbCrLf &_ 请联系 IT 服务热线寻求帮助. WScript.Quit End If objConnection.Close End Sub 1-Join computer to d
27、omain,rename computer,add user to local administrators group Sub subJoin On Error Resume Next WScript.Echo 正在加域, 请等待. & VbCrLf &_ - WScript.StdOut.Write 請輸入新的ComputerName.例如:ICC-TSB-01 strComputerName = WScript.StdIn.ReadLine Set objWMIComputer = GetObject(winmgmts:impersonationLevel=Impersonate! &
28、strHostName & rootcimv2:Win32_ComputerSystem.Name= & strHostName & ) If Err.Number = 0 Then varJoinReturnValue = objWMIComputer.JoinDomainOrWorkGroup(strDomain, strPassword, strUser, , JOIN_DOMAIN + ACCT_CREATE) If Err.Number = 0 Then If varJoinReturnValue = 2224 Then subDisplay The computer account
29、 already exists, it will stay in its current OU. varJoinReturnValue = objWMIComputer.JoinDomainOrWorkGroup(strDomain, strPassword, strUser, , JOIN_DOMAIN) End If If varJoinReturnValue = 0 Then subDisplay Success: Computer has joined to domain. Wscript.sleep(5000) subRename subAddDUsertoLAdmin Else s
30、ubDisplay fncErrorMessage(varJoinReturnValue, , True) End If Else subDisplay fncErrorMessage(Hex(Err.Number), Err.Description, True) End If Else subDisplay fncErrorMessage(Hex(Err.Number), Err.Description, True) End If End Sub Add domain user to local administrators group Sub subAddDUsertoLAdmin On
31、Error Resume Next Set objGroup = GetObject(WinNT:/ & strHostName & / & strLocalGroup) Set objDSO = GetObject(WinNT:) Set objUser = objDSO.OpenDSObject(WinNT:/ & strDomain & / & strUserName,_ strUser, strPassword, ADS_SECURE_AUTHENTICATION Or ADS_USE_ENCRYPTION) varAddGroupValue = objGroup.Add(objUse
32、r.ADsPath) If varAddGroupValue =0 Then subDisplay Success: Added & strUserName & to & strLocalGroup Else subDisplay fncErrorMessage(varAddGroupValue, Add domain user to local administrator group, True) End If Set objGroup = Nothing End Sub 2-Rename computer and computer account in domain Sub subRena
33、me On Error Resume Next Set objWMIService = GetObject(winmgmts:impersonationLevel=impersonate! & strHostName & rootcimv2) Set colComputers = objWMIService.ExecQuery(Select * from Win32_ComputerSystem) If Err.Number = 0 Then For Each objComputer In colComputers varRenameReturnValue= objComputer.Renam
34、e(strComputerName, strPassword, strUser) If varRenameReturnValue =0 Then subDisplay Success: Computer has renamed to & strComputerName Else subDisplay fncErrorMessage(varRenameReturnValue, , True) End If Next Else subDisplay fncErrorMessage(Hex(Err.Number), Err.Description, True) End If End Sub 3-Re
35、move computer from domain Sub subRemove 提醒用户记录计算机名称 WScript.Echo 请记录当前计算机名称: & strHostName NETDOM REMOVE machine /Domain:domain /OU:ou path /UserD:user /PasswordD:password | * NetdomRemove = NETDOM REMOVE & strHostName & /Domain: & strDomain & /UserD: &strUser & /PasswordD: &strPassword Dim WshShell
36、, WshExec Set WshShell = CreateObject(WScript.Shell) Set WshExec = WshShell.Exec(NetdomRemove) varNetdomRemove = ( WshExec.StdOut.ReadAll ) If InStr(1, LCase(VarNetdomRemove), LCase(The command completed successfully.) 0 Then subDisplay Success: Computer has removed from domain Else subDisplay fncEr
37、rorMessage(, varNetdomRemove, True) End If End Sub Sub subInvalidArg WScript.Echo 输入无效, 请重新运行脚本! WScript.Quit End Sub Sub subDisplay(strOutput) If InStr(1, WScript.FullName, cscript.exe, vbTextCompare) 0 Then WScript.Echo strOutput & vbCrLf End If End Sub Function fncErrorMessage(varErrorNumber, str
38、ErrorDescription, flgSetExitErrorLevel) If strErrorDescription = Then List of system error codes and network management error codes Select Case varErrorNumber Case 5 strErrorDescription = Access is denied Case 87 strErrorDescription = The parameter is incorrect Case 110 strErrorDescription = The sys
39、tem cannot open the specified object Case 1323 strErrorDescription = Unable to update the password Case 1326 strErrorDescription = Logon failure: unknown username or bad password Case 1355 strErrorDescription = The specified domain either does not exist or could not be contacted Case 2224 strErrorDe
40、scription = The account already exists Case 2691 strErrorDescription = The machine is already joined to the domain Case 2692 strErrorDescription = The machine is not currently joined to a domain End Select End If fncErrorMessage = Error: & varErrorNumber & . & strErrorDescription & . If flgSetExitErrorLevel Then varExitErrorLevel = 1 End Function