powershell - 从 Get-ADUser 复制带有 New-ADUser -Instance 的 AD 用户返回无法转换值错误
问题描述
我正在尝试将 AD 用户帐户复制为较大脚本的一部分。它过去曾有效,但目前正在抛出此错误:
Cannot bind parameter 'Instance'. Cannot convert value "CN=Test Tester,OU=etc..." to type
"Microsoft.ActiveDirectory.Management.ADUser". Error: "Cannot convert the "CN=Test Tester,OU=etc..."
value of type "Deserialized.Microsoft.ActiveDirectory.Management.ADUser" to type
"Microsoft.ActiveDirectory.Management.ADUser"
相关代码:
$user_to_copy = test.tester
$user_to_copy_instance = Get-ADUser $user_to_copy
New-ADUser -Instance $user_to_copy_instance
我不明白为什么在尝试转换值类型时会引发错误,因为我正在遵循此处找到的“-Instance”参数的文档:https ://docs.microsoft.com/en-us/powershell /module/addsadministration/new-aduser?view=win10-ps
非常感谢任何帮助,谢谢!
解决方案
听起来您正在远程会话中运行它。当你从服务器取回一个对象时,因为它经历了序列化和反序列化,它不再是真正的那个对象了。这是一个“属性包”:只有属性,但没有与真实类型一起使用的方法。如果您愿意,可以在此处阅读更多相关信息。
为避免这种情况,您可以尝试在同一行中运行这两个命令:
New-ADUser -Instance (Get-ADUser $user_to_copy)
我不知道它会 100% 起作用,但它可能会起作用是有道理的。
推荐阅读
- r - 如何在 R 中运行 LDA 主题模型时使用 8 个内核
- javascript - Angular 6 Material MatFormField 显示为未知组件
- python - Python 不会调用简单的测试函数。但它编译正常。这是怎么回事?
- d3.js - 具有取决于阈值的二进制着色的 D3 面积图
- c++ - std::cout 的奇怪行为
- opencv - 将多页 Tesseract 框文件转换为 OpenCV X、Y、宽度、高度
- python - 将 ImageField url 与 django 中的另一个对象相关联
- javascript - 在 Vue 上,如何在另一个组件中使用一个组件的功能?
- python - 将轴线添加到 matplotlib 图
- asp.net-mvc - _Layout.cshtml 中的菜单栏 - 根据上下文逻辑显示元素