Windows tips小技巧


自从 Windows 2000? 以及
Active Directory(Microsoft Windows? 2000 操作系统的目录服务)面世以来,在与 Microsoft 合作伙伴交往的亲身经历中
,我积累了许多这样的窍门,并已收集了其中一些与合作伙伴们共享。
我知道窍门是管理员的良师益友,所以我写出了下面几个窍门,当我在客户公司工作时,这些窍门给
了我莫大的帮助。本专栏文章讨论这些能节省时间的工具和窍门中的一部分,它们的主要作用是使我
们在运行 Windows 2000 服务器和工作站(特别是在部署了 Active Directory 时)时更得心应手。
打印机的部署
众所周知,Windows 2000 如今在处理打印机配置方面已有了一些增强,如:用于管理打印机和打印作业的
网页 http://machinename/printers;在 Active Directory 环境中从开始 | 搜索 | 打印机即可搜索打印机;以及只需从搜索
结果中选择“连接”或双击该打印机即可安装等等。
但如果您并不熟悉 Windows 2000 资源工具包提供的工具,在配置和部署用于 Windows 2000 的打印机时就要花
一些工夫了。
资源工具包中第一个可利用的脚本就是 prnmgr.vbs。该脚本可用于从命令行向计算机创建/添加打印机,
包括指定打印机驱动程序、位置等。基本语法如下:
cscript prnmgr.vbs -a -b "My new printer" -m "HP LaserJet 4M" -r "lpt1:"

该命令可以创建一个新的打印机,驱动程序为 HP LaserJet 4M,端口为 LPT1。
请注意从命令行运行脚本时,需要在 vbs 文件前添加 cscript.exe 命令。Cscript 命令是 WSH(Windows 脚本运行
主机)的命令行执行方式,WSH 是一个控制器,用于在 Windows 2000 环境中运行脚本。可以从命令行使
用 prnmgr.vbs 在您公司的计算机上远程配置打印机,也可以从“登录脚本”中运行此命令,在登录过
程中自动创建打印机。
另一个有用的脚本叫做 clone.vbs。Clone.vbs 可用来将打印机从一台计算机克隆到其他计算机。如果您希
望将相同的打印机用于大量计算机,这个脚本十分奏效。它有点像打印机的“SysPrep”机制。您可
以试着这样做:
在一台工作站上配置所有需要的打印机(或者干脆使用 prnmgr.vbs)。
然后转到命令行,在资源工具包目录下运行以下命令:
cscript clone.vbs /?

并查找可用来克隆打印机驱动程序、端口和形式的各种选项。Clone.vbs 将创建所需的脚本和批处理
文件,供稍后克隆打印机时使用。默认情况下,创建的内容保存在当前目录下,
如:\program files\Resource Kit。您最好将 clone.vbs 文件先复制到一个空文件夹中,然后再着手运行该命令以
创建复制脚本。
下一步,指定所需选项,运行 clone.vbs 脚本。运行完毕后,检查为本台计算机上安装的每台打印机
所创建的脚本,以及同时创建的批处理文件(供将来自动按顺序运行创建的所有脚本)。之后,
如果您在其他计算机上运行该批处理文件(或分别运行创建的每个脚本),它将按照您指定的选
项信息(如打印机端口或驱动程序)自动创建在最初的计算机上安装的打印机。
Windows 2000 资源工具包还有其他一些可用于配置和部署打印机的工具(如 Prnadmin.dll),您可以根据需
要进一步查看。
获取用户信息
除了基于 UI 的用户管理工具,还有很多现成的工具和脚本可协助查询、创建、修改和删除目录中
的用户对象。
您应该仔细查看 Windows 2000 产品 CD 中的支持工具和 Windows 2000 资源工具包,至少了解其中的一部分工
具,因为它们有时确实能让您的工作轻松许多。以下是其中一些工具的简要说明:
Windows 2000 资源工具包提供了一些可用于处理用户的脚本。
例如,可使用 ClassifyMembers.vbs 列出容器/OU 或域中的对象。
而 ListProperties.vbs 脚本可以显示对象属性和信息。它可以同 WinNT:// 名称空间一同使用,适用于 Windows NT、
成员计算机或工作站;也可以同 LDAP:// 名称空间一同使用,用于 Active Directory 域控制器。请注意该脚本
的语法区分大小写。
如果要列举组成员身份,可以利用以下几种工具,如:FindGrp.exe、IfMember.exe 和 ShowGrps.exe。每种工具的
运行结果各有不同,您最好在运行之后比较它们的输出结果。例如,ShowGrps.exe 也可以查询计算机对
象的组成员身份(试着执行:
FindGrp.exe \$

并查看输出结果)。如果要搜索满足特定条件的用户,可以尝试使用 chkusers.vbs。该脚本将在域中查
找满足指定条件的用户。例如:
Cscript CHKUSERS.VBS /A:WinNT://YourDomainName /P:FullName;Description
/C:"((LastLogin:>4/3/01 or LastLogin:<8/4/01) and AccountDisabled:=False)"

