Posted in Windows Powershell, Windows Server | 1 Comment | 3,216 views | 05/01/2010 20:43
Derslerim ve projelerim sebebiyle uzunca bir süredir yazı ekleyemiyordum. Gerçi yine vakit darlığından ve yoğunluktan dolayı çok ayrıntıya giremeyeceğim fakat Powershell ile aşağıdaki komutlar sayesinde tarih işlemleri yapabilirsiniz.
Temel komut
Get-Date: Bu komut sayesinde bir çok tarih işlemini gerçekleştirmiş olacağız. Bu komutu yazdığınızda, bugünün tarihini görmüş olursunuz.
Çıktısı:
05 Ocak 2010 Salı 19:25:15
Yalnız yukardaki çıktı, scriptlerde hiç bir işimize yaramayacaktır. Bu nedenle bu çıktıyı biraz değiştirelim.
1
2
| PS C:\Users\yusufozturk.info> get-date -uformat %d.%m.%Y
05.01.2010 |
PS C:\Users\yusufozturk.info> get-date -uformat %d.%m.%Y
05.01.2010
Böylece daha kullanışlı bir çıktı elde etmiş olduk. Şimdi de 3 gün öncesinin tarihini görmeye bakalım.
1
2
| PS C:\Users\yusufozturk.info> (get-date).AddDays(-3)
02 Ocak 2010 Cumartesi 19:28:38 |
PS C:\Users\yusufozturk.info> (get-date).AddDays(-3)
02 Ocak 2010 Cumartesi 19:28:38
Şimdi yukardaki çıktıyı da kullanışlı hale getirelim. Yalnız bunu biraz daha farklı bir yoldan yapıyoruz.
1
2
| PS C:\Users\yusufozturk.info> (get-date).AddDays(-3).ToString("dd.MM.yyyy")
02.01.2010 |
PS C:\Users\yusufozturk.info> (get-date).AddDays(-3).ToString("dd.MM.yyyy")
02.01.2010
Eğer ayı ya da günü tek basamak almak isterseniz ya da yılı 2 haneli olarak görmek istiyorsanız, “yyyy” gibi olan kısmı “yy” olarak ya da “dd” gibi olan kısmı “d” yapmanız yeterli olacaktır.
Bunların dışında daha detaylı bilgiye;
1
| get-help get-date -full |
get-help get-date -full
yazarak ulaşabilirsiniz. Umarım işinize yaramıştır. İyi çalışmalar.
Posted in Windows Powershell, Windows Server | No Comment | 4,452 views | 13/12/2009 23:53
Windows Server 2008 R2’deki Advanced Firewall’un CMD üzerinden nasıl yönetilebileceğini bilmek ister misiniz? Şimdi bazı önemli senaryoları aşağıya eklemeye çalışacağım. İnternette pek bulabileceğiniz tipten senaryolar değil, çünkü kendim ürettim ve kendim yazdım kodlarını :)
Senaryonun temelinde, firewall üzerinde scope yapılandırmaları yatıyor. Şimdi yusufozturk.info web sunucusuna gelen erişimleri, advanced firewall ile nasıl sınırlandırabileceğimizi görelim.
10.10.10.1 nolu ip’den icmp isteklerine izin vermek (tüm icmp kapalı durumdayken)
netsh advfirewall firewall add rule name="kural1 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.1 enable=yes action=allow profile=Public |
netsh advfirewall firewall add rule name="kural1 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.1 enable=yes action=allow profile=Public
10.10.10.1 nolu ip’den icmp isteklerini engellemek (tüm icmp açık durumdayken)
netsh advfirewall firewall add rule name="kural2 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.1 enable=yes action=block profile=Public |
netsh advfirewall firewall add rule name="kural2 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.1 enable=yes action=block profile=Public
10.10.10.0/24 nolu ip bloğundan gelecek olan tüm icmp isteklerini engellemek
netsh advfirewall firewall add rule name="kural3 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.0/24 enable=yes action=block profile=Public |
netsh advfirewall firewall add rule name="kural3 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.0/24 enable=yes action=block profile=Public
10.10.10.0/24 nolu ip bloğundan gelecek olan tüm icmp isteklerine izin vermek
netsh advfirewall firewall add rule name="kural4 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.0/24 enable=yes action=allow profile=Public |
netsh advfirewall firewall add rule name="kural4 ICMPv4" dir=in protocol=icmpv4 new remoteip=10.10.10.0/24 enable=yes action=allow profile=Public
Yukardaki örneklere uygun olarak senaryolar arttırılabilir. Örneğin belirli ip’ler için Remote Desktop erişimi açmak, diğer tüm iplere kapatmak ya da sadece belli ip’lerin SQL’e erişebilmesini sağlamak gibi. Şahsen ben Powershell ile EventLog’ları çekip, Brute Force yapan ip’leri bu komutlar ile otomatik olarak engellemek için kullanacağım.
Posted in Exchange Server, Windows Powershell | No Comment | 4,236 views | 01/12/2009 02:48
Exchange Server 2010 üzerinde aşağıdaki function ile gönderi limitlerini belirleyebilirsiniz.
1
2
3
4
5
6
7
| Function Maxsize-Limits
{
Param ($FirstName, $LastName, $CustomerOU, $MaxSendSize, $MaxReceiveSize)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomain = $ADDomain.Name
Set-Mailbox –MaxSendSize "$MaxSendSize" -MaxReceiveSize "$MaxReceiveSize" -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName"
} |
Function Maxsize-Limits
{
Param ($FirstName, $LastName, $CustomerOU, $MaxSendSize, $MaxReceiveSize)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomain = $ADDomain.Name
Set-Mailbox –MaxSendSize "$MaxSendSize" -MaxReceiveSize "$MaxReceiveSize" -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName"
}
Kullanımı:
Maxsize-Limits –FirstName "$FirstName" –LastName "$LastName" –CustomerOU "$CustomerOU" –MaxSendSize "10 MB" -MaxReceiveSize "10 MB" |
Maxsize-Limits –FirstName "$FirstName" –LastName "$LastName" –CustomerOU "$CustomerOU" –MaxSendSize "10 MB" -MaxReceiveSize "10 MB"
Yukardaki komut sayesinde, kullanıcının alabileceği ve gönderebileceği maksimum mail boyutunu, 10 mb olarak belirlemiş durumdayız.
Posted in Exchange Server, Windows Powershell | No Comment | 6,620 views | 01/12/2009 02:26
Exchange Server 2010 üzerinde aşağıdaki function ile kullanıcılara yeni mail adresleri tanımlayabilmekteyiz.
1
2
3
4
5
6
7
| function Add-MailAddress
{
Param ($MailAddress, $FirstName, $LastName, $CustomerOU)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomain = $ADDomain.Name
Set-Mailbox -EmailAddresses "SMTP:$MailAddress" -EmailAddressPolicyEnabled $false -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName"
} |
function Add-MailAddress
{
Param ($MailAddress, $FirstName, $LastName, $CustomerOU)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomain = $ADDomain.Name
Set-Mailbox -EmailAddresses "SMTP:$MailAddress" -EmailAddressPolicyEnabled $false -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName"
}
Kullanımı:
Add-MailAddress –MailAddress "$MailAddress" –FirstName "$FirstName" –LastName "$LastName" -CustomerOU "$CustomerOU" |
Add-MailAddress –MailAddress "$MailAddress" –FirstName "$FirstName" –LastName "$LastName" -CustomerOU "$CustomerOU"
Mail adresi tanımlama kısmında dikkat etmeniz gereken kısım SMTP olacaktır. SMTP’yi büyük harflerle yazmanız halinde, girilen mail adresi default; küçük harflerle yazılması halinde, girilen mail adresi ikincil mail adresi olacaktır. Örneğin bir kaç mail adresi tanımlanacaksa bir kullanıcıya aşağıdaki Powershell komutunu çalıştırmanız gerekecektir.
1
2
3
| $ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomain = $ADDomain.Name
Set-Mailbox -EmailAddresses "SMTP:$MailAddress1", "smtp:$MailAddress2", "smtp:$MailAddress3" -EmailAddressPolicyEnabled $false -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName" |
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomain = $ADDomain.Name
Set-Mailbox -EmailAddresses "SMTP:$MailAddress1", "smtp:$MailAddress2", "smtp:$MailAddress3" -EmailAddressPolicyEnabled $false -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName"
Yukarda görüldüğü gibi $MailAddress1 kullanıcının default reply adresi olacak, diğer mail adresleri ise kullanabileceği ikincil adresler olacaktır.
Posted in Exchange Server, Windows Powershell | No Comment | 6,246 views | 01/12/2009 02:20
Exchange Server 2010 üzerinde aşağıdaki function ile mail hesabı yaratabilirsiniz.
1
2
3
4
5
6
7
| function Add-MailUser
{
Param ($UserID, $FirstName, $LastName, $CustomerOU)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomainName = $ADDomain.Name
Enable-Mailbox -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName" -Alias "$UserID"
} |
function Add-MailUser
{
Param ($UserID, $FirstName, $LastName, $CustomerOU)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomainName = $ADDomain.Name
Enable-Mailbox -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName" -Alias "$UserID"
}
Kullanımı:
Add-MailUser –UserID "$UserID" –FirstName "$FirstName" –LastName "$LastName" -CustomerOU "$CustomerOU" |
Add-MailUser –UserID "$UserID" –FirstName "$FirstName" –LastName "$LastName" -CustomerOU "$CustomerOU"
Function dosyası kullanmamızın en büyük faydası, mail hesabını daha hızlı bir şekilde açmak olacaktır.
Posted in Exchange Server, Windows Powershell | 1 Comment | 14,496 views | 29/11/2009 21:01
I wrote a function for Hosted Exchange 2010 to create a new mailbox on Exchange Server 2010.
1
2
3
4
5
6
7
| function Add-MailUser
{
Param ($UserID, $FirstName, $LastName, $CustomerOU)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomainName = $ADDomain.Name
Enable-Mailbox -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName" -Alias "$UserID"
} |
function Add-MailUser
{
Param ($UserID, $FirstName, $LastName, $CustomerOU)
$ADDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADDomainName = $ADDomain.Name
Enable-Mailbox -Identity "$ADDomainName/$CustomerOU/$FirstName $LastName" -Alias "$UserID"
}
Usage of function:
Add-MailUser –UserID “2452” –FirstName “Yusuf” –LastName “Ozturk” -CustomerOU “Users” |
Add-MailUser –UserID “2452” –FirstName “Yusuf” –LastName “Ozturk” -CustomerOU “Users”
I used System.Directory.Services to get Active Directory domain. Lets see how does it work:
CustomerOU is the base of your user container. Just type your OU name like “Exchange” or “Users”.
Posted in Virtual Machine Manager, Windows Powershell | No Comment | 58,643 views | 27/11/2009 02:22
I got a question about ISO feature on Technet forums today.
Jan Marek:
Ok. But I have 200 virtual machines and I want to create a new one and use iso for virtual dvd rom. It is not working because I already use it for another server. How can I find from which one I should disconnect this iso?
Really good question I think. Because as I know, you can’t find it with SCVMM console. Also checking all virtual machines one by one is a way but it could be a nightmare, if you have so many virtual machines.
I wrote a Powershell script for Jan. I want to share:
1
2
3
4
5
6
7
8
9
| $all = Get-VM *
foreach ($i in $all)
{
$iso = $i | Get-VirtualDVDDrive | Select-Object ISO
if ($iso -like "*test*")
{
write-host VM: $i
}
} |
$all = Get-VM *
foreach ($i in $all)
{
$iso = $i | Get-VirtualDVDDrive | Select-Object ISO
if ($iso -like "*test*")
{
write-host VM: $i
}
}
If your ISO name is “debian.iso”, just replace “test” with “debian”.
Also if you use just “Get-ISO”, you can see all iso images on all virtual machines.
You can reach that post from here:
If we can see them with SCVMM console, please let me know.
|