Question Créer dossier via chemin UNC

Plus d'informations
il y a 9 ans 7 mois #22486 par kiviste
Bonjour,

Je n'arrive pas à créer un dossier via un chemin réseau en utilisant un job (start-job)

[code:1]
$ImportServeur = Import-Csv -Path \"W:\SAUVEGARDE\SAUVEGARDE_VHD\ListeServeurs.csv\" -Delimiter \";\"

ForEach ($Serveur in $ImportServeur)
{
$SERVEUR_HOTE = $Serveur.SERVEUR_HOTE
$SERVEUR_VIRT = $Serveur.SERVEUR_VIRT

$arguments = @($SERVEUR_HOTE,$SERVEUR_VIRT,$BackupFolder_Interne)

Start-Job -ArgumentList $arguments -ScriptBlock {

# Paramétrage des variables avec les arguments
$HOTEName = $args[0]
$VMName = $args[1]
$BackupFolder_Interne = $args[2]

$jour = Get-Date

# Paramétrage Dossier Interne
$BackupFolder_Interne = \"\\$HOTEName\Sauv_VHD\"

# Création du dossier de sauvegarde
New-Item -path $BackupFolder_Interne -name \"$VMName $(($jour).tostring('dd-MM-yyyy'))\" -type directory
}

}
Get-Job | Wait-Job
Get-Job | Receive-Job

# Suppression des jobs
Get-Job | Remove-Job -Force
[/code:1]

[code:1]Le chemin réseau n’a pas été trouvé.
+ CategoryInfo : WriteError: (\\SERVEUR-TEST\S...TEST 14-10-2016:«»String) [New-Item], IOException
+ FullyQualifiedErrorId : CreateDirectoryIOError,Microsoft.PowerShell.Commands.NewItemCommand
+ PSComputerName : localhost[/code:1]

pourtant si j’exécute ce même script sans start-job ça fonctionne et si je mets mon chemin unc en dur plutôt que de passer par une variable ça fonctionne aussi.
j'ai pas trouvé d'explication sur les messages déjà postés sur le forum.
Une idée ??

Merci<br><br>Message édité par: kiviste, à: 14/10/16 15:02

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

Plus d'informations
il y a 9 ans 7 mois #22490 par Philippe
Réponse de Philippe sur le sujet Re:Créer dossier via chemin UNC
salut kiviste

Le chemin réseau n’a pas été trouvé.
+ CategoryInfo : WriteError: (\\SERVEUR-TEST\S...TEST 14-10-2016:String) [New-Item], IOException
+ FullyQualifiedErrorId : CreateDirectoryIOError,Microsoft.PowerShell.Commands.NewItemCommand
+ PSComputerName : localhost

je pense que tu n'a qu'un problème de droit sur le dossier. un premier test rapide me montre qu'il n'y a pas de problème de fonctionnement du script

par contre il te faut choisir entre c'est deux lignes pour la variable $BackupFolder_Interne :
[code:1] $BackupFolder_Interne = $args[2]


$BackupFolder_Interne = \&quot;\\$HOTEName\Sauv_VHD\&quot; [/code:1]ç'est peut être la source de ton problème !? :blink:

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

Plus d'informations
il y a 9 ans 7 mois #22491 par kiviste
Réponse de kiviste sur le sujet Re:Créer dossier via chemin UNC
mais si je fais

[code:1]
$tutu= \&quot;\\$HOTEName\Sauv_VHD\&quot;

$jour = Get-Date

New-Item -path $tutu -name \&quot;$VMName $(($jour).tostring('dd-MM-yyyy'))\&quot; -Force -type directory
[/code:1]


[code:1]Le chemin d'accès n'a pas une forme conforme.
+ CategoryInfo : InvalidArgument : (\\Serveur-Test\Sauv_VHD:«»String) [New-Item], ArgumentException
+ FullyQualifiedErrorId : CreateDirectoryArgumentError,Microsoft.PowerShell.Commands.NewItemCommand
+ PSComputerName : localhost[/code:1]

par contre si je met

[code:1]
$tutu= \&quot;\\serveur-test\Sauv_VHD\&quot;

$jour = Get-Date

New-Item -path $tutu -name \&quot;$VMName $(($jour).tostring('dd-MM-yyyy'))\&quot; -Force -type directory
[/code:1]


la il est content..grrr :S

c'est quoi le problème avec la variable $HOTEName alors qu'il arrive bien à la lire...<br><br>Message édité par: kiviste, à: 17/10/16 17:23

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

Plus d'informations
il y a 9 ans 7 mois #22492 par kiviste
Réponse de kiviste sur le sujet Re:Créer dossier via chemin UNC
mais si je fais

[code:1]
$tutu= \&quot;\\$HOTEName\Sauv_VHD\&quot;

$jour = Get-Date

New-Item -path $tutu -name \&quot;$VMName $(($jour).tostring('dd-MM-yyyy'))\&quot; -Force -type directory
[/code:1]


[code:1]Le chemin d'accès n'a pas une forme conforme.
+ CategoryInfo : InvalidArgument : (\\Serveur-Test\Sauv_VHD:«»String) [New-Item], ArgumentException
+ FullyQualifiedErrorId : CreateDirectoryArgumentError,Microsoft.PowerShell.Commands.NewItemCommand
+ PSComputerName : localhost[/code:1]

par contre si je met

[code:1]
$tutu= \&quot;\\serveur-test\Sauv_VHD\&quot;

$jour = Get-Date

New-Item -path $tutu -name \&quot;$VMName $(($jour).tostring('dd-MM-yyyy'))\&quot; -Force -type directory
[/code:1]


la il est content..grrr :S

c'est quoi le problème avec la variable $HOTEName alors qu'il arrive bien à la lire...<br><br>Message édité par: kiviste, à: 17/10/16 17:22

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

Plus d'informations
il y a 9 ans 7 mois #22494 par Philippe
Réponse de Philippe sur le sujet Re:Créer dossier via chemin UNC
peut tu faire affichage de $tutu
[code:1]write-host $tutu[/code:1]
si tu a bien \&quot;\\serveur-test\Sauv_VHD\&quot; est non \&quot;\\serveur-test\Sauv_VHD: String\&quot; car le string est en trop

peut tu donné le type des deux variables suivante quand ça ne fonctionne pas stp
tu peut faire de cette façon :
[code:1] $BackupFolder_Interne = \&quot;\\$HOTEName\d$\VM\test1\&quot;
$BackupFolder_Interne
$HOTEName.gettype()
$BackupFolder_Interne.gettype()
# Création du dossier de sauvegarde
New-Item -path $BackupFolder_Interne -name \&quot;$VMName $(($jour).tostring('dd-MM-yyyy'))\&quot; -type directory

[/code:1]
tu devrais avoir quelque chose comme ça :
[code:1]\\serveur-test\Sauv_VHD

IsPublic IsSerial Name BaseType

----
True True String System.Object
True True String System.Object
[/code:1]

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

Plus d'informations
il y a 9 ans 7 mois #22495 par kiviste
Réponse de kiviste sur le sujet Re:Créer dossier via chemin UNC
Humm si je fais

Write-Host $tutu
Write-Host $tutu.gettype()

il me donne

\\serveur-test\Sauv_VHD
System.String

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

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