• Reading the output stream from PoSh is a pain in the rear.

    I would script the logins using TSQL instead:

    SELECT 'CREATE LOGIN ' + QUOTENAME(name) + ' ' +

    CASE type

    WHEN 'S' THEN

    'WITH PASSWORD = ' + CAST(CONVERT(varchar(256), CAST(LOGINPROPERTY(name,'PasswordHash') AS varbinary (256)), 1) AS nvarchar(max)) + ' HASHED ,

    SID = ' + CAST(CONVERT(varchar(256), Sid, 1) AS nvarchar(max))

    ELSE ' FROM WINDOWS '

    END , type

    FROM sys.server_principals

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

    It may not be perfect, but it's a starting point.

    -- Gianluca Sartori