Запитання щодо обміну владою


0

Мета: Знайти всі поштові скриньки, які не надсилали (чи не отримували можливо?) Пошту протягом останніх 90 днів.

Я бачив декілька посібників з команд powerhell, але я не впевнений, що я маю правильне замовлення (Get-Mailbox | тощо), тому не хочу ризикувати його виконанням?


Тож що саме за ваше питання? Що ви пробували? Ви дійсно повинні спробувати зменшити обсяг цього питання.
Рамхаунд

@Abraxas Добре запитання. Версія Exchange Server?
STTR

@STTR Дякую Ми перебуваємо на Exchange 2010 у середовищі AD на сервері Server 2012 R2. Дайте мені знати, якщо вам потрібно щось інше. Рамхаунд - Я нічого не пробував, тому що ще не впевнений у своєму розумінні PowerShell. Моє запитання - який спосіб використовувати PS для отримання списку поштових скриньок, які не надсилали та / або отримували електронну пошту протягом останніх 90 днів (можливо, експорт до CSV?)
Abraxas

Відповіді:


1
add-pssnapin *exchange* -EA 0
Get-Mailbox -ResultSize Unlimited |Get-MailboxStatistics |?{$_.Lastlogontime -lt (Get-Date).AddDays(-90)}|Select DisplayName, LastLoggedOnUserAccount, LastLogonTime |Export-csv .\NotAccess90.csv -noType

Шлях 2: Обмін журналом на видання SQL Server Express.

Це спосіб створити швидку звітність. Потрібно лише створити поля індексів, які будуть шукати. Тоді швидкість обробки запитів становитиме близько 1-3 М записів в секунду. Тобто швидкість створення файлів - не буде такою швидкою. Ідеальна робота, виконана за допомогою водія csv. Загалом, поліпшення нескінченно).

Але, журнал зупинки (SQL Server Express) - Exchange Server також зупиниться!

Потрібна функція sql:

ConvertCharIP - перетворення рядкової IP-адреси в BIGINT

CREATE FUNCTION [dbo].[ConvertCharIP] (@IP AS VARCHAR(20)) 
RETURNS BIGINT 
AS 
BEGIN 
RETURN (CONVERT(BIGINT, PARSENAME(@IP,1)) + 
         CONVERT(BIGINT, PARSENAME(@IP,2)) * 256 + 
         CONVERT(BIGINT, PARSENAME(@IP,3)) * 65536 + 
         CONVERT(BIGINT, PARSENAME(@IP,4)) * 16777216)    
END 

ConvertLongIP - конвертувати BIGINT в строкову IP-адресу.

CREATE FUNCTION [dbo].[ConvertLongIP] (@LongIP bigint)

RETURNS varchar(15) AS BEGIN 
DECLARE @DotIP varchar(15), @bin varbinary(4) 
select @bin = cast(@LongIP as varbinary(4)) 

select @DotIP = cast(convert(int,substring(@bin,1,1)) as varchar(3)) 
+ '.' + cast(convert(int,substring(@bin,2,1)) as varchar(3)) 
+ '.' + cast(convert(int,substring(@bin,3,1)) as varchar(3)) 
+ '.' + cast(convert(int,substring(@bin,4,1)) as varchar(3)) 

RETURN @DotIP END

getCurrentTime - повернути час.

CREATE FUNCTION [dbo].[getCurrentTime]() 
RETURNS DATETIME 
AS  
BEGIN  
    RETURN (SELECT CurrentTime FROM CurrentDateTime)  
END  

Використовуйте шаблон:

MailAddress.sql:

SELECT 
   SUM(bytesrecvd)/1024 AS [Upload, Kb],
   SUM(bytessent)/1024 AS [Download, Kb],
   ...
   <other log column name>,
   master.[dbo].[ConvertLongIP]([SourceIP]) AS [SourceIP],
   master.[dbo].[ConvertLongIP]([DestinationIP]) AS [DestinationIP]

 FROM [<Table name>]

WHERE
<other bound>
AND master.[dbo].[ConvertLongIP]([SourceIP])=@DotIP

GROUP BY [SourceIP],[DestinationIP]

SourcePort
,DestinationPort

ORDER BY [Upload, Kb] DESC

QueryMail.cmd:

@echo off
SET SQLSERVER=.\SQL2K5
SET DBName=Exch2010
SET QueryFile=MailAddress.sql
SET CSVLog=C:\MailLogCSV

@echo %date% %time%
sqlcmd -S %SQLSERVER% -d %DBName% -E -h-1 -i %QueryFile% -o %CSVLog%\MailAddress-%DBName%.csv -s ";" -W
@echo %date% %time%

1
@Abraxas Якщо вам потрібно більш точно обробляти пошту журналів, не покладайтеся на відстеження служби Exchange. tomsitpro.com/articles/…
STTR

1
@Abraxas Update.
СТТР
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.