前提
csvを読み取って参照元PCが所属しているOUに対象PCを所属させたい。
本スクリプトの使い方としては例えばWin1012345が故障してしまい、同じユーザにWin1033333を貸与して
おなじ構成で使ってもらうときにcsvを読み込ませて使ってもらうような仕掛けにしたいと考えております。
Win1012345のOU構成をWin1033333へ複製したい。
参照元PCはSourcePC
対象PCはMovePC
SourcePCの所属しているOU情報を読み取って、対象PCをSourcePCの所属しているOUへ移動させたい。
(例)hogePC.csv
SourcePC,MovePC
Win1012345,Win1033333
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲▲機能を動作するようにする
発生している問題・エラーメッセージ
エラーメッセージ Move-ADObject : オブジェクトの親のインスタンスが作成されていないか削除されているため、操作は実行できませんでした。 発生場所 C:\hoge.ps1:xx 文字:x + Move-ADObject -Identity $MovePCObject -TargetPath $MovePC_OU + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=xxxxx-xxxx...xxxxx,DC=local:ADComputer) [Move-ADObject], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:xxxx,Microsoft.ActiveDirectory.Management.Commands.MoveADObject
該当のソースコード
# ActiveDirectoryモジュールインポート Import-Module ActiveDirectory Import-Csv $InputFile | % { $SourcePC = $_.SourcePC $MovePC = $_.MovePC OUmove $SourcePC $MovePC } $InputFile = "$str_path\hogePC.csv" Function OUmove([string]$SourcePCs, [string]$MovePCs) { $SourcePCDN = "" $SourcePCDN = (Get-ADComputer -Identity $SourcePCs).DistinguishedName $MovePCObject = "" $MovePCObject = Get-ADComputer -Identity $MovePCs $count = $SourcePCDN.IndexOf(",")+1 $MovePC_OU = $SourcePCDN.Remove(1,$count) # 処理実行 Move-ADObject -Identity $MovePCObject -TargetPath $MovePC_OU } 最終行を読み取ったときにエラーメッセージが表示表示されます。
試したこと
Move-ADObject -Identity $MovePCObject -TargetPath $MovePC_OU
-Identityこの引数を参照元ホスト名に変更したりはしましたがダメでした。
上記はOU情報を抜き出すと最初にホスト名が表示されてしまうため最初の","+1文字分移動して
純粋なOU情報のみを抜き出して対象PCへ移動させています。
補足情報(FW/ツールのバージョンなど)
https://social.technet.microsoft.com/Forums/ja-JP/ab728a1b-bc26-4e08-966d-7c7d9fc32705/powershell123951242412427ou12398312272120512395123881235612390
上記を確認しましたが移動先のOUが決まっているcsvのようです。
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー