Powered By Blogger

среда, 18 мая 2011 г.

Скрипт для удаления большого кол-ва файлов

Скрипт для удаления большого кол-ва файлов из директории которую не удается открыть стандартными методами.

#!/usr/bin/perl

use strict;
#archive log dir last backslash required
my $ALOG_DIR="/usr/local/nagios/var/spool/perfdata/";
my $LOGFILE="/dev/shm/log.log";
#Keep archive logs for 300 days
my $KEEPTIME=300*24*3600;
#Current time
my $UTIME=time;
$UTIME=$UTIME - $KEEPTIME;
#Read archive log file dir into array
opendir DIR, $ALOG_DIR  || die "can't opendir $ALOG_DIR: $!";
my @dir_arc_log=readdir DIR;
closedir DIR;
my $file;
foreach $file (@dir_arc_log) {
if ($file ne "." and $file ne "..") {
          #Remove files
 my @fstat = stat($ALOG_DIR . $file);
  if (@fstat[9] < $UTIME) {
unlink $ALOG_DIR . $file;
#log
my $time=localtime(time);
#open ( OUT, "> $LOGFILE" ) or die "Cannot open file:  $LOGFILE";
open (LOG,">> $LOGFILE") or die "Cannot open file $file: $LOGFILE";
printf LOG "\[$time\] $file @fstat[9]\n";
#printf LOG "\[$time\] $file @mtime";
close LOG;

понедельник, 16 мая 2011 г.

Запуск Exchange скрипта по расписанию

Для запуска PS1 скрипта Exchnage с помощью планировщика, необходимо:

1. Выполнить на почтовом сервере: Set-ExecutionPolicy RemoteSigned (для пользователя под которым будет исполняться скрипт).

2. Добавить в начало скрипта строку  Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin (она будет вызывать соответствующую оснастку которая позволяет работать со специфическими командлетами Exchange).

3. Создать bat-файл со следующей командой: Powershell -command "& { [путь к скрипту] }"


http://exchangeshare.wordpress.com/2008/12/08/how-to-schedule-powershell-script-for-an-exchange-task/

Welcome Message в Exchange 2007

Для отправки "приветственного" сообщения всем новым пользователям организации можно использовать следующий скрипт автоматически запускаемый планировщиком:

$NewUsers = Get-Mailbox -ResultSize Unlimited | Where {($_.WhenCreated -gt (get-date).addhours(-24))}
$Body=get-content "[путь к HTML шаблону письма]" | Out-String

foreach ($NewUser in $NewUsers)

{
 $SmtpClient = new-object system.net.mail.smtpClient
 $MailMessage = New-Object system.net.mail.mailmessage
 $SmtpClient.Host = "mailserver.domain.com"
 $mailmessage.from = ("administrator@domain.com")
        $Recipient = $newuser.WindowsEmailAddress.toString()
        $mailmessage.To.Add($Recipient)           
        $mailmessage.Subject = “Welcome”
        $mailmessage.IsBodyHTML = $True
 $mailmessage.Body = $Body
 $smtpclient.Send($mailmessage)

}


http://social.technet.microsoft.com/Forums/en-US/exchangesvrgeneral/thread/7d9efed5-11a8-4eb9-a9e8-329cab57ef2d

среда, 11 мая 2011 г.

Статистика ActiveSync устройств

Для получения статистики по всем ActiveSync устройствам с помощью который происходило подключение к п\я Exchange необходимо выполнить следующую команду (лучше выгрузить в файл):

$Mailbox = Get-CASMailbox | where {$_.HasActiveSyncDevicePartnership –eq $true}
$Mailbox | foreach {$_.Name; Get-ActiveSyncDeviceStatistics –Mailbox $_.Identity} | ft Name,DeviceUserAgent,LastSuccessSync

http://msexchangeexpert.ru/?p=167

среда, 4 мая 2011 г.

Правило для сортировки писем от собственного домена

"Содержащие X-MS-Exchange-Organization-AuthAs: Internal  в заголовке сообщения"
Так же можно использовать другие поля из заголовков сообщения (например поле SCL (для собственного домена -1)).