2017-07-26 4 views
0

Ich schrieb ein Skript und es sieht so aus, als ob es nach Eingabe fragt, wenn ich versuche, Dateien von einem Ort auf mehrere Windows-Server zu kopieren.Skript zum Kopieren von Dateien auf mehrere Server

Was mache ich hier falsch? Ich möchte nur das Skript ohne irgendeine Interaktion ausführen und es sollte die Dateien von der Quelle auf mehrere Server auf das Ziel kopieren.

Punkt das Skript in die Textdatei

$Computers = Read-Host "C:\File Copy\Source Server" 

Legt die varible für den Speicherort der Datei ei c: \ temp \ File.xxx

$Source = Read-Host "C:\File Copy\prod.csv" 

Legt die varible für die Zieldatei

$Destination = Read-Host "C:\File copy\Servers" 

Zeigt die Computernamen auf dem Bildschirm

an
Get-Content $Computers | foreach {Copy-Item $Source -Destination \\$_\c$\$Destination} 
+0

Sie benötigen den Read-Host nicht. Nicht sicher, was Sie in der letzten Zeile tun möchten ... – bunzab

Antwort

2

Read-Host erhält die Eingabe vom Konsolenhost. Entfernen Sie diese einfach und setzen Sie die Variable auf Ihre Pfadzeichenfolgen, wenn Sie nicht dazu aufgefordert werden möchten.

Auch Ihre $Computers Variable sieht nicht so aus, wie es auf eine Datei mit Computernamen zu Get-Content von zeigt. Zweitens sieht Ihre Zielvariable nicht wie etwas aus, das korrekt mit dem UNC-Pfad verknüpft ist. \\$_\C$ Ich habe das Skript aktualisiert, um diese beiden Probleme zu beheben.

# Point the script to a text file with a list of computers 
$Computers = "C:\File Copy\Source Server\ComputerList.txt" 

# Sets the variable for the source file location 
$Source = "C:\File Copy\prod.csv" 

# Sets the variable for the file destination 
$Destination = "File copy\Servers" 

# Get the content of $computers and copy Source to Destination 
Get-Content $Computers | ForEach-Object {Copy-Item $Source -Destination (Join-Path "\\$_\c`$\" $Destination)} 
+0

Könnte es sinnvoll sein, etwas wie "C: \ File Copy \ SourceServerList.txt" 'in Ihrem Beispiel zu verwenden, um es offensichtlich zu machen, dass es eine Datei ist, die benötigt wird? –

+0

@JamesC. Ich stimme zu, es ist schwer zu wissen, was beabsichtigt war, aber ich habe das Skript mit dem aktualisiert, was ich für richtig halte – BenH

Verwandte Themen