ドメインに接続されておらず、モジュールもなく、PS 2.0を実行しているリモートコンピュータでPowershellを実行しています。Active DirectoryからAD-Computerをリモートで削除する方法 - Powershell
私のドメインのActive Directoryに連絡して、このコンピュータのエントリがあるかどうかを確認します。はいの場合は、そのエントリを削除します。
ADSI経由でコンピュータの存在を確認するのは簡単です。ただし、削除は何とか機能しません。ここで
は、これまでの私のコードです:
# Variables
$domain = "Test.com"
$Ldap = "LDAP://$domain"
$Global:AdsiSearcher = $Null
# Function to Delete PC
Function DeleteThisPc()
{
$CurrentSearch = $Global:AdsiSearcher
$One = $CurrentSearch.FindOne()
$OPath = [adsi]$One.Path
$OPath.psbase.DeleteTree()
問題はここにあります。 $ OPathのタイプはSystem.DirectoryServices.DirectoryEntry
で、プロパティリストにはすべてのプロパティが表示されますが、オブジェクトを削除することはできません。
例外 "0" 引数(複数可)と "DeleteTree" を呼び出す:「ログオン失敗:。 不明なユーザー名またはパスワードが間違っCで
:Domjoin1.1.ps1 \の\ TEMP:49文字:33 $ OPath.psbase.DeleteTree < < < <() CategoryInfo:NotSpecifiedは:(:) []、MethodInvocationException FullyQualifiedErrorId:DotNetMethodException
コード:
01問題は、エラー状態として明らかであるように思わにもかかわらず# Function to get a ADSISearcher and set it to the global-AdsiSearcher
Function ConnectAD()
{
$domain = new-object DirectoryServices.DirectoryEntry($Ldap,"$domain\Bob",'1234')
$filter = "(&(objectCategory=computer)(objectClass=computer)(cn=$ComputerName))"
$AdsiSearch = [adsisearcher]""
$AdsiSearch.SearchRoot = $domain
$AdsiSearch.Filter = $filter
$Global:AdsiSearcher = $AdsiSearch
}
# Main Function
Function Sub_Check-ADComputer()
{
ConnectAD
$CurSearch = $Global:AdsiSearcher.findOne()
if($CurSearch -ne $null)
{
DeleteThisPc
}
}
# Start
Sub_Check-ADComputer
:
ログオン失敗:不明なユーザー名またはパスワードが間違っています。
ユーザー名とパスワードは、私が最初にADからオブジェクトを取得するのと同じものです。それで、うまくいく - deleteTree()
にしようとすると、何とか資格をもう一度与えなければならないのですか?私はまた、オブジェクトが格納されたOUにユーザーフルコントロールを与えた
編集:
例外:
私はPS 3.0を別のマシン上でそれを行うと私は別のエラーメッセージが表示されます"0" 引数(複数可)と "DeleteTree" を呼び出す: "アクセスが拒否された ある(HRESULTからの例外:0x80070005(E_ACCESSDENIED))。"
これは非常に良いアプローチのようです。私のドメイン管理者アカウントを使用して、これでドメイン外からスクリプトをリモートで実行することができました。ありがとうございました! - 私が作成したサービスアカウントを使用すると、それでも "アクセスが拒否されました"という問題が残っています。万が一、サービスアカウントがこのようなスクリプトを実行するために必要なグループまたは権利を知っていますか? – Asharon
サービスアカウントには、関連する組織単位のコンピュータオブジェクトの作成/削除が必要です。 「Active Directoryユーザーとコンピュータ」管理コンソールの「コントロールウィザードの委任」を使用できます。 https://technet.microsoft.com/en-us/library/cc732524.aspx – Christophe