【发布时间】:2014-06-20 05:49:44
【问题描述】:
我对 PowerShell 知之甚少。我知道一些 cmdlet,但在涉及 Active Directory 时我不知所措。我正在使用装有 Windows Server 2012 R2 的测试计算机,我是管理员。
我使用 ISE 测试了以下命令:
New-ADOrganizationalUnit -Name "Markedsforing" -Path "DC=testdomene,DC=local" -ProtectedFromAccidentaldeletion $false
它奏效了。然后我尝试添加一些命令,看看我是否可以扩展我的新知识,但他 ISE 告诉我有一个错误,因为已经有一个名为“Markedsforing”的组织单元。在我保存命令之前,我不认为 ISE 会继续运行该命令并创建该 OU。但就这样吧。
通过Get-OrganizationalUnit -Filter,我得到一个ObjectGUID,我在下一个命令中使用它,在这里我使用Remove-OrganizationalUnit 示例中显示的帮助命令之一。我在 PowerShell 控制台中执行此操作。
Remove-ADOrganizationalUnit -Identity 5f528fed-51d3-4c79-088a5d7669a7 -Confirm:$False
我得到的答案如下:
Remove-ADOrganizationalUnit : Access is denied
我无法在 PowerShell 中找到它......也无法在图形界面中找到它。
问题 1:我是否也必须在 ISE 中使用-whatif,这样 ISE 才不会在我完成命令之前继续执行操作?
问题 2:我如何摆脱我的 OU 标记分叉。在服务器中,我已经是管理员了。
下次我当然会省略-ProtectedFromAccidentaldeletion $false。
我也试过-Recursive
Remove-ADOrganizationalUnit -Identity 5f528fed-51d3-4c79-088a5d7669a7 -Confirm:$False -Recursive
我希望在使用这个网站之前能走得更远。任何帮助表示赞赏。
【问题讨论】:
-
@Raf 是的,我确实需要在删除 OU 之前取消保护它。当我使用 -ProtectedFromAccidentalDeletion $false 制作我的 New-ADOrganizationalUnit 时,我认为我使它不受保护,如我的第一个代码所示。我一定是在应用时犯了一个错误。我最终使用 GUI 来禁用保护,但我看到你使用了 PowerShell。我新必须有一种方法可以做到这一点,但我从未想过在运行“Remove-ADOrganizationUnit”之前使用“Get”并将其通过管道传输到“Set”。我每天都学到新东西。谢谢。
-
@FrodeF 我从未想过将 $WhatIfPreference = $true 放在脚本的开头。误解 ISE 的原因很可能是我使用它来尝试检索信息的不同 cmdlet,而不是用于进行更改的 cmdlet。现在我明白了。谢谢。
标签: powershell windows-server-2012-r2 powershell-4.0