Author Posts

May 18, 2018 at 9:54 am

Hello,

Am trying to build a PS script to reset a user's password in our O365 tenant. But it throws the following error:

"Set-AzureADUserPassword : Unexpected character encountered while parsing value: < . Path '', line 0, position 0."

Here is the script:

#Collect details of the User for whom password to be reset
$Username = Read-Host -Prompt "Enter the username"
$ObjectId = Get-AzureADUser -ObjectId $Username@domain.com
#Convert the default password to a Secure String
$SecPaswd = "Password" | ConvertTo-SecureString -AsPlainText -Force
#Reset the Password
Set-AzureADUserPassword -ObjectId $ObjectId -Password $SecPaswd -ForceChangePasswordNextLogin $true

Can someone please advise what could be going wrong?

May 19, 2018 at 1:55 pm

This:

$ObjectId = Get-AzureADUser -ObjectId $Username@domain.com

Is your problem, I think.

$ObjectId = Get-AzureADUser -ObjectId "$($Username)@domain.com"

Might work. If you were to add some output showing what $ObjectId contains, it'd help you debug it. Errors like this are 100% because some variable doesn't contain what you thought it did, and so you need to find out what it does contain :). There's a lovely debugging chapter in Learn PowerShell Scripting in a Month of Lunches!

May 20, 2018 at 7:36 pm

If you build the variable before you send it to a command, it's easier to troubleshoot that you are sending what you think:

$prompt = Read-Host -Prompt "Enter the username"
$username = "{0}@domain.com" -f $prompt
"Attempting sign in as {0}" -f $username
...

May 21, 2018 at 5:58 am

Hi Don,

Tried your suggestion and received this error:

Set-AzureADUserPassword : Unexpected character encountered while parsing value: < . Path '', line 0, position 0. At ..\ResetO365Password.ps1:12 char:1 + Set-AzureADUserPassword -ObjectId "$ObjectId" -Password $SecPaswd -Fo ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Set-AzureADUserPassword], JsonReaderException + FullyQualifiedErrorId : Newtonsoft.Json.JsonReaderException,Microsoft.Open.AzureAD16.Graph.PowerShell.Custom.Cmd let.SetUserPassword

I am newbie at PS so will definitely look up the reference book.

May 21, 2018 at 7:04 am

Figured it out...It was indeed the ObjectId variable which was causing the error. As you rightly said it contained something that the final command could not process correctly.

I have since modified the script like this and it now works:-

#Collect details of the User for whom password to be reset
$Username = Read-Host -Prompt "Enter the username"
#Convert the default password to a Secure String
$SecPaswd = "Password" | ConvertTo-SecureString -AsPlainText -Force
#Reset the Password
Set-AzureADUserPassword -ObjectId "$Username@domain.com" -Password $SecPaswd -ForceChangePasswordNextLogin $true