You may try this...
get-recipient -Resultsize Unlimited | ?{$_.recipienttype -eq "userMailbox" -and $_.alias -ne ($_.lastname)+"."+($_.firstname).substring(0,1)} | %{set-mailbox $_.identity -Alias (($_.lastname)+"."+($_.firstname).substring(0,1))}
Before doing this for all users I would recommend you to try this in test environment first, do this in staggered manner something like this...
Verify that you are getting only needed recipients only with this (which have firstname.lastname in alias)
get-recipient -Resultsize Unlimited | ?{$_.recipienttype -eq "userMailbox" -and $_.alias -ne ($_.lastname)+"."+($_.firstname).substring(0,1)}
Then set it on few users (starting with A) like this
get-recipient A* -Resultsize Unlimited | ?{$_.recipienttype -eq "userMailbox" -and $_.alias -ne ($_.lastname)+"."+($_.firstname).substring(0,1)} | %{set-mailbox $_.identity -Alias (($_.lastname)+"."+($_.firstname).substring(0,1))}
Then go for all, but as Ed warned, it may change the email addresses as well if policy says to set the email address based on alias...