从Get-ADUser返回的具有New-ADUser -Instance的AD用户的复制无法转换值错误

时间:2018-11-28 12:20:53

标签: powershell active-directory powershell-v2.0 powershell-v3.0 powershell-v4.0

我正在尝试将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

非常感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

听起来您正在远程会话中运行它。当您从服务器取回对象时,由于它经历了序列化和反序列化,因此它不再是真正的对象。这是一个“属性包”:只是属性,而没有与实类型一起使用的方法。如果您愿意,可以阅读有关here的更多信息。

为避免这种情况,您可以尝试在同一行中运行两个命令:

New-ADUser -Instance (Get-ADUser $user_to_copy)

我不知道它会起作用100%,但是很有可能。