Question argument au paramètre « Path », car il a la valeur

Plus d'informations
il y a 9 ans 5 mois #22501 par Anthony
Bonjour à tous,

En premier lieu je me présente, je m'appelle Anthony, j'ai 27 ans, je suis apprenti ingénieur système chez Atos.

Je débute en Powershell et on m'a demandé de reprendre un script qu'un précédant collègue avait crée , la plupart du travail est fait mais j'ai une erreur au moment de récupérer une variable pour un chemin de destination, pourtant avec le mode debug il semble bien la récupérer...j'ai cherché sans succès sur le net, j'ai testé plein de solutions mais en vain, vous êtes mon dernier espoir :D

Je vous met une partie du scipt en question:

[code:1]Function Test-UserCredential {

$login= $Champ_login.text
$password= $Champ_password.text|ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PsCredential($login,$password)



$computers = Import-CSV \".\computers.txt\" -Delimiter \";\"
foreach ($computer in $computers)

{

$destPath = \"\\\" + $computer.computer + \"\c$\"
$delpath = \"\\\" + $computer.computer + \"\c$\test-access.txt\"


try {



Invoke-Command -ComputerName $computer.computer -Credential $cred -ScriptBlock {New-Item -Path $destPath -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force}


$OutputBox.Text += \"Account rechable with \" + $computer.computer + \" server. `r`n\"
remove-item $delpath



}






catch


{

$OutputBox.Text += \"Account unrechable with \" + $computer.computer + \" server. Please verify yours parameters. `r`n\"


}


}

}[/code:1]

j'ai cette erreur:

Impossible de lier l'argument au paramètre « Path », car il a la valeur Null.
+ CategoryInfo : InvalidData : (:) [New-Item], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.NewItemCommand
+ PSComputerName : EFR01546
Je vous remercie pour toute votre aide.

Cordialement.
Anthony.<br><br>Message édité par: thony62, à: 19/10/16 09:33

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

Plus d'informations
il y a 9 ans 5 mois #22502 par Philippe

En premier lieu je me présente, je m'appelle Anthony, j'ai 27 ans, je suis apprenti ingénieur système chez Atos.
Je débute en Powershell

Bonjour Anthony et bienvenue dans ce forum,

d'abord peut tu aussi nous aider en mettant les balises code sur les parties scripts de ton message, stp.
Ca nous facilite le travail de lecture de ton code !
pour ça tu surligne ton code et tu clique sur le bouton code au dessus de la zone de saisi du texte
-&gt;tu as la possibilité d’éditer (modifier) ton premier post
merci
ne t'inquiète pas tu n'est pas le premier, c'est pas méchant ! :P

d'après cette erreur :
[code:1]Impossible de lier l'argument au paramètre « Path », car il a la valeur Null.
+ CategoryInfo : InvalidData : ( [New-Item], ParameterBindingValidationException[/code:1]
il semble que $delpath soit vide sur cette comande là :
[code:1]... {New-Item -Path $destPath ....[/code:1]
cette ligne est lié à la précédente :
[code:1]$delpath = \&quot;\\&quot; + $computer.computer + \&quot;c$test-access.txt\&quot;[/code:1]en tenant compte des erreurs d'affichages :
si c'est la seule erreur généré alors ça peut être le fichier csv qui ne contient pas la colonne \&quot;computer\&quot; ou qui n'est pas au bon format :ohmy:
si le fichier est bon, fait la correction des balises cité au debut du message stp

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

Plus d'informations
il y a 9 ans 5 mois #22503 par Anthony
Bonjour 6ratgus,

Je te remercie pour ton aide :)

J'ai modifié comme demandé pour que tu y vois plus clair ;)
Alors mon fichier csv est bien paramétré avec la section computer et quand je mets un point d'arrêt je vois que la balise est bien rempli...c'est bizarre...

Je sèche...en faite ma fonction doit tester un compte de service pour savoir si on a accès au serveur en question avant de déployer un agent scom.

:) :)<br><br>Message édité par: thony62, à: 19/10/16 09:45

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

Plus d'informations
il y a 9 ans 5 mois #22504 par Laurent Dardenne
Salut,
utilise le paramètre -ArgumentList lors de l'appel à Invoke-Command. La variable $destPath est déclarée en local il faut donx la propager au code exécuté sur le distant.

Selon la version de PS tu peux aussi utiliser dans le code du scriptblock la porté Using ($using:Destpath)

Tutoriels PowerShell

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

Plus d'informations
il y a 9 ans 5 mois #22506 par Philippe
salut Laurent

bien vu ! :)
j'ai pas percuté quand j'ai vu invoke-command ! :whistle:

Anthony tu peut regarder la doc de invoke-command , principalement exemple 11 en fin de page

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

Plus d'informations
il y a 9 ans 5 mois #22508 par Anthony
Hello,

Je vais regarder tout ça et je vous tiens au courant, merci pour votre aide en tout cas les gars , c'est sympas ;)

Bonne journée à vous.


Bon j'ai toujours cette erreur de path null...:pinch:

J'ai bien regardé le lien mais ils disent que c'est pour faire appel par exemple à une variable local...

[code:1]Function Test-UserCredential {

$login= $Champ_login.text
$password= $Champ_password.text|ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PsCredential($login,$password)



$computers = Import-CSV \&quot;.\computers.txt\&quot; -Delimiter \&quot;;\&quot;
foreach ($computer in $computers)

{

$destPath = \&quot;\\\&quot; + $computer.computer + \&quot;\c$\&quot;
$delpath = \&quot;\\\&quot; + $computer.computer + \&quot;\c$\test-access.txt\&quot;


try {


Invoke-Command -ComputerName $computer.computer -ArgumentList $destPath -Credential $cred -scriptblock {New-Item -Path $destPath -ItemType file -value \&quot;This is a test for testing scom service account.\&quot; -name test-access.txt -force}




remove-item $delpath
$OutputBox.Text += \&quot;Account rechable with \&quot; + $computer.computer + \&quot; server. `r`n\&quot;




}






catch


{

$OutputBox.Text += \&quot;Account unrechable with \&quot; + $computer.computer + \&quot; server. Please verify yours parameters. `r`n\&quot;


}


}

}[/code:1]

Message édité par: thony62, à: 19/10/16 13:06<br><br>Message édité par: thony62, à: 19/10/16 13:49

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

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