Question [RESOLU] Erreur suite a Invoke-WebRequest

Plus d'informations
il y a 7 ans 6 mois #27590 par Pierryck M
bonsoir :side:

Tout d'abord je tiens a dire que je debute vraiment , dans le sens ou je n'ai JAMAIS pris de cours PowerShell et que j'apprends sur le tas ^^

je vous explique mon probleme :

Je voudrais telecharger depuis un lien specifique , un fichier specifique et l'enregistrer dans un repertoire specifique ( beaucoup trop de \" specifique \" dans cette phrase :whistle: ) et ce , en uttilisant la commande \" Invoke-WebRequest \" , la declinaison sans l'argument \" -OutFile \" .


mais je suis confronté a une erreur me laissant sur le tas , je vous l'ai dit je debute . . . :blush:

Voici le code que j'uttilise actuellement :

[code:1]$downloadURL = 'www.mediafire.com/file/50zmt96dwr63i1x/1.2.13.Appx/file' ; $downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null ; $downloadRequest | out-null ; $downloadRequest.Links | out-null ; $AppxLink = ($downloadRequest.Links | Where-Object {$_ -like '*1.2.13*' -and $_-like '*download*'}).href | out-null ; $fileContents = $downloadRequest.Content | out-null ; [io.file]::WriteAllBytes(\"c:\download\$fileName\",$fileContents) | out-null[/code:1]

J'uttilise l'argument \" -OutNull \" pour attendre que la premiere commande finisse avant que ne debute la suivante . . .

Voici l'erreur que j'obtiens :

Exception lors de l'appel de « WriteAllBytes » avec « 2 » argument(s) : « La valeur ne peut pas être null.
Nom du paramètre : bytes »
Au caractère Ligne:1 : 421
+ ... out-null ; [io.file]::WriteAllBytes(\"c:\download\$fileName\",$fileCon ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentNullException




J'ai bien entendu fais des recherches avant de poster ici mais euh . . . bah en vain quoi :/

Si quelqu'un pouvait m'aider et surtout m'expliquer ou est l'erreur je vous en serai tres reconnaissant :)


Merci a vous et a bientot j'espere ^^


Pierre.M

Message édité par: Pierre.M, à: 21/09/18 19:45<br><br>Message édité par: Pierre.M, à: 7/10/18 07:42

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

Plus d'informations
il y a 7 ans 6 mois #27592 par Laurent Dardenne
Salut,
Pierre.M écrit:

( beaucoup trop de \&quot; specifique \&quot; dans cette phrase )

De les retirer ne change pas le sens :-)
Par contre de reformater le code d'exemple qu tu fournis faciliterais sa relecture :-)

Quant à l'erreur, ton objet en paramètre n'est pas renseigné( elle contient $null). Une possible erreur en amont ?

Tutoriels PowerShell

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

Plus d'informations
il y a 7 ans 6 mois #27595 par Pierryck M
Bonsoir :)

oui tu as raison , retirer les \&quot; spécifique \&quot; ne changera pas le sens ^^

Voici le code reformaté avec une commande par ligne en espérant que ça puisse aider :side:

[code:1]
$downloadURL = 'www.mediafire.com/file/50zmt96dwr63i1x/1.2.13.Appx/file' ;

$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null ;

$downloadRequest | out-null ;

$downloadRequest.Links | out-null ;

$AppxLink = ($downloadRequest.Links | Where-Object {$_ -like '*1.2.13*' -and $_-like '*download*'}).href | out-null ;

$fileContents = $downloadRequest.Content | out-null ;

[io.file]::WriteAllBytes(\&quot;c:\download\$fileName\&quot;,$fileContents) | out-null
[/code:1]

Quant à l'erreur, ton objet en paramètre n'est pas renseigné( elle contient $null). Une possible erreur en amont ?

Possible ? Oui surement mais tres sincèrement j'ai recherché , j'ai essayé d'autres syntaxes , retiré les -OutNull
( du coup j'ai les commandes qui se chevauchent et je me retrouve avec une suite d'erreur interminable comme si je m'etait chopé un virus )
J'ai meme essayé la magie noire et le spiritisme , mais la aussi en vain , je n'ai rien trouvé :/

Mais comme dit plus haut je debute c'est pour ca que je poste ici , en esperant que des personnes avec plus dexperience que moi pourraient me guider et peut etre voir ce que je n'ai pas vu :)

Message édité par: Pierre.M, à: 21/09/18 22:40<br><br>Message édité par: Pierre.M, à: 22/09/18 06:51

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

Plus d'informations
il y a 7 ans 6 mois #27596 par Laurent Dardenne
Pierre.M écrit:

J'ai meme essayé la magie noire et le spiritisme , mais la aussi en vain , je n'ai rien trouvé :/

C'est peut être dû à une table carrée, d'habitude ça marche avec une table ronde. Me demande pas pourquoi...

Sinon, sais-tu ce que fait Out-null ici ?
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
[/code:1]
Non ? Alors Get-Help Out-null
Et même plus
[code:1]
(Get-Help Out-null -full).returnValues
[/code:1]
d'où
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
Write-Warning \&quot;$($null -eq $downloadRequest)\&quot;
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 22/09/18 13:47

Tutoriels PowerShell

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

Plus d'informations
il y a 7 ans 6 mois #27597 par Laurent Dardenne
Pierre.M écrit:

J'utilise l'argument \&quot; -OutNull \&quot; pour attendre que la première commande finisse avant que ne débute la suivante . . .

Pas certains de cette présupposition.
Invoke-WebRequest me semble synchrone, je n'ai pas regardé le code source :P

Tutoriels PowerShell

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

Plus d'informations
il y a 7 ans 6 mois #27598 par Pierryck M
Laurent Dardenne écrit:

Pierre.M écrit:

J'ai meme essayé la magie noire et le spiritisme , mais la aussi en vain , je n'ai rien trouvé :/

C'est peut être dû à une table carrée, d'habitude ça marche avec une table ronde. Me demande pas pourquoi...

Sinon, sais-tu ce que fait Out-null ici ?
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
[/code:1]
Non ? Alors Get-Help Out-null
Et même plus
[code:1]
(Get-Help Out-null -full).returnValues
[/code:1]
d'où
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
Write-Warning \&quot;$($null -eq $downloadRequest)\&quot;
[/code:1]&lt;br&gt;&lt;br&gt;Message édité par: Laurent Dardenne, à: 22/09/18 13:47


Je te remercie de ta reponse mais . . .

Peut tu m'expliquer s'il te plait ? non pas que je n'ai pas cherché a comprendre bien au contraire , mais j'avoue ne pas comprendre :blush:

Sinon, sais-tu ce que fait Out-null ici ?

De base dans le programme powershell complet ( plus un tas de fenetre avec des boutons qu'un programme ) la suite de commandes que je t'ai donnée devait s'executer les unes apres les autres dans l'ordre indiqué quand on cliquait sur le bouton \&quot; INSTALL\&quot; , on m'avait ( ou plutot Internet m'avait ) expliqué que -OutNull servait a dire a powershell qu'il devait attendre la fin de l'execution de la commande rattachée a -outNull avant d'entamer la suivante :/

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

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