AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 67716
Accepted
Tim
Tim
Asked: 2009-09-23 07:04:00 +0800 CST2009-09-23 07:04:00 +0800 CST 2009-09-23 07:04:00 +0800 CST

活动目录; 批量编辑主文件夹?

  • 772

我们正在将用户文件夹迁移到新服务器。它们的形式是\\server\users\UserName\,所以\\server\users\Tim Smith\。我们本质上想改变server为server1 我们有很多用户;因此手动编辑每个用户非常耗时。

关于我可以用来批量编辑所有用户的工具有什么建议吗?

active-directory
  • 4 4 个回答
  • 37225 Views

4 个回答

  • Voted
  1. Best Answer
    Evan Anderson
    2009-09-23T07:23:03+08:002009-09-23T07:23:03+08:00

    如果您的用户文件夹名称与他们的帐户名称匹配,Active Directory 用户和计算机可以做您想做的事情。

    假设所有用户都在同一个 OU 中,只需突出显示所有用户,右键单击并选择“属性”,进入“配置文件”选项卡,然后在表单中输入新路径:

    \\server\users\%USERNAME%\
    

    如果它们分布在多个 OU 上,那就有点困难了,但并不多。假设您使用的是 Windows 2003 版本的 Active Directory 用户和计算机:

    • 在 AD 顶部的“已保存查询”节点,执行“新建”/“查询”。

    • 将查询命名为您喜欢的任何名称,并根据需要提供描述。在查询定义中,为“查询根”(或域的根,如果它们位于作为根的子级的 OU 中)的用户帐户上方选择一个 OU。

    • 单击“定义查询”。在“查找常用查询”对话框中,从“用户”选项卡上“名称”标题右侧的下拉列表中选择“有值”。再次单击“确定”和“确定”以定义查询。

    • 突出显示新创建的查询并右键单击并选择“刷新”(或按 F5),如果查询未填充右窗格。

    • 在右窗格中突出显示用户,右键单击并选择“属性”。转到“配置文件”选项卡并如上所述进行更改。

    非常简单。

    • 7
  2. Laranostz
    2009-09-23T10:41:29+08:002009-09-23T10:41:29+08:00

    或者,如果您不想使用 GUI,您可以使用批处理文件来管理它并将其作为脚本运行。或者您可以将其键入命令行。

    如果您想更改域中的所有用户,我会像这样运行它。

    dsquery users | dsmod user -hmdir \\server\users\$username$\
    

    dsmod 认识到 $username$ 标志表示从 dsquery 命令通过管道传送给它的用户的 samid。它还为附加到 dsmod 命令的 -profile 命令识别此标志。

    注意:如果您的共享文件夹是隐藏共享,这将不起作用,隐藏共享中的问号会使命令误以为您比实际更早地启动了标志。我为此尝试了一些转义字符,但到目前为止还没有找到任何可以解决此问题的字符。

    如果您的所有用户都在特定的 OU 中,您需要更改 dsquery 命令。对于该命令,您需要添加包含您要更改的所有用户的 OU 的完全限定域名。这很有趣,可以通过 dsquery OU 命令找到。

    该命令将如下所示,

    dsquery users [fully qualified domain name of the OU ] | dsmod user -hmdir \\server\users\$username$\
    

    如果您想批量处理并使用隐藏共享,您可以使用 FOR 循环来执行此操作,但是由于首先提取所有用户所需的循环,然后只提取他们的姓名,然后返回,因此语法有点复杂并将该信息插入 dsmod 命令的特定区域。这很丑陋,但我会这样做。

    dsquery user [fully qualified domain name of the ou] > c:\users.txt & for /f "delims==, tokens=2" %A in (c:\users.txt) do (dsmod user "CN=%A[rest of FQDN here] -hmdir "\\server\users$\%A\" && del c:\users.txt -q
    

    注意:如果您在批处理文件中使用它,for 循环标记必须以双百分比开头,即;%%A 而不是 %A

    这会查询指定 OU 中的所有用户,然后将它们输出到文件中。然后它运行一个 for 循环,从文件中的 FQDN 中提取用户名,并将其插入到 dsmod 命令中以更改其主目录。最后,如果 for 循环成功运行,它会通过删除它创建的文件来清理自己。

    我希望这会有所帮助,即使您不使用批处理文件来执行此特定工作,它也可以在将来为您提供帮助。这样的事情的好处是您可以保存它,如果您将来需要更改其他内容,只需进行一些小的更改,您所要做的就是重新运行它以进行您想要的更改。此外,如果您发现有人进行了未经授权的更改,您只需双击即可将其切换回来。

    • 4
  3. joeqwerty
    2009-09-23T07:08:51+08:002009-09-23T07:08:51+08:00

    您可以使用 ADModify.NET 批量更改用户属性。

    http://www.codeplex.com/admodify

    • 0
  4. gWaldo
    2012-10-10T02:47:28+08:002012-10-10T02:47:28+08:00

    其他基于脚本的答案都很好(脚本是我最好的锤子),但您也可以使用 DNS CNAME 和服务器重命名来完成相同的操作。将 'server' 更改为 'oldserver',CNAME 'server'->'server1'

    • 0

相关问题

  • 如果以域用户身份远程登录,PC 速度极慢

  • 如何在 Windows 2003 的 ou 级别应用策略

  • 允许用户更改其 Active Directory 密码的 Web 界面

  • MOSS 2007 无法使用 ActiveDirectoryMembershipProvider 配置表单身份验证

  • 通过 VPN 更改 Active Directory 密码

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve