I had this nightmare to update comments in workflow task, first I thought it’s easy but it turned out we cannot just update the extended properties of workflow (it’s easy using code but not with script) and you are aware I like PowerShell and was trying to change the value (string) that was in comments field (which is a property in workflow extended properties)
And here is script guys , NJOY ..
Note: I actually did not modify the extended property i tricked it using the PowerShell Powerness of replacing the string :D.
$w = Get-SPWeb "http://SharePoint/Sites/Test" #Change this $list = $w.Lists["NewList"] #Change this $i = $list.GetItemByID(10) # Change this $workflows = $i.workflows try { Foreach ($workflow in $workflows) { $tasks = $workflow.Tasks Foreach ($task in $tasks) { if($task["Title"] -eq "Review required on item 1034") { $task["Outcome"] = "Approved" $prop = $task["ExtendedProperties"] #Bingo $oldComment = "Testing the Reject and will also test comments." #the comment that you want to change $newComment = "This is changing using PS Script" $prop = $prop -replace $oldComment,$newComment $task["ExtendedProperties"] = $prop Write-Host $prop } $task.Systemupdate() } } } Catch { Write-Host -ForegroundColor Red $_.Exception.ToString() } write-host -ForegroundColor Green "done."