| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
如何为没有主驱动器的用户分配新的主驱动器?
如何为没有主驱动器的用户分配新的主驱动器?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-24 11:11:31
问:

您好,脚本专家!如何查看是否为某个用户设置了主驱动器和主目录,如果未设置,如何为其分配一个新的?

-- AM

答:

您好,AM。不,没有任何借口:昨天,海鹰队有很多机会从超级投球赛胜出,但是他们没能把握住机会。有时,看起来他们比赛是为了不输,而不是要赢,但这种打法总是后患无穷。唉,这就是事物发展的规律。

当然,想想官员们千里迢迢而来,您可能会认为他们应该对观看比赛会很有兴致。但是,显然不是这样。难道是因为马特哈塞尔贝克在阻挡进攻时被判违规?好的...。

不,这不是理由:这仅仅是一个...事实...。

不过,过去的总归是过去了,何况,这里应该是脚本编写专栏,而不是运动专栏。明确这一点后,我们如何能测试是否存在主目录,并在必要时为用户分配新的主目录和主驱动器?嗯,下面的代码可以达到此目的:

On Error Resume Next



Set objUser = GetObject("LDAP://cn=Ken Myer, ou=Finance, dc=fabrikam, dc=com")



If IsEmpty(objUser.homeDirectory) or IsNull(objUser.homeDirectory) Then

    strUser = objUser.sAMAccountName

    strHomeDirectory = "//atl-dc-01/users/" & strUser

    objUser.homeDirectory = strHomeDirectory

    objUser.homeDrive = "Z:"

    objUser.SetInfo

End If

该脚本首先绑定 Active Directory 中的 Ken Myer 用户帐户。接下来是下面这行代码:

If IsEmpty(objUser.homeDirectory) or IsNull(objUser.homeDirectory) Then

您可能知道,Active Directory 脚本编写有时会比较复杂。假设您查看 Active Directory 用户和计算机中的用户帐户并发现主目录框为空。在这种情况下,您最先想到的可能是,“哦,估计该用户不具有主目录”。您可能是正确的。

然而,如果对此相同的帐户运行脚本,您必须考虑两点:主目录框为空是因为此属性为 Null(即,未对其赋值),还是因为此属性为空(可能因为其他管理员运行脚本将该值设置为一个空字符串)?

是的,我们知道:空属性和 Null 属性好像没什么两样。然而,不管怎样,它们是不一样的。从技术上讲,空属性实际上具有值:只是它的值为空罢了。然而,对于 Null 属性,我们是说我们不知道此属性是否具有值。这确实令人困惑,不过这是个很重要的区别。如果 homeDirectory 属性为空,意味着没有为该用户分配主目录。然而,在这种情况下,下面的测试将返回 False,因此诱使我们认为此用户确实具有主目录。

IsNull(objUser.homeDirectory)

为什么会返回 False?哈哈,因为此属性不是 Null,而是空。不管怎样,确实有区别

没错:当您的脑袋停止发晕时请告诉我们,然后我们再继续。

好点了吗?老实说,这不值得担心,至少现在是这样。相反,为谨慎起见,按照我们的套路来做:查看该属性值为空还是 Null。可在 If-Then 语句中使用 IsEmptyIsNull 函数来达到此目的:

If IsEmpty(objUser.homeDirectory) or IsNull(objUser.homeDirectory) Then

通过这种方法可以将全部情况都包括在内。

那么,假定此用户不具有主目录;然后怎样呢?然后,我们执行以下代码块:

strUser = objUser.sAMAccountName

strHomeDirectory = "//atl-dc-01/users/" & strUser

objUser.homeDirectory = strHomeDirectory

objUser.homeDrive = "Z:"

objUser.SetInfo

通常,主目录以用户来命名。(并非必须如此,但这是许多组织所采用的标准方法。)因为我们太懒而没有给出我们自己的标准,因此我们将使用相同的方法;这意味着我们将把主目录 //atl-dc-01/users/logonname 分配给用户,其中 logonname 代表用户的登录名 (sAMAccountName)。是的,我们可以将此名称硬编码到脚本中。然而,我们决定使之更有创意,让脚本为我们创建主目录名。

为此,首先我们将用户的 sAMAccountName(例如,kenmyer)值赋给 strUser 变量。然后,我们使用下面这行代码构建此目录的 UNC 路径:

strHomeDirectory = "//atl-dc-01/users/" & strUser

如果用户的 sAMAccountName 确实是 kenmyer,则生成的路径(即分配给变量 strHomeDirectory 的值)将是:

//atl-dc-01/users/kenmyer

获得完整的路径之后,可以设置 homeDirectory 属性的值;然后我们可以随便将 homeDrive 属性的值设为 Z:。(对,您必须在驱动器盘符后面使用冒号。)完成所有以上操作之后,我们可以调用 SetInfo 将更改写回用户帐户。无论如何,都不要忽视调用 SetInfo:如果没有调用,您的更改将不会应用于 Active Directory。这就意味着该用户仍然不具有主驱动器和目录。

难道我们真的永远不谈论体坛消息了吗?当然不是:毕竟,超级投球赛事的结束不过意味着棒球赛季就在眼前。今年我们认为我们钟爱的西雅图水手队将 -

仔细想想,我们将再回来与您讨论有关这些体坛消息...。

【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    CSO们如何应对新技术的安
    普通企业如何应对黑客攻
    企业该如何防范由VoIP引
    浅谈IT如何实现企业的应
    黑客与正规企业是如何串
    如何无限制申请Gmail 2.
    企业如何避免人为因素的
    社会工程学:如何利用黑客
    如何在一个文件被添加到
    如何将“珊瑚虫”好友请

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览