Add-PSSnapin Microsoft.SharePoint.Powershell

$url = "http://weburl"
$listName = "List Name"
$permissionLevel = "Permission Level Name"
$groupName = "Enter Group Name"

#Grant permission on all uniquely secured list items to the specified group

$web = Get-SPWeb $url; $list = $web.Lists[$listName]
$permission = $web.RoleDefinitions[$permissionLevel]
$principal = $web.SiteGroups[$groupName]

#Process each list item

foreach ($item in $list.Items) {
Write-Output ("Item #" + $item.ID.ToString())
#Check to see whether the item is uniquely secured

    if ($item.HasUniqueRoleAssignments -eq $FALSE) {
        Write-Output " No change, permissions are inherited."
    }
    else
    {
        #Find an existing role assignment for this principal
        $assignments = $item.RoleAssignments
        $assignment = $assignments | where {$_.Member.Name -eq $principal.Name}
        if ($assignment -eq $NULL) {
            #Add a new role assignment for the principal
            $assignment = new-object Microsoft.SharePoint.SPRoleAssignment($principal)
            $assignment.RoleDefinitionBindings.Add($permission)
            $assignments.Add($assignment)
            Write-Output (" Granted " + $permissionLevel + " to " + $groupName)
        }
        elseif ($assignment.RoleDefinitionBindings.Contains($permission) -ne $TRUE)
        {
            #Update the principal's role assignment to add the desired permission level
            $assignment.RoleDefinitionBindings.Add($permission)
            $assignment.Update()
            Write-Output (" Updated " + $groupName + " permissions to " + $permissionLevel)
        }
        else
        {
            Write-Output " No change."
        }
    }

} 
$web.Dispose()