Passwords have been troublesome with powershell historically, but you can get the SID if you use the script method and pass in a custom ScriptingOptions object.
$so = new-object microsoft.sqlserver.management.smo.scriptingoptions;
$so.LoginSid = $true
$login.script( $so );