Question Accès refusé en script mais pas par l'explorateur

Plus d'informations
il y a 10 ans 8 mois #20723 par boutou
Bonsoir,

J'ai un soucis lorsque j'essaie de créer une archive globale pour 4 repertoires, j'ai un accès refusé lors de la création de l'archive. Je ne dispose pas de PS en V5, donc j'utilise la dll system.IO.Compression.filesystem.

Voilà le code, basique, certes mais qui plante !

[code:1]$source=\"c:\temp\*\"
$toarchive = get-childitem \"c:\temp\\" | where {$_.psiscontainer -eq \"true\"}

$archives=\"C:\archives\"

$date = get-date -format yyyy-MMMM-dd_hh-mm

foreach ($archive in $archives)
{
copy-item -path $source -destination $archives -ea silentlycontinue
$name = \"toto$date.zip\"
Add-Type -assembly \"system.io.compression.filesystem\"
[io.compression.zipfile]::CreateFromDirectory($name, $archives)
}
[/code:1]

Si une âme charitable passe dans les parrages...:blush:

Voilà l'erreur :
Exception calling \"CreateFromDirectory\" with \"2\" argument(s): \"L'accès au chemin d'accès 'C:\archives' est refusé.\"
At line:18 char:1
+ [io.compression.zipfile]::CreateFromDirectory($name, $archives)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : UnauthorizedAccessException<br><br>Message édité par: boutou, à: 21/09/15 20:12

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 8 mois #20724 par boutou
C'est bon j'ai trouvé ! pur info voilà le code corrigé

[code:1]$toarchive = get-childitem $source | where {$_.psiscontainer -eq \&quot;true\&quot;}
$date = get-date -format yyyy-MMMM-dd_hh-mm

foreach ($s in $source)
{
Add-Type -assembly \&quot;system.io.compression.filesystem\&quot;
$source=\&quot;c:\temp\\&quot;
$destfile = \&quot;c:\archives\XGJ$date.zip\&quot;
[System.IO.Compression.ZipFile]::CreateFromDirectory($source,$destfile)
}[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 8 mois #20725 par Arnaud Petitjean
Bonsoir Boutou,

Content pour toi que tu aies pu résoudre ton problème :)

Ceci étant, si j'étais toi je ne ferais le Add-Type qu'une seule fois car cela ne sert à rien de le mettre dans ton ForEach. En effet le laisser tel qu'il est pourrait même te saturer la mémoire.

Cordialement,

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena