2016-03-23 4 views
1

Ich versuche, eine Datei von einer VM, auf die ich mit meinem Skript zugreifen kann, auf ein Netzlaufwerk zu kopieren, auf das ich auch mit meinem Skript zugreifen kann, wenn ich sie manuell einfüge Ich habe ein paar tausend Benutzer, also möchte ich ein Skript schreiben, um von einem CSV zu ziehen und die Dateien zu kopieren. Ich komme immer wieder darauf, System.Object nicht zu konvertieren, wenn es um das Ziel geht. Unten ist mein Skript und ein Teil des CSV.Powershell Copy-Item mit Variablen für das Ziel

$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

'| Select -ExpandProperty HomeDrivePath' –

Antwort

2

Try this:

$Credential = Get-Credential 

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

Dies sollte die Kopie einmal für jeden Datensatz in der CSV-Datei wiederholen, was ich denke, Sie zu tun beabsichtigen.

+0

'% 'ist der Pipeline-Alias ​​für' foreach-object' also was passiert ist, sagen wir foreach Zeile im csv Aufruf 'Copy-item' und '$ _' repräsentiert die aktuelle Linie in der Schleife. – Nick

+0

Sie haben das richtig verstanden. –

Verwandte Themen