该脚本将输出上次登录时间介于 2001 年 4 月 3 日和 2001 年 8 月 4 日之间的所有活动用户的全名和说明。
还可以在支持工具中找到 LDIFDE.exe,用于批量导入和导出 Active Directory 对象。使用 LDIFDE 可以将新用户
记录导入目录,或将特定用户的特定信息导出到一个文本文件中。LDIFDE 默认采用的是输出模式(
从目录中读取信息)。如果添加了 -i 选项,则还可以将更改写入目录(请参阅 Microsoft 知识库文章
Q237677: Using LDIFDE to Import and Export Directory
Objects to the Active Directory,“使用 LDIFDE 向 Active Directory 中导入或从中导
出目录对象”)。另外,如果只想对特定 OU(组织单位)中的所有用户导出和提取特定的细节,
如用户名、职务和登录名,可以运行以下命令:
ldifde -f C:\ldif\ExportUsers.ldf –s SERVERNAME -
d "OU=YourOUname,dc=YourDomainName,dc=com" -p subtree -
r "(objectClass=User)" -
l "cn,givenName,Title,SamAccountName"

LDIFDE 使用 LDF 文件格式。您可以在 Microsoft 知识库中了解到更多关于 LDIFDE 的信息,只需访问
http://support.microsoft.com,在其中的搜索页中搜索“LDIFDE”即可。
实用的窍门,广而告之. . .
好了,现在我还有一些一般常识性的窍门要告诉大家,希望大家广而告之。
在 Windows 2000 Professional 计算机上运行 Windows 2000 Server 管理工具时,一般都需要从
Windows 2000 Server CD(或从服务器本身)运行 /i386 文件夹中的 adminpak.msi 文件。不过...如果我只需要
Active Directory 管理工具,或只是群集管理器,而不是全部 MMC,那又该怎么办呢?别担心,您可
以使用 msiexec.exe 从 adminpak.msi 文件中只提取您需要的 MMC 管理单元,语法如下:
msiexec /i adminpak.msi ADDLOCAL= /qb

例如:
msiexec /i adminpak.msi ADDLOCAL= FeADTools /qb

(其中,FeADTools 是“Active Directory 工具”的缩写。该命令只安装与 Active Directory 有关的三个 MMC 管理单
元)。
其他缩写如下所示:
FeRRASConsole - 路由和远程访问
FeDHCPConsole - DHCP
FeDNSConsole - DNS
FeDFSConsole - 分布式文件系统
FeWINSConsole - WINS
FeTAPIConsole - 电话服务
FeACSConsole - QoS 许可控制
FeCERTConsole - 证书颁发机构
FeClusterConsole - 群集管理器
FeCMAKConsole - 连接管理器管理工具包
FeIASConsole - Internet 验证服务
FeIISConsole - Internet Information 服务
FeRSConsole - 远程存储
FeTSClientConsole - 终端服务客户端
FeTSMgrConsole - 终端服务管理器
如果准备在您的域中创建大批的测试用户帐户或在工作站上创建本地帐户,可以使用 FOR 和 Net User 命
令“速战速决”完成此任务,无需编写脚本或任何代码。例如,如果您从命令行键入:
FOR /L %i in (1,1,500) DO NET USER MyUser%i /ADD

