xpxy15
Goto Top

Powershell Datei kopieren mit ACL Script funktioniert nicht

Hallo Zusammen

Ich habe einen Skript geschrieben um Einen Datei zu kopieren mit ACL. Davor sollte er noch testen ob der Pfad vorhanden ist, wenn nicht Fehlerausgabe und das Skript sollte sich auch nicht beenden, wenn der Pfad nicht vorhanden ist. Was habe ich falsch gemacht? Könnt Ihr mir bitte helfen

Cls

$copypfad= Read-Host "Bitte geben Sie der zu kopierende Pfad ein "  
$pastepfad= Read-Host "Geben Sie den Ziel Pfad ein"  

$test1 = test-path -path $copypfad
$test2 = test-path -path $pastepfad

if($test1 -like "False"){  
    Write-Host "Bitte geben Sie ein gültiges Pfad ein! "  
    return
}
if($test2 -like "False"){  
    Write-Host "Bitte geben Sie ein gültiges Pfad ein! "  
    return
}

Copy-item -path $copypfad -Destination $pastepfad


$ACL=Get-Acl $copypfad                        #Holt Die ACL von alten Ordner
Set-Acl -path $pastepfad -AclObject $ACL      #Kopiert es in den neuen Pfad

Danke im Vorraus

XPXY15

Content-Key: 309103

Url: https://administrator.de/contentid/309103

Ausgedruckt am: 19.03.2024 um 07:03 Uhr

Mitglied: Marabunta
Lösung Marabunta 06.07.2016 um 18:06:14 Uhr
Goto Top
Das löst nicht alle Probleme(Copy-item : Ein Element mit dem angegebenen Namen "C:\test2\test" ist bereits vorhanden.)...,
aber sonst funktioniert das gut:
Cls

Do{$copypfad= Read-Host "Bitte geben Sie der zu kopierende Pfad ein "}  
While((Test-Path $copypfad) -ne $true)

Do{$pastepfad= Read-Host "Geben Sie den Ziel Pfad ein"}  
While((Test-Path $pastepfad) -ne $true)

Copy-item -path $copypfad -Destination $pastepfad


$ACL=Get-Acl $copypfad                        #Holt Die ACL von alten Ordner
Set-Acl -path $pastepfad -AclObject $ACL      #Kopiert es in den neuen Pfad
Mitglied: xpxy15
xpxy15 07.07.2016 um 08:01:46 Uhr
Goto Top
Danke Marabunta

Dieser Skript funktioniert schon besser als meins. Brauch nur eine Fehlerausgabe Laut meiner Aufgabenstellung.

mfg
xpxy15
Mitglied: 129813
Lösung 129813 07.07.2016 aktualisiert um 08:44:12 Uhr
Goto Top
cls
while($true){
    $copypfad = Read-Host "Bitte geben Sie der zu kopierende Pfad ein "  
    if(!(Test-Path $copypfad)){
        write-host "Path does not exists, repeat your entry." -F Red  
    }else{break}
}

while($true){
    $pastepfad = Read-Host "Geben Sie den Ziel Pfad ein" Pfad ein "  
    if(!(Test-Path $pastepfad)){
        write-host "Target path does not exists, repeat your entry." -F Red  
    }else{break}
}

Try{
    Copy-item -path $copypfad -Destination $pastepfad
    $ACL=Get-Acl $copypfad
    Set-Acl -path $pastepfad -AclObject $ACL 
}catch{
    throw $_.Exception.Message
}
Regards
Mitglied: xpxy15
xpxy15 07.07.2016 um 09:12:46 Uhr
Goto Top
Thanks highload

This script works.