Powershell ile mail gönderimi

Bildiğimiz gibi artık powershell ile sunucularımızı ve işlerimizi yönetebiliyoruz.Powershell’in bir diğer marifetide Net.Mail.SmtpClient objesini kullanarak mail gönderebilmesi.Aşağıdaki kodları kullanarak isterseniz bir.ps1 oluşturabilir ve bunu schedule ile istediğiniz zamanlarda çalıştırabilirsiniz.Powershell’de mail gönderimi için

$emailFrom = “user@yourdomain.com”
$emailTo = “user@yourdomain.com”
$subject = “your subject”
$body = “your body”
$smtpServer = “your smtp server”
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)

,

Lotus Notes’dan Exchange 2007′ye migration için örnek script

Marc Nivens’ın yazdığı aşağıdaki örnek script ile ,yapımızdaki Lotus Notes kullanıcılarını Exchange 2007′ye migrate edebiliriz.Bunun için tek yapmamız gereken kullanıcıları aşağıdaki formatla bir txt dosyasına kaydetmek:

Anil Erduran/DOMINO
Osman Yagmurdereli/DOMINO
Hülya Avsar/DOMINO

Ardından aşağıdaki scripti çalıştırarak migrate işlemine başlayabiliriz.

$TargetDatabase = “EXCHANGE\First Storage Group\Mailbox Store”
$SourceFile = “c:\dominousers.txt”
$a = remove-item c:\miglog.txt -ea SilentlyContinue
$error.Clear()
$UserList = Get-Content $SourceFile
foreach($user in $UserList)
{
$message = “Migrating User ” + $user
write-output $message | out-file -filePath “c:\miglog.txt” -append -noClobber
move-dominomailbox $user -TargetMailboxDatabase $TargetDatabase
if($error.Count -ne 0)
{
$message = “User ” + $user + ” failed migration”
write-output $message | out-file -filePath “c:\miglog.txt” -append -noClobber
$message = “Error: ” + $error[0].ToString()
write-output $message | out-file -filePath “c:\miglog.txt” -append -noClobber
$error.Clear()
}
}

c:\dominousers.txt dizinindeki dosyada kullanıcıları kaydettiğimiz txt dosyası bulunuyor.Ayrıca migrate işlemi sırasında meydana gelen hatalar c:\miglog.txt dosyasına yazılıyor.
Buradaki değerleri değiştirerek yada eklemeler yaparak daha spesifik migrate çözümleri üretebiliriz.

, , ,

Batch File ile chkdsk - AT komutu

Komut isteminde AT komutu ile zamanlanmış görevler oluşturabiliriz.Örneğin:

AT \\bilgisayarismi 02:00 /Interactive /every:pazartesi CHKDSK C:

komutunu yazdığımızda yada batch dosyası olarak kaydedip çalıştırdığımızda chkdsk aracı her pazartesi saat 02:00′da çalışacak vaziyette zamanlanmış olur.
Aynı zamanda bu disk kontrol işlemi sırasında log tutulmasını sağlayabiliriz.Bunun için ayrı bir .bat dosyası hazırlamamız gerekiyor.AT komutunu aşağıdaki gibi kullanalım:

AT \\bilgisayarismi 02:00 /Interactive /every:Friday loglama.BAT

Bu zamanlanmış görev loglama.bat dosyasını çağıracaktır.Bunun için birde loglama.bat isminde dosya oluşturacağız.Chkdsk işlemini loglara dökmek oldukça basit.> işareti komuttan sonra konulduğunda o komutun bilgilerini export etmeye yarar.Bunun için aşağıdaki komutu kullanacağız:

CHKDSK > DURUM.LOG
Bu durumda ilk batch dosyamız ikincisini belirlenen zaman aralıklarında çağıracak.Ardından ikinci dosyada işlemini yapıp,kontrolden sonra log dosyasını oluşturucak.
Burada dikkat etmemiz gereken başka bir konu daha var.Biz bir görev oluşturduk.Yani her pazartesi saat 2′de bu komut çalışacak ve loglama işlemini yapıcak.Bu log dosyalarının isimlerini benzersiz yapmamız gerekli ki,hangi hafta hangi loglama yapılmış kolayca ayırt edebilelim.Bunun için değişkenleri kullanacağız.

for /F “tokens=2,3,4 delims=/ ” %%i in (’date /t’) do set datefile=%%i%%j%%k.log
Chkdsk > %datefile%

Buradaki komutla birlikte .log dosyasının ismini sistem tarihine göre ayarlamasını sağladık.Chkdsk komutuda log dosyasını bu değişkene göre oluşturacak

,

Microsoft Exchange üzerinde email kota ayarı scripti

on error resume next

CONST QUOTA_EXEMPTION = 500000 ‘* > mDBOverHardQuotaLimit is exempted to use default quota
CONST EXEMPTED_WORD = “exempted”

Const ADS_SCOPE_SUBTREE = 2
Const ADS_CHASE_REFERRALS_EXTERNAL = &h40
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Const ADS_UF_PASSWD_CANT_CHANGE = &h00040
Const ADS_UF_PASSWORD_EXPIRED = &H80000
Const ADS_UF_LOCKOUT = &h00010

Set rootDSE = GetObject(”LDAP://RootDSE”)
sObjectDN = “LDAP://” & rootDSE.Get(”defaultNamingContext”) Devamini oku »

Active Directory Users Export

Active Directory üzerindeki tüm kullanıcıları bir excel dosyasına export etmek için aşağıdaki scripti kullanabiliriz.
Eğer Office sürümü ingilizce ise script içindeki “sayfa1″ değerini “sheet1″ olarak değiştirmeliyiz.

http://anilerduran.com/ad-export.vbs

, , ,

Oturum açma-kapama işlemini loglama

Networkümüzde bulunan istemci makinalara hangi tarihte kim saat kaçta oturum açmış yada kapamış gibi bilgilere erişmek için ufak bir script kullanabiliriz.

echo Oturum Açma %username% %computername% %date% %time% >> \\192.168.x.x\sysvol\OTURUM_ACMA_KAYITLARI\%username%.txt

Bu komut ile oturum açan kullanıcılar belirttiğimiz ip adresindeki OTURUM_ACMA_KAYITLARI klasörü altına kullanıcı isimleri kullanılarak loglanacaktır.

echo Oturum Kapama %username% %computername% %date% %time% >> \\192.168.x.x\sysvol\OTURUM_KAPAMA_KAYITLARI\%username%.txt

Burada ise aynı işlemi oturum kapama için kullanıyoruz.Sondaki .txt uzantısını .cvs yaparak excel ile daha ayrıntılı bir tablo elde edebiliriz.

Scriptleri hazırladıktan sonra yapmamız gerekn GPO ile logon ve logoff script olarak tüm organizasyona bunu atamak.Aşağıda anlatımı mevcut..

http://www.anilerduran.com/index.php/logon-scripts/

Mailbox boyutları belirtilen değerden daha büyük olan alıcıların listesi için script

strComputer = “.”
intMailboxSize = 2048 ’size in KB, all recipient who exceeds this amount will be displayed

Set objWMIService = GetObject(”winmgmts:” & “{impersonationLevel=impersonate}!\\” & strComputer & _
“\ROOT\MicrosoftExchangeV2″)

Set colItems = objWMIService.ExecQuery(”Select * from Exchange_Mailbox where size > ” & intMailboxSize)
if colItems.count = 0 then ‘no recipients were found
wscript.echo “No items were found”
wscript.quit
end if

mbs_len = len(”MAILBOX SIZE(KB)”)
mbdn_len = len(”MAILBOX DISPLAY NAME”)
wscript.echo “MAILBOX DISPLAY NAME” & space(30 - mbdn_len) & “MAILBOX SIZE(KB)”

For Each objItem in colItems
if len(objItem.MailboxDisplayName) > 30 then
padding = 0
Wscript.stdOut.write left(objItem.MailboxDisplayName,27) & “…” & space(padding)
else
padding = 30 - len(objItem.MailboxDisplayName)
Wscript.stdOut.write objItem.MailboxDisplayName & space(padding)
end if
Wscript.stdOut.write space(mbs_len - len(cstr(objItem.Size))) & objItem.Size
wscript.echo
next

No Tags

Exchange servislerinin otomatik durdurulması

Exchange 2003 bulunan serverımızı restart etmek istediğimizde bir müddet bizi bekleticektir çünkü exchange servislerinin durdurulması biraz sürer.
Bu sebeple yada başka bir sebeple exchange servislerini durdurmamız gerekirse aşağıdaki komutları batch file olarak kaydedip tek bir tıkla bunu halledebiliriz.

net stop “Microsoft Exchange Information Store” /y
net stop “Microsoft Exchange System Attendant” /y
net stop “Microsoft Exchange IMAP4″ /y
net stop “Microsoft Exchange Routing Engine” /y
net stop “Microsoft Exchange POP3″ /y
net stop “Microsoft Exchange Management” /y

, , ,

Bağlantısı kesilen mailboxların purge edilmesi scripti

‘ On Error Resume Next
Dim cComputerName
Dim objWMIService
Dim oDisMbox
Dim mBox
Dim dmBoxes
Dim strAnswer
Const cWMINameSpace = “root/MicrosoftExchangeV2″
Const cWMIInstance = “Exchange_Mailbox”
cComputerName = “SRVEXC01″ Devamini oku »

Microsoft Exchange Mailboxlarına erişim sağlayan kullanıcıların listesi için script

‘Who Has Access - By Alan Mosley, ThatsIT Solutions Australia

‘Writes report to text file, showing who has access to Exchange users mailboxes
‘Must be run on email Server

Const DOMAIN = “IT”
Const EMAIL_SERVER = “HANK”
Const LDAP_DOMAIN = “LDAP://dc=ThatsIT,dc=local” Devamini oku »

Kullanılmayan Computer Account’ların silinmesi

Şu adresten indirebileceğimiz script sayesinde 90 gün içinde herhangi bir işlem yapmamış olan bilgisayar hesaplarını .html olarak rapor alabilir ve ardından silme işlemini gerçekleştirebiliriz.Komut satırına düştüğümüzde toplam 3 komuttan oluşuyor.
oldcmp.exe /report
oldcmp.exe /disable
oldcmp.exe /delete

, , , , ,

Paylaşımdan Printer ekleme scripti

Bir grup kullanıcı farklı makinalarda oturum açtığında belli başlı 3 yazıcının tanıtılması istenebilir.Bunun için her seferinde uğraşmamak için logon script olarak şunu kullanabiliriz.

—————————-
Set objNetwork = CreateObject(”WScript.Network”)
objNetwork.AddWindowsPrinterConnection “\\banko3\hpLaserJ”
—————————-

, , , ,

Networkde bulunan diğer PC’leri scriptle kapamak.

Networkümüzde gerekli haklarımız tanımlanmışsa uzak bir makineyi kapatabilir,restart yada logoff edebiliriz.Bruce Walton ‘ın hazırladığı script:

———————

msg=”Yapmak istediginiz islemi seciniz:” & vbcrlf & “0 - Log off” & vbcrlf & _
“1 - Shutdown” & vbcrlf & “2 - Reboot” & vbcrlf & “8 - Power Off”

flag=inputbox(msg)

if flag<>0 and flag<>1 and flag<>2 and flag<>8 then
msgbox “Incorrect selection”
wscript.quit
end if

Servers=array(”computer1″, “computer2″, “computer3″)
for x=lbound(servers) to ubound(servers)
for each OS in getobject (”winmgmts:{(Shutdown)}//” & servers(x) & _
“/root/cimv2″).InstancesOf(”Win32_OperatingSystem”)

set Security = OS.Security_
set PrivObj = Security.Privileges
PrivObj.Add(18)

RetVal = OS.Win32ShutDown(flag,0)
next
if RetVal = 0 then
wscript.echo “Shutdown ” & servers(x)
else
wscript.echo “Unable to shutdown ” & servers(x)
end if
next

, , , , ,

Bilgisayar Hesaplarını otomatik , istenilen OU’ya taşımak

Google gruplarında bir arkadaşın sorusu üzerine araştırıp bulduğum bir script gerçekten beni çok şaşırttı.
Şöyle bir senaryo düşünelim.3 Tane OU’muz var.

Muhasebe-Finans-Yönetim
Bir de computers container’ımız var built-in gelen.Şimdi Muhasebe grubuna bilgisayar üzerinden bir policy çakmak istiyoruz.Ama bilgisayar isimleri oldukça karmaşık ve hepsi default gelen computers grubunun altında.Bu durumda bir scriptle işimizi çok Devamini oku »

, , , , , , , ,

Domain Controller Teyidi

Herhangi bir user’ın hangi Domain Controller’dan logon olduğunu öğrenmek için komut isteminde şu komutu kullanırız.

“set logonserver”

echo %logonserver% komutunuda script olarak kullanabiliriz

, , , , , ,

Logon Scripts

Logon Script günümüz şartlarında sistem yöneticileri açısından oldukça kolaylıklar sağlayan bir uygulamadır.Oluşturduğumuz bu scriptler sayesinde merkezi bir yönetim gerçekleştirerek networkumuzde bulunan kullanıcılar için çeşitli uygulamaları hayata geçirebiliriz.Komut satırını kullanarak çalıştırabildiğimiz her komutu logon scriptler sayesinde kullanıcılarımızın bilgisayarında çalıştırabiliriz. Devamini oku »

, , , ,
Toplam 343 yazi ve 125 yorum bulunmaktadir.
  1. Haberdar Ol

    Son eklenen makalelerin mailinize gelmesi icin adresinizi yazin.



  2. Kategoriler

  3. Son Eklenen 15 Yazı

    En Populer 25 Yazi

    Bugun En Cok Okunan 25 Yazi

    Su an Okunanlar

    Gezdiklerim

    Ve Yeniden "LOST"...