none
SCCM2012R2 copy files to Client RRS feed

  • Frage

  • Hallo zusammen, ich muss auf unseren Clients einige Dateien Kopieren. Folgendes habe ich versucht aber leider wir nur das Verzeichnis angelegt und keine Dateien kopiert.

    1) Create a parent folder in your source file repository.

    2) Create a sub-folder in the folder just created called Files2Copy and place the files you are going to copy in this folder.

    3) Create a batch file called filecopy.bat with the below two lines and place it in the parent directory created in step 1. This  batch file will create a folder specified on the command-line (if it doesn’t already exist) and copy the files from the Files2Copy Folder into it.

    if not exist "%1" md "%1"

    copy /y "%~dp0Files2Copy/*.*""%1"

    4) Create a package using the parent directory created in step 1 as the source file location.

    6) Create a program and set the command line to

    filecopy.bat c:DesktopTools

    7. Advertise/Deploy the program to the desired systems.

    Leider wird bei mir nur das Verzeichnis angelegt, aber die Files nicht kopiert. Das ganze hab eich auf folgendem Blog

    http://blog.configmgrftw.com/copying-files-to-clients-using-configmgr/

    danke für eure Hilfe

    Gruss Mario


    System Engineer

    Montag, 7. September 2015 11:04

Antworten

Alle Antworten

  • Hallo Mario,

    warum so kompliziert? Erstell Dir einfach ein Verzeichnis mit deinen Quelldaten und starte folgenden Befehl in einer Batchdatei. Beispielsweise in filecopy.bat.

    XCOPY Ordnername c:\Ordnername\ /S /E /C /H /O /R /Y /D /V


    http://www.clientmgmt.de

    Montag, 7. September 2015 12:57
  • vielen Dank das hat funktioniert.

    - ich habe im bat-file den unc Pfad angegeben nehme an das muss so sein ?

    if not exist "%1" md "%1"
    xcopy "\\al-s140\Content\OfficeTemplates\Files2Copy\*.*" "%1" /S /E /C /H /O /R /Y /D /V

    - wie kann ich den Copy-Vorgang wiederholen lassen ?

    - Reicht das wenn ich beim schedule AS soon as possible und bei Rerun behavior : Always rerun program definiere ?

     Gruss Mario


    System Engineer

    Montag, 7. September 2015 16:18
  • Das reicht nicht, denn "asap" ist nur 1x. Du musst einen wiederkehrenden Schedule angeben.

    Torsten Meringer | http://www.mssccmfaq.de

    Montag, 7. September 2015 17:39
    Beantworter
  • Evtl. solltest Du uns das Ziel deiner Unternehmung nochmal genauer erörtern. Was genau hast Du vor?

    http://www.clientmgmt.de

    Dienstag, 8. September 2015 05:21
  • Hallo zusammen,ich möchte auf allen unsern Clients einige Dateien austauschen.  Auf einer Testmaschine hat dies nun mit dem Bat-File funktionier.

    if not exist "%1" md "%1"
    xcopy "\\al-s140\Content\Templates\Files2Copy\*.*" "%1" /S /E /C /H /O /R /Y /D /V

    chcp 1252
    del "%1\123_Vorlage.potx" /S /F
    del "%1\test.potx" /S /F

    Package habe ich wie oben beschrieben erstellt, den Intervall habe ich auf 5 min gesetzt. Soweit läuft alles Wie kann ich ein powershell script anstelle eines Bat-Files verwenden?

    müsste man das so machen:

    Powershell.exe -Command "& C:\Scripts\xy.ps1; exit $LASTEXITCODE"

    Gruss Mario


    System Engineer

    Dienstag, 8. September 2015 09:34

  • Package habe ich wie oben beschrieben erstellt, den Intervall habe ich auf 5 min gesetzt. Soweit läuft alles Wie kann ich ein powershell script anstelle eines Bat-Files verwenden?

    Somit führen alle Clients das Skript alle 5min aus. Wenn das gewünscht sein sollte, wäre es ja auch richtig ... 
    André's Frage zielte vermutlich eher darauf ab, wann und in welchem Zyklus Files ausgetauscht werden sollen (zB täglich, einmalig, wöchentlich). 

    Torsten Meringer | http://www.mssccmfaq.de

    Dienstag, 8. September 2015 09:48
    Beantworter
  • Beim Aufruf eines PowerShell-Scripts würde ich eher den Parameter -File verwenden und die Rückgabe des Exit-Code im Script erledigen:

    # Copy-FilesToLocalFolder.ps1
    
    <#
    .EXAMPLE
       Use the following command line to execute the script via SCCM:
       %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NonInteractive -File Copy-FilesToLocalFolder.ps1 -Destination $env:TEMP\TestDir
    #>
    
    
    Param
    (
        [Parameter(Mandatory=$false)]
        [ValidateScript({Test-Path $_ -PathType Container})]
        [string]$Path = (Join-Path $PWD.Path -ChildPath 'FilesToCopy'),
    
        [Parameter(Mandatory=$true)]
        [string]$Destination
    )
    
    if (-not (Test-Path $Destination -PathType Container))
    {
        New-Item $Destination -ItemType Directory
        if (-not $?) { exit 1 }
    }
    
    & $env:SystemRoot\System32\xcopy.exe `"$Path`" `"$Destination`" /sechorydv
    exit $LASTEXITCODE

    Robocopy.exe würde übrigens nur die geänderten Dateien kopieren. Wäre auch noch eine Überlegung wert.

    Gruß
    Joachim


    • Bearbeitet Joachim Meyer Montag, 21. September 2015 19:09 Sollte -File und nicht -Version heissen
    Dienstag, 8. September 2015 13:32