2013-07-31 240 views
0

我正在创建一个基于菜单的输出的Active Directory Restore脚本。其中一个脚本确实是功能设置使用Ntdsutil.exe在PowerShell中粘贴

我遇到的是,如果你输入的命令manualy你会做下列问题的Active Directory对象的权威性:

  • 类型NTDSUTIL然后按输入
  • 类型激活实例NTDS然后按输入
  • 类型权威还原然后按输入
  • 类型恢复子树 “OU =用户,DC = Contoso的,DC = COM”然后按输入
  • 类型退出
  • 类型退出

如果我想用一个脚本来完成这一切,然后在脚本中的文字应该是这样的:

$ ntdsutil_job = “ntdsutil”+“”+'“'+”激活实例ntds“+”“'+”“+'”'+“authoritative restore”+''''+“”+“'”+“restore”+ $ Restore_Type +“”+'“'+ $ Object +'”'+“'”+“”+“quit quit”

变量是这样的:

NTDSUTIL “激活实例NTDS”, “权威性还原” '恢复子树 “OU =用户,DC = Contoso的,DC = COM”' 退出退出

然后在剧本,我把:

调用,表达$ ntdsutil_job

的所有作品,直到OU有一个空间,例如:

OU =测试容器,DC = Contoso的,DC = COM

NTDSUTIL如果我把“OU =测试容器,DC = Contoso的,DC不接受= COM”

经过长期的测试,我发现,要做到这一点的唯一方法是粘贴整个命令到PowerShell中这样的:

NTDSUTIL

激活实例NTDS

权威还原

恢复子树“OU =测试容器,DC = Contoso的,DC = COM “

退出

退出

如果我想的纸条做我不想manualy复制并粘贴信息,我的东西。

所以finaly我的问题:

有没有办法复制信息到剪贴板,然后使用命令粘贴回PowerShell的?或者将信息输出到文本文件中,然后从文本文件中复制信息并粘贴到PowerShell中?我想重点关注PASTE,而不是输入。

谢谢!

+0

您正在使用什么版本的PowerShell可以检查'$ PSVersionTable'值看你目前的版本是什么。 – Nick

回答

0

你有你的DN $对象“ 它的工作原理coreectly在我的实验室与此添加更多的报价:

[string]$Object = '"' + $Object + '"' 
$ntdsutil_job = "ntdsutil" + " " + '"' + "activate instance ntds" + '"' + " " + '"' + "authoritative restore" + '"' + " " + "'" + "restore object" + " " + "`"$Object`"'" + " " + "quit quit" 
Invoke-Expression $ntdsutil_job