我正在使用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中,这个抛出“此时是意外的”,而在powershell中,它一直在等待更多的参数。其主要目的是将其转换为c#脚本,迁移用户/组,但在使用cmd/powershell的测试阶段失败。至少在C#中有什么方法可以做到这一点吗?
我尝试过用"“、^”、“转义双引号,但似乎没有什么效果。我还尝试将值赋值给变量,并在powershell中使用变量。使用"”(如此Escaping special characters in cmd中所建议的)是该命令唯一运行的时候,但它仍然会引发以下错误。
错误:无法迁移组。无法绑定到容器'ParentOU/TEST!@#$%^&()+{}|:<>?[];',./ /林内:是‘。无法获得'A.COM/ParentOU/TEST!@#$%^&;()+{}|:<>?[];',./ /林内:是‘的名称。*参数不正确。(0x80070057)
如果我创建了另一个OU,除了双引号之外,其他的OU都是一样的。
请帮助解决这个问题。
发布于 2022-11-29 10:09:34
你可以用不同的方法解决这个问题:
使用引号以外的插入符号转义字符
setlocal EnableDelayedExpansion
set "to_param=ParentOU/TEST^!@#$%^&*()_+{}|:"^^^^^<^^^^^>?[];',./"
call ADMT GROUP /to:"%%to_param%%"主要问题将是ADMT程序,您需要知道它是如何解析参数的,特别是关于如何在参数中转义引号的规则。
您可以在\"中测试set "to_param=ParentOU...\"^^^^^<^^^^^>?[];',./"
https://stackoverflow.com/questions/74611622
复制相似问题