• I don't disagree, I built this script about 3 years ago..

    SELECT Cmd = 'CREATE LOGIN ['

    + name

    + '] WITH PASSWORD = '

    + CONVERT( varchar(255), password_hash, 1 )

    + ' HASHED, SID = '

    + CONVERT( varchar(255), sid, 1 )

    + ', DEFAULT_DATABASE = ['

    + default_database_name

    + '], CHECK_EXPIRATION = '

    + CASE is_expiration_checked WHEN 1 THEN 'ON, ' ELSE 'OFF, ' END

    + 'CHECK_POLICY = '

    + CASE is_policy_checked WHEN 1 THEN 'ON;' ELSE 'OFF;' END

    FROM sys.sql_logins

    WHERE type = 'S'

    AND name NOT IN ( 'sa', '##MS_PolicyTsqlExecutionLogin##' )

    AND is_disabled = 0

    UNION ALL

    SELECT Cmd = 'CREATE LOGIN ['

    + name

    + '] FROM WINDOWS WITH DEFAULT_DATABASE = ['

    + default_database_name

    + ']; '

    FROM sys.server_principals

    WHERE type IN ( 'U', 'G' )

    AND name NOT IN ( 'NT AUTHORITY\SYSTEM', 'NT AUTHORITY\NETWORK SERVICE', 'NT SERVICE\MSSQLSERVER', 'NT SERVICE\SQLSERVERAGENT' )

    AND is_disabled = 0

    --ORDER BY name

    GO

    It could probably use some gussying up but it worked for what I needed to get the logins out..

    CEWII