MCSE技术论坛

首页 » 开发者俱乐部 » windows脚本 » 脚本寻求帖,大家需要什么脚本的发到这个帖子里.
Steven - 2007-8-17 19:46:00
这几天这块已经快张毛的版区终于有些人气了,趁热打铁,如果哪位有需要什么脚本的话,请发到这个帖子里。

也请脚本高手们不要吝啬自己的技术,多多帮助有需要的朋友.
洛洛 - 2007-8-17 19:57:00
要不你写一个批量修改域属性的脚本
Steven - 2007-8-17 20:14:00
ok,我尽力,如果写不好,洛洛表怪我啊.;P

域属性你指的是用户账户属性和电脑账户属性吗?
magicking - 2007-8-17 22:00:00
我想要个SMS高级客户端的卸载脚本
Steven - 2007-8-17 22:40:00
根据洛洛的要求,写了一个批量修改用户账户和电脑账户属性的脚本,另外我还加进去了ou和容器的批量属性修改.

用的时候要注意:双击之后,code里面的汉字部分将会覆盖所有的 用户帐号\电脑帐号\ou\容器 的属性,如果是在实际生产环境中,千万要三思而后行!不过不用担心,你不想改变某个属性,直接把那行删除或者comment掉就可以了.

'==========================================================================
'
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.1
'
' NAME:
'
' AUTHOR: Steven , Steven
' DATE  : 2007-8-18
'
' COMMENT:
'
'==========================================================================
Dim oRoot
Set oRoot=GetObject("LDAP://RootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
JustDoIt oDomain
Sub JustDoIt(oContainer)
Dim oMyObject
For Each oMyObject in oContainer
  Select Case oMyObject.Class
'这个是用户的
  Case "user"
    oMyObject.put "displayName", "显示名字写在这儿"
    oMyObject.put "physicalDeliveryOfficeName", "办公室写在这儿"
    oMyObject.put "telephoneNumber", "电话写在这儿"
    oMyObject.put "mail", "电邮写在这儿"
    oMyObject.put "url", "网页写在这儿"
    oMyObject.put "st", "省市写在这儿"
    oMyObject.put "postalCode", "邮编写在这儿"
    oMyObject.put "co", "国家"
    oMyObject.put "postOfficeBox", "邮箱地址写在这儿"   
    oMyObject.put "streetAddress", "街道写在这儿"
    oMyObject.put "description", "描述写在这儿"
    oMyObject.SetInfo
'这个是电脑帐户的
  Case "computer"
    oMyObject.put "description", "描述写在这儿"
    oMyObject.SetInfo
'这个是ou和容器的   
  Case "organizationalUnit" , "container"
    oMyObject.put "description", "描述写在这儿"
    oMyObject.SetInfo
 
    JustDoIt(oMyObject)
  End select
Next
End Sub


Steven - 2007-8-17 22:51:00


引用:
原帖由 magicking 于 2007-8-17 22:00:00 发表
我想要个SMS高级客户端的卸载脚本


sms用的class在COM里面叫什么名字?
uctip - 2007-8-17 23:35:00
通过计划任务作NTBACKUP的时候能自动生成以时间命名的备份文件么?
Steven - 2007-8-18 13:03:00


引用:
原帖由 uctip 于 2007-8-17 23:35:00 发表
通过计划任务作NTBACKUP的时候能自动生成以时间命名的备份文件么?


肯定可以啊。
洛洛 - 2007-8-18 17:10:00
恩,写的不错啊
happy_daily - 2007-8-18 17:12:00
楼主帮忙写一个可以枚举D盘下各用户创建文件的文件名,大小信息.
Steven - 2007-8-18 18:04:00


引用:
原帖由 happy_daily 于 2007-8-18 17:12:00 发表
楼主帮忙写一个可以枚举D盘下各用户创建文件的文件名,大小信息.


我试一下,今天或者明天给你答复.
Steven - 2007-8-18 20:41:00


引用:
原帖由 happy_daily 于 2007-8-18 17:12:00 发表
楼主帮忙写一个可以枚举D盘下各用户创建文件的文件名,大小信息.



写好了,这个脚本可以用作logon scirpt, 这样每个用户在登陆的时候,检索的信息将会存入本地硬盘的C:\output.txt文件中,当然你可以改为远程服务器的名字,比如[url=file://\\server1\output\output.txt]\\server1\output\output.txt[/url],但是这样的话注意远程文件夹的权限问题.

'==========================================================================
'
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.1
'
' NAME:
'
' AUTHOR: Steven , Steven
' DATE  : 2007-8-18
'
' COMMENT:
'
'==========================================================================
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oTFile = oFSO.CreateTextFile("C:\output.txt")
set objWMI = GetObject("winmgmts:")
Set oFiles = objWMI.ExecQuery ("select * from cim_datafile where Drive='D:'")
For Each oFile In oFiles
strFile = oFile.name
set colItems = objWMI.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" & strFile & "'}" & " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")
for Each objItem in colItems
    oTFile.WriteLine "文件名: " & ofile.name
    oTFile.WriteLine "创建用户: " & objItem.ReferencedDomainName & "\" & objItem.AccountName
        oTFile.WriteLine "大小: " & oFile.filesize
        oTFile.WriteLine "--------------------------------------------------------------------------"
Next
Next
oTFile.Close
WScript.Echo "完成!"



honesty - 2007-9-6 14:45:00
大家好,请帮忙写一个通过组策略删除指定的多个文件,并将删除的结果(删除了哪台计算机上的什么文件,删除与否)邮寄一封到指定的邮箱,谢谢!
这个可能有点难,辛苦大家喽
kyokofish - 2007-9-11 17:46:00
求一个脚本,在系统登陆时可以根据登陆名为其配置OUTLOOK邮件设置。
环境为2003域环境。
lovereplicate - 2007-10-20 16:34:00
高手,帮我看看这个脚本错在哪里了?
xp+sp2环境,该脚本想实现:determine the domain in which a computer belongs?
————————————————————————
strComputer="."
Set objwMIService=Getobject("winmgmts:"_
&"{impersonationLevel=inpersonate}!\\"_
&strComputer& "\root\cimv2")
Set colSettings=objwMIService.ExecQuery_
("Select * from Win32_NetworkAdapterConfiguration.")
For Each objComputer in colSettings
Wscript.Echo "System Name:" & objComputer.Name
Wscript.Echo "Domain:" & objComputer.DNSDomain
Next

————————————
运行时候报错:
行:6
字符:1
错误缺少语句
代码:800a0400
源:microsoft vbscript编译器错误
Steven - 2007-10-22 17:12:00


引用:
原帖由 lovereplicate 于 2007-10-20 16:34:00 发表
高手,帮我看看这个脚本错在哪里了?
xp+sp2环境,该脚本想实现:determine the domain in which a computer belongs?
————————————————————————
strComputer="."
Set objwM......


strComputer = "."
UserName = ""
Password = ""
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration",,48)
For Each objComputer In colItems
'Wscript.Echo "System Name:" & objComputer.Name
Wscript.Echo "Domain:" & objComputer.DNSDomain
Next
wssgily - 2007-11-29 20:03:00
楼主能不能帮忙写一个,查看单个进程的内存使用情况的帖子,在此先谢过了.
long_xiao_me - 2007-12-12 13:00:00
楼主您好:帮忙写一个XP客户端的本地文件夹授予一个域帐号的完全控制权限。

由于XP系统里有一些程序需管理员权限才能运行,以前为了省事,给域帐号授予了本地管理员权限,现在发现问题很多,用户乱装程序,木马流行。现在取消了域帐号的本地管理员权限,需要对一些需要管理员权限运行的程序的文件夹,授予域帐号的完全控制权限。

请麻烦写一个脚本,谢谢!
Steven - 2007-12-14 7:45:00


引用:
原帖由 long_xiao_me 于 2007-12-12 13:00:00 发表
楼主您好:帮忙写一个XP客户端的本地文件夹授予一个域帐号的完全控制权限。

由于XP系统里有一些程序需管理员权限才能运行,以前为了省事,给域帐号授予了本地管理员权限,现在发现问题很多,用户乱装程序,木马流......


这儿有微软现成的脚本工具.
http://support.microsoft.com/kb/825751
sohper - 2007-12-14 8:22:00
高手,:default7:
long_xiao_me - 2007-12-14 11:21:00
首先谢谢Steaven,Xcacls工具确实不错。再次感谢您的热心。来这里的收获还真大。
Steven - 2007-12-14 16:16:00
不客气:default7:
kxlkings - 2007-12-28 0:23:00
急需:(科研训练用,谢谢!!!!!!)求一个用JS编写的可以遍历一个盘或盘内一个文件夹内所有的同种文件(例如全部*.txt文件),然后全部删除,还有可不可以在写一个用JS编写的结束进程的脚本.(小弟在此多谢拉!!!!!):default7:
comet_play - 2008-2-24 16:01:00
学习了,正在为规范计算机名找办法呢。Steven写的东西很有用。谢谢!
worter - 2008-2-27 8:42:00
能不能批量加入用户的同时批量设置密码和设置用户选项为用户下一次登陆必须更改密码?有没有这样的脚本呢?
aiyugudu - 2008-3-13 13:16:00
我想要一个通过域策略彻底删除Windows自带游戏的脚本,在网上找到的都是有问题的。包括windows XP,2000,2003的我都有需要,谢谢!
long_xiao_me - 2008-3-29 11:28:00
问题如标题:域环境中,如何远程更改客户端的计算机名和IP地址

更改IP的脚本如下,用了后,只是更改了远程计算机的IP地址和子网掩码,接着报错。(这可能是IP地址更改后,网段发生变化,无法通讯所致。

但更改远程客户端的计算机名的脚本无法成功。


更改IP地址的VBS代码如下:

Set objShell = CreateObject("Wscript.Shell")
IP = InputBox ("输入新的IP地址","IP地址")
NM="255.255.255.0" '子网掩码
GW=left(IP,8) & "1"  '网关
MDNS="10.10.10.10"  '首选DNS
SDNS="10.10.10.30"  '备用DNS
msgbox ChangeIP(IP,NM,GW,MDNS,SDNS)
Function ChangeIP(IP, NM, GW, MDNS, SDNS)
  Dim strComputer, objWMIService, colNetAdapters, strIPAddress, strSubnetMask
  Dim strGateway, strGatewaymetric, strDNS, objNetAdapter, errEnable, errGateways, errDNS
  strComputer = "RemotePCName"  '远程计算机名
  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
  strIPAddress=Array(IP)
  strSubnetMask=Array(NM)
  strGateway=Array(GW)
  strDNS = Array(MDNS, SDNS)
  strGatewaymetric = Array(1)
  For Each objNetAdapter In colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
    If errEnable = 0 And errGateways = 0 And errDNS = 0 Then
      ChangeIP = "设置成功"
    Else
      If errEnable = 0 Then
          ChangeIP = "IP地址和子网掩码设置成功, "
      Else
          ChangeIP = "IP地址或子网掩码设置失败, "
      End If
      If errGateways = 0 Then
          ChangeIP = ChangeIP & "默认网关设置成功, "
      Else
          ChangeIP = ChangeIP & "默认网关设置失败, "
      End If
      If errDNS = 0 Then
          ChangeIP = ChangeIP & "DNS设置成功"
      Else
          ChangeIP = ChangeIP & "DNS设置失败"
      End If
    End If
  Next
  End Function


更改计算机名的VBS代码如下:

Dim reval
Set objnet = CreateObject ("WScript.Network")
Set R = CreateObject("WScript.Shell")
reval = InputBox ("当前的计算机名是:" & objnet.ComputerName,"输入新的计算机名")
On Error Resume Next
strComputer = "RemotePCName"  '远程计算机名
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
   
For Each objComputer in colComputers
    errReturn = ObjComputer.Rename (reval)
    If reval <> "" Then
                return=MsgBox ("你确定要重起计算机吗?",vbokcancel+vbexclamation,"注意!")
                If return=vbok Then
                        R.run("Shutdown.exe -r -t 0")
                End if
    End If
Next


大家看一下错误在什么地方,我想有可能是权限的问题,但不知如何处理。在此先谢谢大家了!
wesker - 2008-3-30 18:37:00
大大,请求帮写一个客户端迁移的脚本好么?主要用于将客户端加入域之后的桌面和应用的迁移。我知道这个难度很高。不过希望各位大大能帮帮我了解这个心愿好么?可以时vbscript或powershell 嘿嘿。谢谢了。
xuyuan - 2008-4-1 16:04:00
Windows在系统管理中的应用——
应用一:综合性示例( 含WSH、WMI等)
这该怎么写啊?
358489441 - 2008-4-8 14:58:00
楼主,帮个忙啊!我想写个脚本,但是不会所以想你帮忙。  我想要个根据用户名来批量修改IP的脚本,
12
查看完整版本: 脚本寻求帖,大家需要什么脚本的发到这个帖子里.