Hallo zusammen,
in meinem Powershell Script führe ich ein einen Robocopy-Befehl Remote auf einem Zielserver aus. Leider gibt der Robocopy-Befehl keinen Output in der Powershell zurück, wenn ich den Parameter /Log benutze. Nutze ich den Parameter /Log nicht, kommt der Output auf dem scriptausführenden Server an. Interessanterweise bringt mich der Parameter /tee nicht weiter. Auch bei der Angabe dieses Parameters gibt es keine Rückgabe eines Outputs. Wie kann ich Robocopy ein Log schreiben und gleichzeitig einen Output im der Shell ausgeben lassen?
Danke bereits im Voraus für die Rückmeldung.
function InvokeCommandOldServer () { Write-Host "Verbinde mit $ServerOld" $Logdatei = Invoke-Command -ComputerName $ServerOld -Credential $Credential -Authentication Credssp -ScriptBlock { Write-Host "Verbindung hergestellt" $Sharename1 = $args[0] $Username= $args[1].name $NeuerServer= $args[2] $NeuerShare = $args[3] $Logdatei = "/log:C:\Log.txt" Write-Host "Variablen übernommen. Notiere Shares" $Folderpath=(Get-WmiObject -Class Win32_Share | Select-Object -Property * | Where-Object {$_.Name -eq $Sharename1}).Path $Userpath=(Get-Childitem -Path $Folderpath -Filter {*} | Where-Object {$_.Name -eq $Username}).fullname # Schließe aus, dass Userpath leer ist if ($Userpath -ne $null) { Write-Host "Shares notiert. Starte Robocopy - ACHTUNG dies kann etwas dauern!" $NeuerServer="\\$NeuerServer\$NeuerShare\$Username" $cmd = 'c:\windows\system32\robocopy.exe' $Arguments = $Userpath,$NeuerServer,'/MIR','/COPYALL','/SEC','/W:3','/R:3','/tee',$Logdatei& $cmd $Arguments } else { Write-Host "Kann Verzeichnis auf Server nicht finden. Bitte prüfen!" } $Content = get-content -Path "C:\Log.txt" return $Content } -ArgumentList ($Sharename1,$User,$ServerNew,$Sharename2) return $Logdatei }