[System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.SqlServer.SMO’) | out-null
$Error.Clear()
cls
$servers = Get-Content E\LoginNames\Servers.txt
$logins = @(login name to be dropped)
foreach($server in $servers)
{
$srv = New-Object (‘Microsoft.SqlServer.Management.Smo.Server’) $server
#drop database users
foreach($database in $srv.Databases)
{
foreach($login in $logins)
{
if($database.Users.Contains($login))
{
$database.Users[$login].Drop();
}
}
}
#drop server logins
foreach($login in $logins)
{
if ($srv.Logins.Contains($login))
{
$srv.Logins[$login].Drop();
}
}
}
$FilePath = “E:\LoginNames\”
$OutFile = Join-Path -path $FilePath -childPath (“logins_” + (get-date).toString(‘yyyyMMdd_hhmmtt’) + “.log”)
Leave a Reply