2016-03-23 9 views
1

スクリプトからアクセスできるVMから、スクリプトを手動で入力するとアクセスできるネットワークドライブにファイルをコピーしようとしています私は数千人のユーザーがいるので、私はcsvからプルしてファイルをコピーするスクリプトを作成したいと思っています。私は、宛先になると、変換できないsystem.objectを実行し続けます。以下は私のスクリプトとcsvの一部です。Powershellコピー先の変数を使用した項目

$Credential = Get-Credential 

$Datamigrate = Import-CSV "\\H:\Test\Jon.Doe\PLCXX-XXVM.csv" 

$DesktopPath = $Datamigrate|Select DesktopPath 

$HomeDrivePath = $Datamigrate|Select HomeDrivePath 

Copy-Item $DesktopPath -Destination $HomeDrivePath -Recurse 

Error Capture

Excel Capture

+0

'| -ExpandProperty HomeDrivePath' –

答えて

2

これを試してみてください:

$Credential = Get-Credential 

(Import-CSV "\\H:\Test\Jon.Doe\PLCXX-XXVM.csv") | 
% {Copy-Item $_.DesktopPath -Destination $_.HomeDrivePath -Recurse} 

これは、CSVファイル内のレコードごとに一回、私はあなたがするつもり想像何かをコピーを繰り返す必要があります。

+0

'% 'は' foreach-object'のパイプラインエイリアスです。どういうことが起こっているのかはcsvコールの 'Copy-item'でforeach行を指定し、' $ _'が現在のループ内の行。 – Nick

+0

あなたはそれを得ています。 –