Kind of a re-post of an older post of mine. This one doesn’t use SQLPS though and it also drops the login from the server as well. Use at your own risk.
Import-Module SqlPS -DisableNameChecking $serverName = 'ServerName' $loginToRemove = 'LoginName' try{ $srv = New-Object Microsoft.SqlServer.Management.Smo.Server $serverName $srv.Databases | where{$_.Status -eq [Microsoft.SqlServer.Management.Smo.DatabaseStatus]::Normal} | %{ foreach($user in $_.Users | where{$_.Name -eq $loginToRemove}){ $user.Drop(); } } foreach($login in $srv.Logins | where{$_.Name -eq $loginToRemove}){ $login.drop(); } } catch{ $_ | fl -Force }