Error: System.ArgumentException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand - powershell

While going through https://github.com/Azure/azure-iot-remote-monitoring at Local deployment and while debugging got an error:
Error:
At G:\Azure-IoT\2.Customize a preconfigured solution\Trail_1\azure-iot-remote-monitoring\Common\Deployment\DeploymentLib.ps1:704 char:23
+ $result = Invoke-RestMethod -Method "GET" -Uri $uri -Headers #{"Auth ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Invoke-RestMethod], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
I am using Azure power shell 1.6.0 Version.
Can anyone tell me what's going wrong ?

Related

Invoke web request throwing an error : Invoke-WebRequest : {"errors":[]}

I am using a powershell script to get details from a website via invoke-webrequest. By using the credentials i have connecting to the website using invoke-restmethod to get the token.
After getting the token i used the token to retrieve the details that i need by using invoke-webrequest. But then it is throwing the error this way.The URL is workingfine.
"Invoke-WebRequest : {"errors":[]}"
How can i get to know what is the problem with this request.
API Query:
Invoke-WebRequest -Headers #{"X-Token" = "$token"} -Method Get -Uri "$URL"
error message:
Invoke-WebRequest : {"errors":[]} At C:\temp\RTPA\rtpa_vault3.ps1:24 char:24
+ ... ltdetails = Invoke-WebRequest -Headers #{"X-Token" = "$tok ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Basic Authentication for Artifactory from PowerShell is throwing 403

I am trying to authenticate to JFROG from powershell i tried it with my token and its giving 403 forbidden
PS C:\Myproject> $myHeaders = #{'X-JFrog-Art-Api' = 'AKCp8sdFTEKF1Y5MDgM3M8RK6bRkKWoX43jWranZvS2U2DE82KFE7243F'}
PS C:\Myproject> Invoke-WebRequest -Uri "https://org.jfrog.io/" -Method Get -Headers $myHeaders
Invoke-WebRequest : 403 Forbidden
nginx
At line:1 char:1
+ Invoke-WebRequest -Uri "https://fiprod.jfrog.io/" -Method Get -Header ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Any idea on how to authenticate to Artifactory via a token using PowerShell ?

PowerShell Invoke-RestMethod throws WebCmdletWebResponseException

I am trying the following command
Invoke-RestMethod -Uri 'http://serverIP/my/application/URL' -Method 'GET' -WebSession $CurrentSession
I tried it with Invoke-WebRequest as well But I am getting this error for both of them
Invoke-WebRequest : An unexpected error has occurred while attempting to serialize a Date datatype.
At line:1 char:1
+ Invoke-WebRequest -Uri 'http://serverIP/my/application/UR ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
I am quite new at using the Invoke-RestMethod
Can someone please help me with this error?

Trying to get Certificate Information in Powershell

I recently posted some code here : Powershell hanging in script
And someone recommended using Invoke-WebRequest instead of the way I was getting the cert information to make it clean and short.
I was able to get the Invoke-WebRequest to work but can't figure out how to get the cert information.
I found this link : Can Powershell Give Me Information on the Server's Certificate Used By Invoke-WebRequest?
But this does not seem to be working for me. What am I doing wrong?
$url = "https://google.com"
$req = Invoke-WebRequest -Uri $url -Proxy $proxy -ProxyUseDefaultCredentials
$servicepoint = [System.Net.ServicePointManager]::FindServicePoint($url)
$servicepoint.Certificate.GetExpirationDateString()
$servicepoint.Certificate.Subject
$servicepoint.Certificate.Issuer
You cannot call a method on a null-valued expression.
At line:5 char:1
+ $servicepoint.Certificate.GetExpirationDateString()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
I also tried to do it exactly as the test and not use the $url variable and instead type it in, and received the same error.
$req = Invoke-WebRequest -Uri https://google.com -Proxy $proxy -ProxyUseDefaultCredentials
$servicepoint = [System.Net.ServicePointManager]::FindServicePoint("https://google.com")
$servicepoint.Certificate.GetExpirationDateString()
$servicepoint.Certificate.Subject
$servicepoint.Certificate.Issuer
You cannot call a method on a null-valued expression.
At line:4 char:1
+ $servicepoint.Certificate.GetExpirationDateString()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
the error says that line 4 is null.
i am doing the same .
for subject \ cert name i am calling like so.
$certName = $servicePoint.Certificate.GetName()
i hope it helps.

Powershell : Invoke-WebRequest - Jenkins api build trigger

$apit="userid:apitoken"
$serverhost="#host1.com"
$vin="https://${apit}\${serverhost}"
Invoke-WebRequest -Uri $vin -Method POST
error log :
Invoke-WebRequest : Cannot bind parameter 'Uri'. Cannot convert value "https://${apit}\${serverhost}" to type "System.Uri". Error:
"Invalid URI: The hostname could not be parsed."
At line:5 char:24
+ Invoke-WebRequest -Uri $vin -Method POST
+ ~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
+ FullyQualifiedErrorId :
CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
$apit="userid:apitoken"
$serverhost="#host1.com"
$vin="https://" + $apit + $serverhost
Invoke-WebRequest -Uri $vin -Method POST
This syntax for string concatenation is the most readable IMO. Your curly braces are unnecessary.