2017-06-28 5 views
2

Powershellでは非常に緑色ですが、これが簡単な場合はお詫び申し上げます。私はユーザーNickからこのサンプルスクリプトを使用しようとしましたが、AdObjectが動いていると思われるエラーが発生しました。Import-CSVエラーのあるRemove-AdObject

Remove-ADObject : The directory service can perform the requested operation only on a leaf object 
At line:13 char:5 
+  Remove-ADObject -Identity $DN -confirm:$false 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (CN=<user>,DC=com:ADObject) [Remove-ADObject], ADException 
    + FullyQualifiedErrorId : ActiveDirectoryServer:8213,Microsoft.ActiveDirectory.Management.Commands.RemoveADObject 
+0

'-confirm:$ false'は構文的に間違っています。 '-confirm $ false'が良く見えます。このパラメータを完全に削除すると、正常に動作していますか? – gms0ulman

+0

完全に削除すると、同じエラーが発生します。 – jodokast89

答えて

2

私はこれを助けてくれました。特に、ユーザーが電話でOutlookを持っていれば、それはコンテナに変わります。 Active Directoryユーザーとコンピュータを開いて「表示」を選択し、「ユーザー、連絡先、グループ、およびコンピュータをコンテナとして表示」のオプションをオンにしてオブジェクトに移動すると、その中に項目があることがわかります。

パラメータをRemove-ADObjectとすることは、私にとってそれを修正したものです。

+0

メールボックスが孤立して削除される危険性はありますか? –

+1

私の経験ではありませんが、私は確かなことは言えません。過去2年間このパラメータを毎日スクリプトを実行していましたが、悪影響はありませんでしたが、環境に応じて変化する可能性があると思います...私の環境でExchangeActiveSyncデバイスを再帰的に削除するだけです。 – Nick

+1

-Recursiveコマンドレットは、スクリプトの@ Mark-Wragg簡略化とともに、私の問題を修正しました。あなたのおかげです。 – jodokast89

2

エラーは、削除しようとしているオブジェクトがコンテナであることを示唆している:私のスクリプト

Import-Module ActiveDirectory 

$list = Import-CSV C:\scripts\deletebulkusers.csv 

forEach ($item in $list) { 
    $samAccountName = $item.samAccountName 

    #Get DistinguishedName from SamAccountName 
    $DN = Get-ADuser -Identity $Samaccountname -Properties DistinguishedName | 
     Select-Object -ExpandProperty DistinguishedName 

    #Remove object using DN 
    Remove-ADObject -Identity $DN 
} 

は、私は以下の私の誤りを掲載しています。私は、オブジェクト自体ではなく、削除するオブジェクトのコンテナをコマンドレットであると証明している可能性があります。

私はあなたがパイプラインを使用して、状況を簡略化することができると思います。あなたが期待するものを行うために起こっているように見える場合

Get-ADuser -Identity $Samaccountname | Remove-ADObject -WhatIf 

-WhatIfパラメータを削除します。

+0

私はこれを試しましたが、私は同じエラーが発生します。私はユーザーのバッチを削除しようとしているだけで、そのすべてには電子メールアカウントがあります。私はこの問題がどこにあるのかと推測しています。このスクリプトは電子メールのないユーザーは削除しますが、電子メールを持つユーザーは削除しません。 – jodokast89

+0

メールボックスを最初に無効にする必要があるようです。 Exchange 2016を使用している場合は、メールボックスとユーザーアカウントオブジェクトの両方を削除するような 'Remove-Mailbox 'もあります。 –

2

ここでは、私の終了スクリプトがどのように見えるかを示します。 NickMark Wraggの両方の回答が私の問題を解決しました。みんなありがとう!!

Import-Module ActiveDirectory 

$list = Import-CSV C:\scripts\deletebulkusers.csv 

forEach ($item in $list) { 
    $samAccountName = $item.samAccountName 

    $DN = Get-ADuser -Identity $Samaccountname | Remove-ADObject -Recursive 
} 
関連する問題