结果将创建 500 个新用户,分别命名为 MyUser1、MyUser2...,依此类推。
如果希望名称更有意义,或更容易区分,且没有先后排序,那么还可以将 FOR 命令与 /F 一起使用,
并指定一个列出了您想导入到域中的一组名称的文本文件。 显而易见,这个窍门也适用于
Windows NT 4.0 域和成员服务器或工作站,因为它使用了向后兼容的 NetXXX API。
Windows 2000 资源工具包中有多种不同的操纵脚本。例如,要想控制某台计算机上的服务,可以使用
service.vbs。该脚本不仅可以列出所有服务,还可以停止、启动、删除和安装服务。
还是在此资源工具包中,您可以通过 share.vbs 来控制计算机资源的共享。该脚本可以列出、创建和
删除计算机资源的共享。
您是否想知道启动计算机时运行了哪些命令和程序?很容易,资源工具包中的 startup.vbs 可以列出有
关指定计算机(即使是一台远程计算机)的所有启动命令,包括运行该命令的用户及运行依据的
确切语法。不过,我也承认以前从 msconfig.exe 就可以看到该信息,但 Windows 2000 并未包含该工具。好
在 Windows XP Professional 上又重新使用了 msconfig.exe。
如果运行 Windows 2000 或 Windows XP Professional,您可以将新添加的打印机发布到 Active Directory。但是,如果操
作系统不是 Windows 2000(如 Windows NT 4.0 成员或 Windows 98),那又该如何向 Active Directory 发布打印机呢?您
可以使用 pubprn.vbs 发布 Windows 2000 或 Windows XP 之外的 Windows 版本共享的打印机。如果安装了 Windows 脚本
运行主机,则可以在 System 文件夹中找到该脚本。
例如:
cscript pubprn.vbs ServerName "LDAP://ou=MyOrgUnit,dc=MyDomain,dc=com"

使用该脚本可以将特定计算机(由 ServerName 指定)上的所有打印机发布到 Active Directory 域目录树的指
定组织单元内。有关如何使用和获取 pubprn.vbs 的详细信息,可参阅 Microsoft 知识库文章
Q234619: Publishing a Printer in Windows Active Directory(在 Windows Active Directory 中发布打印机)。
每次执行“立即复制”操作在域控制器之间触发复制操作时都需要进入“Active Directory 站点和服务”,
如果您对此已不胜其烦,则不妨尝试 Windows 2000 支持工具 RepAdmin.exe,依照以下命令执行:
repadmin /syncall /p /e /d servername.domain.com /u:%account% /pw:%pwd%

使用 Windows 2000 资源工具包的 exec.vbs 工具可以从命令行运行和中止进程。例如,运行:
cscript exec.vbs /E calc

将在您的计算机上创建一个新的 Windows 计算器进程。也可用它运行远程计算机上的进程。要中止
进程,可以运行:
cscript exec.vbs /X ProcessIDNumber

Process ID Number 可通过 ps.vbs 找到,该脚本可列出所有进程和相应的 ID。同样,利用 Windows 2000 支持工
具 TList.exe 和 Kill.exe 也可以运行和中止进程。Tlist.exe 大致相当于 ps.vbs(列出进程),而 Kill.exe 与 exec.vbs /X
的运行结果相同。
在处理进程的同时,可以使用资源工具包中的 top.exe 从命令窗口实时监视进程的执行。只需运行
top.exe,并启动一个新的进程,或频繁移动鼠标,您会注意到命令窗口中的变化。
默认情况下,许多诊断事件处于关闭状态,以防事件查看器负载过重。但如果出于故障诊断目的,
则最好打开与 Active Directory 有关的多数事件(如在诊断“复制”、“LDAP 操作”时)。可以在以下目录
中查看域控制器的注册表设置:
HKey_Local_Machine \System \CurrentControlSet \Services \NTDS \Diagnostics。

在此可以找到各种诊断事件,将设置改为 1 (启用)即可打开这些事件。
谈到事件,是否可以将“自己的”事件注册到事件查看器中,并指定自定义的事件源和说明?没
问题,这并不是只有开发人员才能做的事情。利用一个名为 LogEvent.exe 的资源工具包工具就可以做
到这一点。尝试运行以下命令:
logevent -s I –r "Test" "THIS IS A TEST"

打开应用程序日志,您可以在事件详细资料中看到一个属于信息 类的新事件,事件源为“Test”,
说明部分为“THIS IS A TEST”。可以随意修改事件类型、ID、类别编号等。只需运行 logevent.exe /? 即可找
到不同的选项。您可以在登录脚本或其他组织性操作中使用该命令,以便将自定义事件记录到特
定计算机的事件日志中。
想要在远程计算机上打开本地组策略的 MMC 吗?只需转到开始 | 运行,再键入:
gpedit.msc /gpcomputer: "Computername"

(其中 computername 是远程计算机的 NetBIOS 名称)。
我的窍门就介绍到这里。肯定还有更多可以和大家分享的窍门,但我希望已介绍的这些对您能有
所帮助,让您的 Windows 2000 管理工作更轻松。

« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3