中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-13 20:08
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 关于NET USER 的问题 查看 3,385 回复 15
楼 主 关于NET USER 的问题 发表于 2006-10-09 22:04 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 46
发帖 19
注册 2006-09-28 20:43
19年会员
UID 63949
状态 离线
我想做个BAT去添加本地账号,但是不知道如何在命令行下修改"密码永不过期"的选项.

我的CMD是net user qgp password/add /active:yes /expires:never /passwordchg:no /passw
ordreq:yes


顺便问下如果用IF判断是否存在qgp用户应该如何操作.谢谢了.
2 发表于 2006-10-10 00:02 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 46
发帖 19
注册 2006-09-28 20:43
19年会员
UID 63949
状态 离线
Netuser is a freeware command line / batch program that will rename a user account.

usage: netuser username <settings>

<settings>:

download from here
http://www.jsifaq.com/dl/netuser.zip

/name:newname
/pwnexp:{y|n} sets Password Never Expires

Examples:

netuser Administrator /name:"My Domain Admin"

netuser "John Doe" /name:DoeJ
3 发表于 2006-10-10 02:54 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

1、net user qgp password/add /active:yes /expires:never /passwordchg:no /passwordreq:yes

其中,红色的部分是修改密码永不过期的选项,其值可以是never,也可以指定一个日期,就是到这天就过期了,比如10/10/08。

2、可以用if判断来实现判断是否存在qgp用户是否存在。

@echo off
for /f %%i in ('net user ^| find "qgp"') do (
if not "%%i#"=="#" echo 存在qpg这个用户。& goto :lxm
)
echo 不存在qgp这个用户。
:lxm
pause


但是这个代码有一定的局限行,如果还有一个系统帐户名为qgpabc的用户的话,也会报有这个用户的。
4 发表于 2006-10-10 06:20 ·  中国 浙江 衢州 电信
银牌会员
★★★
积分 1,270
发帖 548
注册 2004-05-31 00:00
22年会员
UID 25754
性别 男
状态 离线
这个for与if的功能确实强大,不多试几下不能理解透切。
5 发表于 2006-10-10 08:37 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
判断帐户是否存在的两段代码:


绝对不会出错的代码:

@echo off
net user qgp >nul 2>nul && echo 存在该用户 || echo 用户不存在.
pause



有一定局限性的代码:

@echo off
set trom=1
for /f "skip=4 tokens=1-3" %%i in ('net user') do (
if not "%%i"=="" if not "%%i"=="命令成功完成。" if "%%i"=="qgp" echo 用户存在. & set trom=2
if not "%%j"=="" if "%%j"=="qgp" echo 用户存在. & set trom=2
if not "%%k"=="" if "%%k"=="qgp" echo 用户存在. & set trom=2
)
if "%trom%"=="1" echo 用户不存在.
pause
6 发表于 2006-10-10 09:22 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

pengfei兄的思路果然开阔,第一个 代码中的“net user qgp >nul 2>nul”以及“&&”和"||"使用得相当巧妙,而第二个代码也是一种比较新颖的思路~

学习中——————
7 发表于 2006-10-10 19:52 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 46
发帖 19
注册 2006-09-28 20:43
19年会员
UID 63949
状态 离线
Originally posted by lxmxn at 2006-10-10 02:54:

1、net user qgp password/add /active:yes /expires:never /passwordchg:no /passwordreq:yes

其中,红色的部分是修改密码永不过期的选项,其 ...



更正一下这个EXPIRES是账号的过期时间,而不是密码的过期选项.
8 发表于 2006-10-10 19:53 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 46
发帖 19
注册 2006-09-28 20:43
19年会员
UID 63949
状态 离线
pengfei 兄,能解释下你的第一段代码吗?
9 发表于 2006-10-10 23:06 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
第一段代码很简单, 就是使用net user来列出用户, 如果用户存在就会执行成功, 反之返回2. 利用这一点就能够非常准确地判断用户是否存在了.

而第二段代码的算法是, 列出所有的用户名, 然后判断用户是否存在. 这里有局限性是因为如果用户名有空格就会提示用户不存在.
10 发表于 2006-10-11 00:33 ·  新加坡 Verizon通讯公司UUNet互联点
初级用户
积分 46
发帖 19
注册 2006-09-28 20:43
19年会员
UID 63949
状态 离线
pengfei 的解释太经典了
11 发表于 2006-10-12 10:02 ·  中国 上海 黄浦区 电信
初级用户
积分 46
发帖 19
注册 2006-09-28 20:43
19年会员
UID 63949
状态 离线
@echo off
echo Testing your network...
ping www.google.com -n 2 >nul 2>nul && echo Site1 is online || echo Site1 network down

ping www.go12ogle.com -n 2 >nul 2>nul && echo Site2 is online || echo Site2 network down

Pause


大家可以用这个代码去做测试.
12 发表于 2006-10-14 02:43 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by pengfei at 2006-10-10 23:06:
第一段代码很简单, 就是使用net user来列出用户, 如果用户存在就会执行成功, 反之返回2. 利用这一点就能够非常准确地判断用户是否存在了.

而第二栮..


  呵呵,试了一下,不能在CMD下面建立含有空格字符的用户,但是在lusrmgr.msc里面却可以`
  
  看来WIN都做到的事情,在CMD下不一定可以做到哦``
13 发表于 2006-10-14 02:44 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
用户名和用户全称是不一样的

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
14 发表于 2006-10-14 04:13 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by lxmxn at 2006-10-14 02:43:


  呵呵,试了一下,不能在CMD下面建立含有空格字符的用户,但是在lusrmgr.msc里面却可以`
  
  看来WIN都做到的事情,在CMD丠...

不能建立空格的吗? “”
15 发表于 2006-10-14 12:47 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
RE:he200377


  呵呵,多谢提醒,忘记还可以用引号括起来了,看来我还没有做足够多的测试。
论坛跳转: