如何设置Active Directory用户的锁定时间和密码

2023-12-02

我想更改AD用户的userAccountControl和密码。用户已在 AD 中创建。该用户是使用 AD 中的 python-ldap 模块创建的,处于“禁用”状态并且没有密码。

AD 托管在 win2k8R2 上。

当我使用 pythion-ldap 脚本更改 uac 和密码时,它会抛出以下错误:

ldap://192.168.254.1:389
(97, [])
Traceback (most recent call last):
  File "C:\workspace\utils\src\u.py", line 16, in <module>
    l.modify_s(dn, mod_attrs)
  File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 336, in modify_s
    return self.result(msgid,all=1,timeout=self.timeout)
  File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 436, in result
    res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
  File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 440, in result2
    res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,timeout)
  File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 446, in result3
    ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout)
  File "C:\Python26\lib\site-packages\ldap\ldapobject.py", line 96, in _ldap_call
    result = func(*args,**kwargs)
ldap.UNWILLING_TO_PERFORM: {'info': '00002077: SvcErr: DSID-031903A4, problem 5003 (WILL_NOT_PERFORM), data 0\n', 'desc': 'Server is unwilling to perform'}


import ldap

host = "192.168.254.1"
ip = "ldap://%s:%d"%(host, 389)
l = ldap.initialize(ip)
newUser = "vishalworld"
dn = "cn=%s,%s"%(newUser, "cn=Users,DC=example,DC=com")
print l.simple_bind_s("administrator",password)
pwd = '"abcdefgh"'.encode("utf-16-le")
mod_attrs = [
                (ldap.MOD_REPLACE, "lockoutTime", 0),
                (ldap.MOD_REPLACE, "unicodePwd", pwd),
            ]
l.modify_s(dn, mod_attrs)

首先,您需要向 AD 添加 tls 支持。http://araihan.wordpress.com/2009/10/05/windows-server-2008-active-directory-certificate-services-ad-cs/这是一个解释如何创建证书的教程

然后您需要使用 tls 向 AD 进行身份验证。像这样

import ldap

LDAP_SERVER_EMG = "ldaps://192.168.0.250"
BIND_DN = "[email protected]"
BIND_PASS = "xxxXXXxxxXXXxxx"
USER_BASE = "dc=emgS,dc=local"
try:
   ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, 0)
   lcon_emg = ldap.initialize(LDAP_SERVER_EMG)
   lcon_emg.simple_bind_s(BIND_DN, BIND_PASS)
except ldap.LDAPError, e:
   print e

然后您可以添加您的用户进行测试

ad_u = {
            'objectClass': ['top', 'person', 'organizationalPerson', 'user'],
            'cn': 'test',
            'displayName': 'test',
            'distinguishedName': 'CN=test,DC=emgS,dc=local',
            'givenName': 'test test',
            'sAMAccountName': 'test',
            'sn': 'test',
            'userAccountControl': '514',
            'userPrincipalName': '[email protected]',
            'mail': mail_user,
             #732 is test in 3ll1t3
            'employeeID': '732'
            }
        mods = ldap.modlist.addModlist(ad_u)

        try:
            lcon_emg.add_s(ad_u.get('distinguishedName'),
                                mods)
        except Exception, e:
            response.update({'error_ad': 'ActiveD: Error  %s' % str(e)})
        else:
            response.update({'success_ad': 'ActiveD: F4ck y34h'})

    #then you can put a password for the user
    unicode_pass = unicode('\"' + "my super secret password :)" + '\"', 'iso-8859-1')
    password_value = unicode_pass.encode('utf-16-le')
    add_pass = [(ldap.MOD_REPLACE, 'unicodePwd', [password_value])]
    # 512 will set user account to enabled
    mod_acct = [(ldap.MOD_REPLACE, 'userAccountControl', '512')]

    try:
        lcon_emg.modify_s(ad_u.get('distinguishedName'), add_pass)
    except ldap.LDAPError, error_message:
        response.update({'error_ad_clave': 'ActiveD: Error %s' % str(error_message)})
    else:
        response.update({'success_ad_clave': 'ActiveD: Yeah'})

    try:
        lcon_emg.modify_s(ad_u.get('distinguishedName'), mod_acct)
    except ldap.LDAPError, error_message:
        response.update({'error_ad_hab': 'Error  %s' % str(error_message)})
    else:
        response.update({'success_ad_hab': 'Success'})
        lcon_emg.unbind_s()

还有TATA!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置Active Directory用户的锁定时间和密码 的相关文章

  • 生成最多一定数量的素数列表

    我正在尝试生成 10 亿以下的素数列表 我正在尝试这个 但这种结构非常糟糕 有什么建议么 a lt 1 1000000000 d lt 0 b lt for i in a for j in 1 i if i j 0 d lt c d i 乔
  • 防止 Apache 对 gzip 内容进行分块

    当在 Apache2 中使用 mod deflate 时 Apache 将对 gzip 内容进行分块 设置 Transfer encoding chunked 标头 虽然这会加快下载时间 但我无法显示进度条 如果我自己在 PHP 中处理压缩
  • 如何从 Javascript 中删除tinymce编辑器按钮?

    我正在使用 TinyMCE4 3 10 作为 Wordpress 4 5 4 的一部分 我使用以下代码创建一个自定义的tinymce编辑器 tinyMCE execCommand mceAddEditor false captionId t
  • 可以使用动态 html 表作为源数据吗?

    如果我有一个 html 表 其中包含根据文件中的过滤器计算的值 我是否可以根据这些值读取并生成绘图 我不确定回答这个问题是否重要 但我主要使用 R 并使用 r 代码块从我使用创建的共享数据对象名称shared ert计算总和crosstal
  • 对静态成员的未定义引用

    我正在使用交叉编译器 我的代码是 class WindowsTimer public WindowsTimer frequency QuadPart 0ull private static LARGE INTEGER frequency 我
  • 使用 DatePicker 记录 Espresso 测试

    测试记录器生成的代码在记录后运行时立即失败 原因是 在录制时 我点击年份 年份旋转器弹出 我向后滚动 然后选择其中一个年份 记录器不捕获滚动 在 Xcode 中 他们添加了一种滚动到项目的方法 我在浓缩咖啡中找不到类似的东西 使用Andro
  • 使用 openNLP maxent 训练模型

    我有黄金数据 其中注释了多个文档中的所有房间号 我想使用 openNLP 来训练一个使用这些数据并对房间号进行分类的模型 我不知道从哪里开始 我阅读了 openNLP maxent 文档 查看了 opennlp tools 中的示例 现在查
  • 可以禁用 Symfony 的 intl 要求吗?

    我在共享主机上有一个 Symfony 2 项目 显然 提供商不会为 PHP 打开 Intl 扩展 有没有办法打开它 或者我被迫重新评估整个项目 如果您的网络服务器不提供intl扩展 您可以使用Locale成分 它可以通过 Composer
  • 在对象数组中,查找属性与搜索匹配的对象的索引的最快方法

    我一直在四处冲浪 试图找到一种有效的方法来做到这一点 但一无所获 我有一个对象数组 如下所示 array i id some number array i name some name 我想要做的是找到 id 等于的对象的索引 例如 0 1
  • 图像无法显示,因为它包含 php gd 中的错误

    这是Link我正在创建一个图像 但是我的 GD 已安装并正常工作 正如我使用第一个示例进行测试时一样 但此代码会中断并标记 图像无法显示 因为它包含错误 CODE
  • Windows Phone 8.1 相机初始化 - 访问被拒绝异常

    使用适用于 Windows Phone 的 8 1 MediaCapture 类 已声明 音频 和 网络摄像头 的功能 其中 90 是would成为异常的原因 Kicker 是 它在 WP 模拟器中完美运行 但在实际设备上却崩溃了 确切的例

随机推荐

  • Java:捕获屏幕上内容的视频

    我们正在考虑用 Java 编写一个软件 在运行时记录特定时间内的监控内容 您对如何有效捕获监视器输出有什么建议吗 占用的 CPU 越少 我们捕获屏幕的频率就越多 生成的视频就越流畅 而不会干扰正在运行的其他应用程序 如果复制屏幕捕获部分不是
  • fgetcsv( ) 和 Unicode 的问题

    我有一个代码 在本地主机上 我读取 csv 文件 带有 Unicode 字符 没有问题 但是当在主机上上传代码时输出什么也没有 为什么 什么是解决方案 while data fgetcsv fin 5000 FALSE var dump d
  • ThumbnailUtils.createVideoThumbnail 对于现有 mp4 视频返回 null

    我有一个视频 我需要获取它的缩略图 我用ThumbnailUtils用于此目的的类 但它返回 null 而不是预期的Bitmap 当我调试我的应用程序时 我在里面看到了createVideoThumbnail method MediaMet
  • 在服务器端渲染中反应传单地图错误

    已解决 请阅读更新 2 你好 我在使用 React leaflet 地图的 React 入门套件中遇到此错误 它就像 github 模块示例 但我不知道问题是什么 我认为SSR有问题 React 版本 16 x 和 React 入门套件 更
  • WiX 静默安装无法启动内置 .EXE:WiX v3

    我知道这可能看起来像是重复的 但我已经尝试了几乎所有在线内容 包括下面的链接 使用双击时 安装成功完成 并启动我的 EXE 它是一个 WPF UI 问题是 如果在命令行中运行 WiX 安装程序会安装 但我的 WPF 不会启动 没有驱动程序更
  • 在批处理脚本中将用户输入的第一个字母变为大写

    这是我用来为新客户端创建文件夹的批处理脚本 ECHO OFF SET p clientLast Enter Client s Last Name SET p clientFirst Enter Client s First Name ECH
  • 我打算中止该场景,但是该场景和功能被报告为失败

    当满足某些条件逻辑时 我打算停止当前场景的运行 这意味着该场景已通过 然而 cucumber reporting 报告称该场景及其功能失败了 我在条件逻辑中使用 karate abort 函数 您会看到 mainFlow unhsFlow
  • 如何更改小向导图像的大小并在 inno setup 中具有自定义字段

    我希望我所有的 inno 设置页面如下所示 可以使用以下命令访问小向导图像WizardForm WizardSmallBitmapImage这是类型TBitmapImage 您可以更改此控件的大小和位置以适合您的设计 在顶部面板内 您还可以
  • NumericUpDown 背景色未按预期工作

    我最近需要编写 Windows NumericUpDown 控件的一个版本 该控件可以突出显示某个值是否是强制的 它需要通过更改控件的背景颜色来做到这一点 我认为这足够简单 但在尝试这样做时 我发现它有一个奇怪的副作用 即无法完全绘制所有控
  • 紧急回滚后如何将回滚的变更集+修复签入 TFS

    我们使用 VS2013 偶然向 TFS 提交了一些代码 这创建了变更集 2 为了修复这个错误 我们将变更集 2 回滚到本地计算机 然后我们提交了变更集 2 的回滚 从而创建了变更集 3 现在我们想要获取我们最初在本地计算机上错误签入的代码
  • 如何在 python 中制作固定大小的格式化字符串? [复制]

    这个问题在这里已经有答案了 我想创建一个具有固定大小和字段之间固定位置的格式化字符串 一个例子可以更好地解释 这里显然有 3 个不同的字段 并且字符串是固定大小的 XXX 123 98 00 YYYYY 3 1 00 ZZ 42 123 3
  • 无法加载文件或程序集'file:///C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ asp.net vs2010

    昨天我的项目运行顺利 但今天我遇到了错误 详细信息如下 无法加载文件或程序集 file C WINDOWS Microsoft NET Framework v4 0 30319 Temporary ASP NET Files parktms
  • 如何创建可在 IronPython 中处理的 C# 事件处理程序?

    如何创建可在 IronPython 中处理的 C 事件处理程序 请注意 我使用的是 IronPython 2 0 1 我能够毫无问题地处理来自系统类的事件 例如 Window KeyDown 但是当我尝试定义自己的 C 事件时 当我尝试从
  • 从 nhibernate 中的 INSERT 命令中排除属性

    我有一个具有我希望只读属性的实体 这意味着当我将此实体插入数据库时 SqlServer 将自动生成该属性的值 因此我需要 nhibernate 在执行 INSERT 命令时忽略此属性 但在选择时检索它实体 重要提示 此属性不是ID 我不希望
  • codemirror:搜索并突出显示多个单词,无需对话框

    客观的 我在用代码镜像作为编辑 我想要 搜索并突出显示多个字符串 我希望能够迭代找到的每个匹配项并打印其行号 我想以编程方式执行此操作 并且不想使用对话框 如示例所示https codemirror net demo search html
  • linux redhat 6 并安装 easy_install

    我对此完全陌生 需要一些帮助 我有一个运行 Linux Redhat 6 并使用 Python 2 7 刚刚被设置为 Python 2 6 的默认值 的托管服务器 位于 usr local bin python2 7 我正在尝试在服务器上设
  • Android 示例应用程序未显示

    这里是新的 Android 开发人员 我正在关注以下教程http www vogella de 第一个应用程序 进行温度转换 有效 第二个 执行首选项并使用菜单 永远不会出现 我尝试过使用 Helios 和 Galileo 我尝试过重新安装
  • 发布应用时删除 AdMob 的测试设备 ID 是个好主意吗?

    我正准备在 Play 商店中启动一个应用程序 在尝试使用 AdMob 在测试模式下使用我的设备 ID 后 我现在想知道是否应该删除测试设备 ID 只保留 TEST EMULATOR 你觉得怎么样 有必要吗 是的 您应该在发布之前删除测试模式
  • 更新管理元框字段中的产品帖子元数据

    我正在尝试使用 update post meta 函数更新 WooCommerce 产品元数据 但它不起作用 这是我的代码 function woo add deal general fields save post id post id
  • 如何设置Active Directory用户的锁定时间和密码

    我想更改AD用户的userAccountControl和密码 用户已在 AD 中创建 该用户是使用 AD 中的 python ldap 模块创建的 处于 禁用 状态并且没有密码 AD 托管在 win2k8R2 上 当我使用 pythion