首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Windows 9X | Linux&Uinx | Windows Server | 其它操作系统 | Vista | FreeBSD | Windows 7 |
首页 > 操作系统 > Windows Server > 5个管理本地组的脚本 > 正文

5个管理本地组的脚本

出处:winitpro 作者:winitpro 时间:2011-5-27 10:46:50

在我的开发和生产环境中,域或服务器本地安全组是权限分配的关键。在少数场合下,我会为单独的用户授权,但一般情况下,都是遵从最佳实践,就是将用户ID加入到组中。要移除一个用户的入口,我只需从组中删除该用户的账号即可。脚本使你可以快速地列举组成员,因此可以简化本地组的管理,包括增加和删除成员以及更改组的属性。你可以将脚本与一些本地组相关的工具联合使用,比如:Local、Findgrp、Cusrmgr、MemberOf,和LG等。随后的FAQ会帮助你为特定的场合识别最佳的工具。这些FAQ包含5个脚本,用来展示如何使用这些工具。范例脚本并没有使用这些工具的全部功能,因此要更详细地了解这些工具的功能,你需要阅读每一个工具的在线帮助。你可以访问Windows Scripting Solutions站点,下载这些脚本以及定制指导。Local、Findgrp和Cusrmgr等工具是Microsoft Windows 2000 Professional Resource Kit和Microsoft Windows 2000 Server Resource Kit.的一部分。微软经常将来自过期资源包的工具作为公共领域软件发行。但不幸的是,Local、Findgrp和Cusrmgr工具没有包含在当前的公共域中,因此你需要获取一份资源包拷贝,或者经常检查微软站点直到这些工具被发布。MemberOf和LG工具可从Joeware.net站点获得。

global和local工具现在对于列举组还有用吗?在我的环境中需要一个脚本,它可以列出给定PC和服务器上的本地Administrators、Backup Operators和Power Users组的成员。我应该用什么工具?如何将结果记录到一个文件中?

本地工具在今天仍然很实用,我经常利用它们。像大多数管理员一样,我不再使用global工具。global和local工具来自于Win2K之前的资源包。local工具的一个限制是它不能工作于嵌套组,因此单一的local命令无法确定嵌套组的成员。有时这个限制很严重,有时也无关紧要。同时,local工具仅是一个查询工具,不能编辑组的设置。不过,在特定的场合下,这个传统工具还是有价值的。关于你所需要的脚本,你可以用几种方法枚举组成员。你没有说明要处理多少台机器,因此列表1所示的GetAdministratorsAndOtherKeyGroups.bat脚本展示了两种使用local工具检查组成员的不同方法。列表1的Callout A适用于检查大数量PC或服务器的组成员。Callout B则适用于小数量机器。
列表1: GetAdministratorsAndOtherKeyGroups.bat

Set InputList=D:\serverslist.txt
Set LocalLoc=D:\Local.exe
Set OutFile=D:\OutputFile.txt

:: BEGIN CALLOUT A
:: BEGIN COMMENT
:: For a large number of PCs or servers, use For /f and parse an input list.
:: END COMMENT
For /f "tokens=*" %%i in (%InputList%) Do (Set Server=%%i) & (Call :Next)
:: END CALLOUT A

:: BEGIN CALLOUT B
:: BEGIN COMMENT
:: For a small number of machines, use the For /d (currently commented out).
:: END COMMENT
:: For /d %%i in (ServerA ServerB ServerC ServerD ServerE ServerF 
  ServerG ServerH) Do (Set Server=%%i) & (Call :Next)
:: END CALLOUT B

Echo Run Complete
Goto :EOF

:Next

Echo %server% ******************** >>"%OutFile%"
Echo Administrators Group>>"%OutFile%"
%LocalLoc% "Administrators" \\%server%>>"%OutFile%"
Echo.>>"%OutFile%"
Echo Backup Operators Group>>"%OutFile%"
%LocalLoc% "Backup Operators" \\%server%>>"%OutFile%"
Echo.>>"%OutFile%"
Echo Power Users Group>>"%OutFile%"
%LocalLoc% "Power Users" \\%server%>>"%OutFile%"
Echo.>>"%OutFile%"

Goto :EOF

我需要更改一些本地组的描述。我们在组描述中包含了组所有者的电话号码。当我们需要更改电话号码时,我们必须定位所有用户拥有的组并手工更改电话号码。我不希望更改整个注释,因为它包含其它组信息。我认为可以使用一个脚本来更改电话号码,从而节省时间,但是我应该使用什么工具,如何使用脚本更改电话号码,同时不丢失注释字段内的其它数据?

你可以使用LG工具,它是来自Joeware.net的一个本地组编辑工具。LG工具与Local工具机理类似。列表2所示的CommentReplace.bat脚本展示了如何使用这个工具。这个脚本查找你在列表2的callout A中指定的电话号码。脚本使用Set substitution命令用新的号码替换旧的电话号码字符串,你可以在callout B中看到这个步骤。检查LG工具的在线帮助菜单可以了解更多功能。

列表2: CommentReplace.bat

Set LGgLoc=D:\LG.exe
For /f "tokens=1,* delims=:" %%i in 
:: BEGIN CALLOUT A
  ('%LGgLoc% 
\\work1 -comment -q ^| Find "555-234-1234"') 
:: BEGIN CALLOUT A
  Do (Set Group=%%i) & (Set Comment=%%j) & (Call :ChangeCom)
Goto :EOF

:ChangeCom
Set Group="%Group%"
Set Group=%Group: "="%
:: BEGIN CALLOUT B
Set NewComment=%Comment:555-234-1234=505-234-1234%
:: END CALLOUT B
%LGgLoc% %Group% -setcomment "%NewComment%"
Goto :EOF

 

我希望编写一个简单脚本,以便在用户咨询权限问题时,我们的桌面帮助技术人员可以查询或比较用户组成员。我的脚本应该使用什么工具,有什么办法让脚本对于不懂脚本的用户更友好?

传统上,Findgrp命令是查询用户组成员的最好工具。像Local工具一样,Findgrp工具写于Win2K以及嵌套组出现之前,因此它只能列出直接组成员。但是有时你也只需要这些。我不清楚你要为桌面帮助技术人员提供多少细节,因此我写了两个脚本。列表3所示的FindUserLocalGroups.bat,使用Findgrp工具查询直接组成员。列表4所示的MemberOf-SorterandCounter.bat使用来自Joeware.net的MemberOf工具同时查询直接组成员和嵌套组成员。两个脚本都使用Set /P命令,它提示用户进行输入,然后将输入指派到指定的变量。例如,FindUserLocalGroups.bat显示一个提示:reads Type the domain\UserID and press Enter,然后将输入的域和用户名指派到fgname变量。桌面帮助技术人员可以键入或粘贴域和用户名,从而在屏幕上获得易于查询的规范格式的结果,也可以将其结果粘贴入一个邮件、文档或电子表格中。两个脚本也使用Sort命令按字母顺序排列组名称以便于查看。

列表3: FindUserLocalGroups.bat

Set FindgrpLoc=D:\Findgrp.exe
@Echo Off
Set /P fgname=Type the domain\UserID and press Enter: 
Echo.
Set /P fgdomain=Type the domainname or 
\\servername you want to search
  and press Enter: 
Echo.
Echo User "%fgname%" belongs to the following local groups on %fgdomain%:
  %FindgrpLoc% %fgdomain% "%fgname%" /L /Q|Sort
Echo.
Echo Press any key to Exit... & Pause >NUL
Goto :EOF

列表4: MemberOfSorterandCounter.bat

Set MemberOfLoc=D:\MemberOf.exe
@Echo Off
Set counter=0
Set domID=
Set /P domID=Type the domain\UserID and press Enter: 
Echo.
Echo Please Wait....
If Exist "%temp%\memof.txt" Del "%temp%\memof.txt"
For /f "tokens=1,2,3,4 delims=[]" %%i in ('%MemberOfLoc% -q -u %domID%')
  Do (Set group=%%l) & (Call :Next)

For /f "tokens=*" %%i in ('Sort^<%temp%\memof.txt') 
  Do (Set group=%%i) & (Call :Next2)
Echo.
Echo Press any key to Exit... & Pause >NUL
If Exist "%temp%\memof.txt" Del "%temp%\memof.txt"
Goto :EOF

:Next
Echo %group%>>"%temp%\memof.txt"
Goto :EOF

:Next2
Set /A counter=%counter%+1
Echo %counter%) %group%
Goto :EOF

我们的公司进行了重组,需要更改域本地组的名称。我担心在GUI界面中手工进行操作会很费时并容易出错。请问如何使用脚本进行更改?

在Cusrmgr工具出现之前,用脚本进行这些更改是非常困难的,但是现在非常简单。我编写了ChangeLocalGroupNames.bat脚本,如列表5所示,它可以帮助你更改组名称。你需要创建一个逗点分割值(CSV)输入列表,第一列是旧的组名称,第二列是新的组名称。由于是进行批量更改,因此在对全部组列表执行脚本之前,应该彻底校验输入的准确性并用少量组进行测试。我加了一个日志文件,你可以查看每个改名操作的成功与错误。Cusrmgr工具也可以执行其它组更改功能,比如重设口令。

列表5: ChangeLocalGroupNames.bat

Set InputList=D:\grouplist.txt
Set CusrmgrLoc=D:\cusrmgr.exe
Set Log=D:\grouplog.txt

:: BEGIN COMMENT
:: For renaming a large number or groups, use an input file with commas
:: separating the old and the new group names.
:: END COMMENT
For /f "tokens=1,2 delims=," %%i in (%InputList%) Do %CusrmgrLoc% 
  -m 
\\work1 -rlg "%%i" "%%j" |Find "Renaming">>"%Log%"
Echo Run complete
Goto :EOF

试运行时机
现在你拥有了FAQ提供的5个脚本。我在运行Windows XP Service Pack 2(SP2)的机器上进行了测试。在将它们应用到实际环境中之前,你应该总是在测试环境中测试你的脚本。这些脚本以及它们所使用的本地组工具可以节约查询和更改本地组以及用户成员信息的时间,不管你的环境规模是大还是小。

相关文章 热门文章
  • 将域用户或域组加入本地组的脚本
  • 禁用Windows Vista中的本地组策略
  • “http 500内部服务器错误”的解决方法
  • 利用Windows 2000 Server的RRAS实现VPN服务器
  • 用凤凰万能启动盘解决本地/域管理员密码丢失
  • Win2003 Server企业版安装配置
  • Active directory 灾难恢复
  • Windows 2000/03域和活动目录
  • 如何在vmware4上创建windows 2003群集
  • MSI文件制作全过程
  • Win2000命令全集(一)
  • Windows 2000/AD技巧
  • 此系统的本地策略不允许您采用交互式登录解决方法
  • Win2000路由的安装与设置实现不同网段互通
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号