0
このコードをTS環境で使用するには、多くの問題があります。PowerShellを使用してOSD内の別のOUにコンピュータを移動する
Windows環境からは、素晴らしい動作します。このコードのgoogle検索で見つけられるばかりのバリエーションは、Windowsでうまくいきます。しかし、タスクシーケンスでは、これらのバリエーションは、コンピュータを移動できない理由について異なるエラーメッセージを生成します。
- 未指定のエラー
- 指定されたドメインが存在しないか、
オブジェクトに設定されていないオブジェクトの
psbase.MoveTo()
メソッド呼び出しに行きます。その時点までは、妥当なオブジェクトのように見えるものを印刷することができます。言い換えれば、彼らはnullか何かではありません。 次にpsbase.MoveTo()
はいいえ。
例コード。ここで
$logFile = "MoveComputerLog.txt"
# Domain Credentials
$account = "domain\osdaccount"
$password = "thepassword"
function logMessage {
param ([string]$logstring)
Write-Host $logstring
Add-content $logFile -value $logstring
}
$computerName = "COMPUTERNAME"
logMessage "computerName: $computerName"
$root = "LDAP://sweet.domain.com"
$domain = New-Object System.DirectoryServices.DirectoryEntry($root, $account, $password)
$search = New-Object System.DirectoryServices.DirectorySearcher($domain)
$search.filter = "(&(objectClass=computer)(name=$computerName))"
$result = $search.findall()
$computerDN = $result.Properties.Item("DistinguishedName")
logMessage "DN: $computerDn"
$computer = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$computerDN", $account, $password)
logMessage "Computer: $computer"
$destination = "LDAP://ou=here,ou=goes,ou=it,dc=sweet,dc=domain,dc=com"
$ou = New-Object System.DirectoryServices.DirectoryEntry($destination, $account, $password)
try {
# "The specified domain couldn't be connected or doesn't exist."
$computer.psbase.MoveTo($ou.Path)
} catch {
Write-Host "Encountered error while moving $computerName"
logMessage $error[0]
}
ありがとうございましたが、同じエラーが発生します。質問に投稿したコードはWindowsで動作します。 PE環境では、何かが異なっています。 – Jeremy