I think i have a nice solution here. Also, in my own ineptitude, I think i figured out your error cause
First I found a cleaner way to make shortcuts to special folders.
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\users\user\Desktop\MacadizamianNizzut.lnk")
$Shortcut.TargetPath = [environment]::getfolderpath("mycomputer")
$Shortcut.Save()
You could also use mydocuments in place of mycomputer. For a complete list of special folders that you can use: [enum]::GetNames([System.Environment+SpecialFolder]). Tips hat to JRV for a comment on my link above.
As for your error "Exception calling "Save" with "0" arguments : "Unable to save shortcut". I also got that error. In practice it was because the value passed for createshortcut was not a valid path. I am not saying that the file has to exist but the folder path does. I made a typo and got the error. Using my example this command would have failed: Test-Path ""C:\users\user\Desktop"
Some Error Prevention
What we could do is assign the shortcut path to a variable and test the path based on that.
$ShortcutPath = "C:\users\username\desktop\test.lnk"
If(Test-Path -Path (Split-Path -Path $ShortcutPath -Parent)){
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = [environment]::getfolderpath("mycomputer")
$Shortcut.Save()
} Else {
Write-Host "Unable to create shortcut. Check the path $ShortcutPath."
}