重新发掘Net User Net工具的用户账号管理功能简直就是一个多面手

一些Windows最好的命令行工具,你是不会在Resource Kit,Support Tools里面,或是Web上找到的,因为它们就内置在Windows里面。Net命令就是这么一款功能强大而又常常在我们鼻子下面被忽视掉的极好例子。我在上一期的文章中,向你展示了如何使用Net Share用于文件共享。其实Net Share还有一个兄弟命令——Net User——它在建立、删除和管理本地以及域用户账号时同样非常有用。

深入语法


让我们先从Net User的基本语法着手。以下命令使用/add选项创建了一个用户账号:

net user <username password> /add /domain 

如果没有/add选项,Net User会在现有的账号上进行操作。/domain选项告诉命令与一个域控制器(DC)联系并创建一个域账号,否则就是一个本地账号(当然,如果是在一个DC上运行该命令,你会自动得到一个域账号)。所以,例如:

net user joe hi /add 

会创建一个名为joe的本地用户账号,它的密码是hi。而命令:

net user jane wolf /domain 

会与一个DC联系并重置Jane的密码为wolf。需要注意的就是,这个命令执行了一个密码重置,而不是修改,我还不知道有命令行工具可以实现密码修改。

如果你是在创建一个活动目录(AD)账号,那么该账号的登录名会是name@domainname。所以,在bigfirm.com域成员的一个系统上输入:

net user wally wallypassword /domain /add 

会创建一个用户账号,它的老式Windows NT 4.0登录名是bigfirm\wally,但它的AD格式用户主体名称(user principal name,UPN)是wally@bigfirm.com。你可以跳过密码,像下面这样:

net user sally /add /domain 

但是这样做会使用空密码创建一个账号,所以账号很可能会创建失败并且显示一条错误信息,因为我们大部分人都在网络中使用了最低密码要求。和其它的Net命令一样,是不区分大小写字母的——当然,除了密码以外。

修改属性

你可以使用几个选项来修改一个账户的属性。/active:[yes|no]选项可以让你启用或禁用一个账户。/comment选项可以让你添加一个账号的注释信息。如果注释文本中包含了空格或是其它标点符号,一定要用双引号把它引起来,如下所示:

net user lila /comment:"accounting person" /add 

要删除注释,你只需要重新输入这个命令但在/comment选项后面保持为空即可。

/homedir选项让你指定一个UNC路径到用户的主目录;和它类似,/profilepath选项让你指定一个UNC路径到用户的漫游配置文件。例如,如果你想要账号Lila拥有一个存储在服务器fileserver27上,共享\profiles下面\Lila文件夹中的漫游配置文件,并让Lila的默认目录是服务器fileserver04上共享名称为\homes下的文件夹\lilastuff,你应该修改她的账号如下:

net user lila /profilepath:"\\fileserver27\profiles\lila" /homedir:"\\fileserver04\homes\lilastuff" 

当Lila登录时,她的工作站将从服务器fileserver27上取得漫游配置文件。然后,她无论何时打开命令行提示都不会看到

“C:\Documents and Settings\Lila”,而只会看到一个Z盘的提示符。而看到驱动器Z的原因就是工作站自动映射Z盘到了“\\fileserver04\homes\lila”,就像是她输入了下面的net use命令一样:
net use Z: \\fileserver04\homes\lila 

和/comment选项一样,你可以只输入/homedir或者/profilepath选项并让引号后为空来删除它们的值。如果你曾经使用过微软管理控制台(MMC)Active Directory用户和计算机管理单元来创建一个漫游配置文件或是主目录,那么在创建这些信息时,你可能对使用%username%这样内置变量已经很熟悉了,但是它们并不能工作在Net User命令中。

许多人都会给用户账号指定一个登录脚本。Net User的/scriptpath选项提供了这项功能,它指向Netlogon共享——每个DC都会包含的一个共享——中的一个文件。例如,指定lilastart.cmd作为Lila的登录脚本意味着Lila的登录脚本是Netlogon共享下使用该名称的一个文件。指定\scripts\lilastart.cmd则意味着这个脚本所在的文件夹是\scripts,但它还是在Netlogon共享中。

/fullname选项让你给Active Directory用户和计算机管理单元中的用户“显示名称”指定一个值。使用/workstations选项,你可以限制一个给定账号可以登录的工作站。要限制Lila的账号只能登录到名为PCWS55的机器上,你可以输入:

net user lila /workstations:pcws55 

要指定多台工作站,你只需要把它们包含到一个列表中用逗号分隔开即可。你可以把这个列表用双引号引起来,但是不要在逗号后加空格。你可以指定多达8台工作站。/passwordchg:[yes|no]选项控制一个用户是否可以修改他或她的密码。奇怪的是,你并不能使用Net User来设定一个账号密码永不过期。

添加/delete选项可以删除一个账户,因此

net user joe /delete 

将会删除一个名为Joe的本地帐号,并且

net user jane /domain /delete 

将会联系一个DC并删除Jane用户账号。单独使用Net User命令会列出你的用户账号,而Net User username会报告一个指定用户账号的相关信息。

让我们用一个很酷的例子作为结尾,它将演示Net User如何解决一个看起来很棘手的问题。最进我需要在一个域中建立501个用户账户。我不关心这些账号是什么,我只需要尽快有501个虚拟账户。为了达到这一目的,我结合使用了Net User和命令行工具For,如下所示:

for /l %r in (1,1,501) do 
  net user user%r password%r /add 

顷刻之间,我就有了501个账号。如果你只是想知道我为什么需要这些账号,只需要看一下微软的知识库文章http://support.microsoft.com/default.aspx?scid=kb;en-us;281923。我保证你马上就会对Net User有需要。

分享到