none
ADで特定のオブジェクト以外のすべてのオブジェクトを一括で削除する方法がありましたら教えてください RRS feed

  • 質問

  • ADで特定のオブジェクト以外のすべてのオブジェクトを一括で削除する方法がありましたら教えてください
    また、AD内のすべてのユーザアカウントのパスワードを一括で初期化できる方法がありましたら教えてください。

    • 編集済み Shidox 2019年1月15日 7:32
    2019年1月15日 6:34

回答

  • なんとなく以下のスクリプトで出来そうだとは思いますが...。

    Get-ADComputer -Filter * -SearchBase "OU=端末,OU=仮想端末Win8.1,OU=コンピュータ, DC=test,DC=shibya,DC=local"  |Set-ADaccountPassword -Reset -NewPassword (ConvertTo-SecureString <Password> -AsPlainText -Force)


    上記は、「ある特定のOUに含まれるユーザーアカウントのパスワードの初期化」ができます。
    「特定のグループに所属するユーザーアカウントのパスワードの初期化」は、下記スクリプトで可能です。
    Get-ADGroupMember -Identity <グループ名> | Set-ADaccountPassword -Reset -NewPassword (ConvertTo-SecureString <Password> -AsPlainText -Force)

    上記2つの条件(特定のOU、特定のグループ)をアンド条件で実施するには、もうちょっと工夫が必要かと思います。
    参考になれば幸いです。

    • 回答としてマーク Shidox 2019年1月16日 4:47
    2019年1月16日 4:17

すべての返信

  • どちらもPowerShellで実施可能かと思います。
    ただし、1個目の「特定のオブジェクト以外」は、何行かに分けて実施が必要です。

    下記に参考スクリプトを記載しておきますが、Builtinアカウントやサービスアカウントには影響しないよう配慮が必要です。
    -SearchBase <OUのdistinguishedName>を、|(パイプライン)の前に入力することで、指定したOUに属するオブジェクトに絞ることが可能です。

    #すべてのユーザーアカウント削除
    Get-ADUser -filter *| Remove-ADUser -Confirm:$false
    #すべてのグループアカウント削除
    Get-ADGroup -filter * | Remove-ADGroup -Confirm:$false

    #すべてのユーザーアカウントのパスワード初期化
    Get-ADUser -filter *   | Set-ADaccountPassword -Reset -NewPassword (ConvertTo-SecureString <Password> -AsPlainText -Force)

    2019年1月15日 8:23
  • チャブーンです。

    この件ですが、他の方の回答も有効ですが、Get-AD* の -Filterまたは -LDAPFilterを活用すればいいと思います。この項目はまさにオブジェクトの選定のためにあるもので、構文を覚えるとラクかと思います。Get-ADObjectを使えば、ユーザーやコンピューター種類に限定されず、汎用的なオブジェクトに対して検索をかけられるでしょう。

    https://social.technet.microsoft.com/wiki/contents/articles/28485.filters-with-powershell-active-directory-module-cmdlets.aspx


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答としてマーク Shidox 2019年1月16日 0:20
    • 回答としてマークされていない Shidox 2019年1月16日 0:39
    2019年1月15日 9:50
  • 大変参考になりました。 これらのコムレットを使用すればとても柔軟にオブジェクトの移行が行えそうです。

    ありがとうございました。

    また、以下の”すべてのユーザーアカウントのパスワードを初期化するコムレット”で「あるOUに所属する全てのユーザ、あるグループに所属する全てのユーザ」のパスワードを初期化するにはどのようにスクリプトを書けばよいでしょうか?

    Get-ADUser -filter *   | Set-ADaccountPassword -Reset -NewPassword (ConvertTo-SecureString <Password> -AsPlainText -Force)

    なんとなく以下のスクリプトで出来そうだとは思いますが...。

    Get-ADComputer -Filter * -SearchBase "OU=端末,OU=仮想端末Win8.1,OU=コンピュータ, DC=test,DC=shibya,DC=local"  |Set-ADaccountPassword -Reset -NewPassword (ConvertTo-SecureString <Password> -AsPlainText -Force)


    • 編集済み Shidox 2019年1月16日 3:02
    2019年1月16日 0:22
  • なんとなく以下のスクリプトで出来そうだとは思いますが...。

    Get-ADComputer -Filter * -SearchBase "OU=端末,OU=仮想端末Win8.1,OU=コンピュータ, DC=test,DC=shibya,DC=local"  |Set-ADaccountPassword -Reset -NewPassword (ConvertTo-SecureString <Password> -AsPlainText -Force)


    上記は、「ある特定のOUに含まれるユーザーアカウントのパスワードの初期化」ができます。
    「特定のグループに所属するユーザーアカウントのパスワードの初期化」は、下記スクリプトで可能です。
    Get-ADGroupMember -Identity <グループ名> | Set-ADaccountPassword -Reset -NewPassword (ConvertTo-SecureString <Password> -AsPlainText -Force)

    上記2つの条件(特定のOU、特定のグループ)をアンド条件で実施するには、もうちょっと工夫が必要かと思います。
    参考になれば幸いです。

    • 回答としてマーク Shidox 2019年1月16日 4:47
    2019年1月16日 4:17
  • ありがとうございます。

    大変参考になりました。 頂いた情報を大切に活用させていただきます。

    2019年1月16日 4:48