我正在使用ADMT命令行测试组迁移,但在OU名称包含双引号的特定情况下,迁移失败。
ADMT GROUP /n "TestGroup" /sd:Child.A.COM /sdc.CHILD.A.COM /td.COM /tdc.A.COM /to:"ParentOU/TEST!@#$%^&*()_+{}|:"<>?[]\;',./" /intraforest:yes
在cmd中,它抛出“〉was unexpected at this time”,而在powershell中,它一直等待更多的参数。主要目的是将其转换为一个C#脚本,该脚本迁移用户/组,但在使用cmd/powershell的测试阶段失败。是否有任何方法至少在C#中实现这一点?
我试过用“",^",“,”'”来转义双引号,但似乎没有任何效果。我也试过将值赋给一个变量,并在powershell中使用该变量。使用“”(如Escaping special characters in cmd中所建议的)是唯一一次运行该命令,但它仍然抛出以下错误。
错误:无法迁移组。无法绑定到容器“ParentOU/TEST!@#$%^&()+{}”|:〈〉?[];',./ /intraforest:yes'。无法获取“A.COM/ParentOU/TEST!@#$%^&;”的可分辨名称。()+{}|:〈〉?[];',./ /目录林内:是'.提示:参数不正确。(0x 80070057)
如果我创建另一个具有相同名称(双引号除外)的OU,同样的操作也会起作用。
请帮助解决此问题。
1条答案
按热度按时间j8ag8udp1#
你可以用不同的方法来解决它:
转义引号外带有插入符号的字符
主要的问题是ADMT程序,你需要知道它是如何解析参数的,特别是关于它如何转义参数中的引号的规则。
您可以在
set "to_param=ParentOU...\"^^^^^<^^^^^>?[];',./"
中测试\"