刚使用Active Directory的常见问题(2)

刚使用Active Directory的常见问题(二)。我们使用windows 2003 AD。如何检查我的网络内部的客户端电脑:
1、已经加入域
2、并且用户也使用域账户登陆了机器。

回答:1、如何检查客户端电脑已经加入网域。
在服务器端检查:您可以在DC上的管理员工具中运行Active Directory Users and Computers,展开域节点,展开Computers,初始所有的加入域的计算机都会列在这个节点下。在客户端检查: 打开我的电脑的属性值,切换到“Computer Name”,您会看到当前计算机属于域或工作组。您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404552/

2、并且用户也使用域账户登陆了机器。
回答:您可以通过auditing policy来监控当前域用户登录的相关信息。具体信息请参考以下文档:

Audit logon events
http://technet2.microsoft.com/windowsserver/en/library/6847e72b-9c47-42ab-b3e3-691addac9f331033.mspx?mfr=true

Chapter 3: Audit Policy
http://www.microsoft.com/technet/security/guidance/serversecurity/tcg/tcgch03n.mspx

1、 用户加入域的机器名会保存在 computers OU中,但是当用户退出网域,此OU并不更新,仍然会保留该电脑名。(所以,我们判断此OU中的成员是加入过网域的机器,但是当前是否仍在域中,如何判断呢?)您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404552/
答:如果该计算机被正常退出domain加入workgroup中的话,它会显示为disable(标有红X)的状态。同时,您也可以使用dsquery命令找出当前domain中有多少台机器几周内没有登录域
dsquery computer -inactive <NumWeeks>
该命令会找出当前domain中至少NumWeeks个礼拜没有登录过域的机器。

2、我想了解谁登入了网域,需要查log,这各方法不是很方便。我们人员很多,查起来会比较繁琐。而且log日至需要每一条都进入才能看到内容,并不能提炼成一个登入网域的人员列表。
答:同样您可以通过dsquery检查当前domain中至少NumWeeks个礼拜没有登录过域的用户
dsquery user -inactive <NumWeeks>

3、我们有办法可以强制要求用户加入网域或登入玉帐号吗?
答:如果用户知道该计算机本地管理员帐号的密码,那么您的要求恐怕无法达到。

4、以及,我可以提炼出加入网域的电脑名称,登入网域的帐户名称,的列表进行公告与报告用途吗?(图和提炼名单列表?
答:没有直接的方法满足您的需求,您需要写script,同时您可以参考Wen共享脚本。您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404552/

Vicky Hu 胡晓洁 微软全球技术支持中心

你好,希望下面的方法对你有用。
1、活动目录的dsquery命令似乎可以满足你的需要,但是好像是要在纯2003的域功能级别,本想给你个工具,太大新闻组发不了;
2、给你个脚本,可以导出最近30天没有登录的用户到Excel文件,时间你可自己定义,见附件;
3、如果用户没有本地计算机用户帐号的密码,那他就不能登录到本地了,通过脚本更改用户的本地帐号密码;
4、第2点应该已经可以满足你的需求;

---不包含此行---
' Assign Variables

Dim DomainString, fso, DomianObj, UserDel, C, Code
Dim ChkLast, UserObj, Flag, s

' Create Object for File System Access您看到的文章来自活动目录seo http://gnaw0725.blogbus.com/c1404552/

set fso = CreateObject ("Scripting.FileSystemObject")

' Set Domain Name
DomainString = "overmcse.com" 'Modify this line or this script wont work

' Open ADSI and connect to Domain user data

Set DomainObj = GetObject("WinNT://" & DomainString)
DomainObj.Filter = Array("user")

' Insure that file does not already exist

IF fso.FileExists ("C:/temp/USER.TSV") THEN
     set USERDel = fso.GetFile ("C:/TEMP/USER.TSV")
     USERDel.Delete
End IF

' Create File in temp directory

set C = fso.CreateTextFile ("C:/TEMP/USER.TSV", True)

on error resume next

' Add collumn headings to new file

C.WriteLine "Name" & vbTab & "Description" & vbTab & "FullName" & _
     vbTab & "LastLogin" & vbTab & "PasswordExpirationDate" & _
     vbTab & "IsAccountLocked" & vbTab & "Class" & vbTab & "UserFlags"

' List all users

For Each UserObj In DomainObj
     ChkLast = UserObj.LastLogin ' ChkLast is used to determine the last logon time.
     IF (ChkLast < (Date - 30) OR ChkLast = NULL ) AND UserObj.UserFlags <> 661103 AND UserObj.UserFlags <> 515 THEN
          s = CHR(34) & UserObj.Name & CHR (34)
          s = s & vbTab
          s = s & CHR (34) & UserObj.Description & CHR (34)
          s = s & vbTab
          s = s & UserObj.FullName
          s = s & vbTab
          s = s & UserObj.LastLogin
          s = s & vbTab
          s = s & CHR (34) & UserObj.PasswordExpirationDate & CHR (34)
          s = s & vbTab
          s = s & CHR (34) & UserObj.IsAccountLocked & CHR (34)
          s = s & vbTab
          s = s & CHR (34) &UserObj.Class & CHR (34)
          s = s & vbTab

' Convert Flags to more undersandable terms.

               Flag = UserObj.UserFlags
               IF Flag = 66113 THEN
                    Code = "Password never expires and user cannot change password"
               ELSEIF Flag = 66115 THEN
                    Code = "Account is Disabled"
               ELSEIF     Flag = 577 THEN
                    Code = "Account is not setup right, login not possible"
               ELSEIF Flag = 515 THEN
                    Code = "Account is disabled and user must change password at next logon"
               ELSEIF Flag = 513 THEN
                    Code = "Account has no flags set. User is active"
               ELSEIF Flag = 66049 THEN
                    Code = "Password Does Not expire"
               ELSE
                    Code = "Unknown Code"
               END IF

          s = s & CHR (34) & Code & CHR (34)
          C.WriteLine s ' Write new line to file.
     End IF
Next ' Repeat for all users

Wscript.Quit

---不包含此行---

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值