Board logo

标题: [其他] 批处理如何获取登陆名然后执行相应操作? [打印本页]

作者: ph221    时间: 2009-1-9 09:43     标题: 批处理如何获取登陆名然后执行相应操作?

在domain中有个组group001
登陆后获取登陆名 如果该登录名在group001中就执行a.bat 如果不在就执行b.bat   (a.bat 和b.bat在网络盘Y中)

[ 本帖最后由 ph221 于 2009-1-9 09:46 编辑 ]
作者: Batcher    时间: 2009-1-9 11:31

你说的登录名是这个不?
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Test>echo %username%
Batcher


作者: ph221    时间: 2009-1-9 11:49

就是 登陆到域的用户名
作者: Batcher    时间: 2009-1-9 11:54     标题: 回复 3楼 的帖子

你要在域控制器上查看?还是在本机查看?
作者: ph221    时间: 2009-1-9 11:55

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

E:\Documents and Settings\warehouse.EL_XG>
  我就是要warehouse这个
作者: ph221    时间: 2009-1-9 11:56

域上面 查看 然后判断 是不是在组group001里面 然后在判断 执行 a.bat  还是b.bat
作者: Batcher    时间: 2009-1-9 11:59

把这两个命令的结果贴出来看看
  1. net user
复制代码
  1. net user %username%
复制代码

作者: Batcher    时间: 2009-1-9 12:01     标题: 回复 6楼 的帖子

不知你说的“域上面”是指你的电脑登录域以后?或者你是网管,需要在域控制器上进行此操作?
作者: ph221    时间: 2009-1-9 12:04

可以显示出登录名  但是怎么判断 是不是在那个组里面呢
作者: Batcher    时间: 2009-1-9 12:06     标题: 回复 9楼 的帖子

第二个命令的结果贴出来看看?
作者: ph221    时间: 2009-1-9 12:11

已删除为了安全

[ 本帖最后由 ph221 于 2009-1-9 13:09 编辑 ]
作者: Batcher    时间: 2009-1-9 12:19

  1. net config workstation
复制代码

作者: ph221    时间: 2009-1-9 12:22

通过批处理可以 判断 一个域用户在domain中哪个组里面吗

[ 本帖最后由 ph221 于 2009-1-9 12:24 编辑 ]
作者: Batcher    时间: 2009-1-9 13:12     标题: 回复 13楼 的帖子

12楼的结果有没有显示组?
作者: ph221    时间: 2009-1-9 14:01

没有哦   听人说是弄不出来了 用批处理
作者: Batcher    时间: 2009-1-9 14:39     标题: 回复 15楼 的帖子

12楼的命令结果不能贴出来看看么?
谁说批处理写不出来?
作者: ph221    时间: 2009-1-9 14:46

E:\Documents and Settings\sgs000095.EL_SG01>net config workstation
计算机名                     \\HAPPY
计算机全名                   happy.EL_SG01
用户名                       SGS000095

工作站正运行于
        NetbiosSmb (000000000000)
        NetBT_Tcpip_{C398F681-CAF6-440F-A28B-003E9BB0B14E} (001EC9449074)
        NetBT_Tcpip_{EDB82F11-A2A9-48C6-B6AF-0D66068AD13A} (005056C00001)
        NetBT_Tcpip_{AD7966E7-1AEB-4055-B4D8-3EE1FB5A3EF4} (005056C00008)

软件版本                     Windows 2002

工作站域                     EL_SG01
工作站域 DNS 名称            EL_SG01
登录域                       EL_SG01

COM 打开超时 (秒)            0
COM 发送计数 (字节)          16
COM 发送超时 (毫秒)          250
命令成功完成。
  
我这个账号加到了 2个组里面  我想看到那个组的名字  有一个组是allow
我是想通过命令 得到 我的账号sgs000095 和这个账号所在的组 allow
作者: ph221    时间: 2009-1-11 11:24     标题: 求助 文本调用

在Z盘有个a.txt 里面内容如下:谁能帮我写个批处理文件  有以下功能:
  1. zhangsan
  2. lisi
  3. wangwu
  4. zhaoliu
复制代码
获取当前账户的用户名(域账号)
如果这个账号在a.txt里面(如zhangsan)
那么就执行 b.bat 如果不在就执行c.bat(b.bat 和c.bat都在z盘里面)
先谢谢大家了

[ 本帖最后由 ph221 于 2009-1-11 11:40 编辑 ]
作者: lorn1234    时间: 2009-1-11 14:15

  1. @echo off
  2. for /f "delims=" %%i in (a.bat) do set name=%%i&&call :s
  3. :s
  4. set a=%name%
  5. net user %a% >nul 2>nul && call b.bat ||call c.bat
复制代码

作者: shqf    时间: 2009-1-11 15:31

 楼主还是没说清楚呵。人家的回贴你看了吗?BATCHER第7楼要你列出两个命令的结果,唉,你就是不列。叫人家怎么帮你呵?
 BAT是很强大的,你这个问题根本不算什么问题,只是你没说清楚罢了。
作者: ph221    时间: 2009-1-11 16:09

都贴出来了  只是 他看完后 我删了
作者: pdanniel66    时间: 2011-3-12 19:42

(1) Use domain account that owns "domain admins" or "account operator"group privilege
  1. net group /domain group001| find /i  "login-username"  && a.bat || b.bat
复制代码
(2) I use the localgroup to test the above script due to I haven't  domain controler at home.
  1. net localgroup users|find /i "poiuy123" > nul && echo poiuy123 account exist || echo poiuy123 acount not exist
复制代码
result as below :
poiuy123 account exist
  1. net localgroup users|find /i "kkkkk123" > nul && echo kkkkk123 account exist || echo kkkkk123 acount not exist
复制代码
result as below :

kkkkk123 acount not exist

(3) above  testing just for your reference.

[ 本帖最后由 pdanniel66 于 2011-3-12 19:51 编辑 ]




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2