1

PowerShell についてはほとんど理解していません。いくつかのコマンドレットは知っていますが、Active Directory に関しては途方に暮れています。Windows Server 2012 R2 でテスト コンピューターを使用しており、管理者です。

ISE を使用して次のコマンドをテストしました。

New-ADOrganizationalUnit -Name "Markedsforing" -Path "DC=testdomene,DC=local" -ProtectedFromAccidentaldeletion $false

そして、それはうまくいきました。次に、いくつかのコマンドを追加して、新しい知識を拡張できるかどうかを確認しようとしましたが、「Markedsforing」という組織単位が既に存在していたため、ISE からエラーが発生したとのことでした。コマンドを保存する前にコマンドを実行しただけで、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 : -whatifISE でも を使用する必要がありますか? コマンドの作成が完了する前に ISE が先に進んで何かを実行することはありませんか?

質問2 : OU のマークフォリングを削除するにはどうすればよいですか。サーバーでは、私はすでに管理者です。

-ProtectedFromAccidentaldeletion $falseもちろん次回は割愛します。私も試してみました-Recursive

Remove-ADOrganizationalUnit -Identity 5f528fed-51d3-4c79-088a5d7669a7 -Confirm:$False -Recursive

このサイトを利用する前は、もっと上達したいと思っていました。どんな助けでも大歓迎です。

4

3 に答える 3

0

"ProtectedFromAccidentalDeletion" を false に設定し、1 つのステートメントで組織単位を削除/削除することができます (Windows Server 2008 R2 でホスト バージョン 4.0 を使用してテストおよび動作しました)。

最初に、"distinguishedName" または "objectGUID" を特定する必要があります。これは、remove-adorganizationalunit コマンドレットがサポートするのはオブジェクトの削除のみであるためです。

ランニング:

Get-Help Remove-ADOrganizationalUnit -Full

「Identity」のスニペットを取得すると、次のヘルプ情報が得られます。

-Identity <ADOrganizationalUnit>
        Specifies the identity of an Active Directory organizational unit object. The parameter accepts the following identity formats. The identifier in parentheses is the LDAP display name 
        for the attribute that contains the identity.

          Distinguished Name 
            Example:  OU=Europe,CN=Users,DC=corp,DC=contoso,DC=com
          GUID (objectGUID) 
            Example: 599c3d2e-f72d-4d20-8a88-030d99495f20 

        The cmdlet searches the default naming context or partition to find the object. If two or more objects are found, the cmdlet returns a non-terminating error. 

        This parameter can also get this object through the pipeline or you can set this parameter to an object instance. 

        This example shows how to set the parameter to a distinguished name.
-Identity  "OU=Europe,CN=Users,DC=corp,DC=contoso,DC=com"

        This example shows how to set this parameter to an organizational unit object instance named "OUinstance".
          -Identity   $OUInstance

        Required?                    true
        Position?                    1
        Default value                
        Accept pipeline input?       true (ByValue)
        Accept wildcard characters?  false

私が好んで使用する「objectGUID」を知っているので、OU を削除できます。

Get-ADOrganizationalUnit -Filter * -SearchBase "OU=TestOU,DC=MYDOMAIN,DC=COM" -SearchScope OneLevel | Where-Object {$_.objectGUID -eq "c18ff7dc-3177-44eb-896a-5c79cab7ef23"} | Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $false | Remove-ADOrganizationalUnit

OU 構造内の正しいレベルで検索していることを確認するように注意してください。これはよくある間違いです。

最後に、残念ながら「PassThru」パラメーターがないため、削除したばかりの OU を探して get-adorganizationalUnit コマンドを再度実行し、それがなくなっていることを確認する必要があります。

これが誰かを助けることを願っています!

于 2015-02-27T19:27:17.367 に答える