Eyl 17

Windows Vista ve Windows 2008 ile birlikte komut satırından yönetim için geliştirilmiş yeni bir ortam olan PowerShell, Exchange 2007 içinde yer almış ve Exchange Management Shell olarak komut satırından yönetim yapılmasını sağlar.

 

Konfigürasyon ve günlük yönetim görevlerini yerine getirmek için kullanılabilecek bir komut satırı arabirimi olan EMS, rutin görevlerin yerine getirilmesini sağlar. Ayrıca scripting yetenekleri sağlar.

 

Bazen bir işlemi yapmak için Exchange Management Console’u başlatmak, ilgili kısmı seçmek ve işlemleri yapmak çok sayıda işlem adımını içerebilir. Buna karşın EMS ile tek bir komutun uygulanması yeterli olabilir. Ayrıca birçok yerde karşımıza çıkan “copy commands” komutu kopyalama olanakları da komutun ya da script’in doğrudan kullanılmasın sağlar.

 

Exchange Management Shell yaygın olarak kullanıldığı bazı işlemler:

 

Mailbox yönetimi: Mailbox’ların yaratılması, değiştirilmesi ve silinmesi.

Mailbox limitlerinin değiştirilmesi: Bir ya da daha çok kullanıcıya kota uygulamak.

Mailbox’ların taşınması: Organizasyon içinde; server’lar arasında mailbox’ları taşınması.

 

Exchange Management Shell ortamında kullanılan komutlar “cmdlet” olarak bilinir. Çok sayıda cmdlet sayesinde tipik yönetim işlemlerini yapmak çok kolay hale gelmiştir.

 

Exchange Management Shell’i başlatmak için Start / All Programs / Microsoft Exchange Server 2007 ve ardından Exchange Management Shell seçilir.

Exchange Management Shell içinde çok sayıda cmdlet yer alır. Cmdlet’ler belli işlem grupları içinde kategorilendirilebilir.

Cmdlet’ler

EMS sisteminde ana komutlar "cmdlet" olarak adlandırılan komut setleridir. Exchange yönetimi ile ilgili çok sayıda cmdlet vardır. CmdLet’ler belli bir komut ve parametrelerden oluşur.

 

Cmdlet Nedir?  

Cmdlet’ler PowerShell ortamında kullanılan komutlardır.

Cmdlet (command-let olarak söylenir), Shell içinde kullanılan komut bileşenleridir. MS-DOS yıllarından hatırlayacağımız Dir komutu gibi, Cmdlet’ler de Exchange Management Shell içinde belli işlemleri yerine getiren komutlardır.

 

CmdLet’lerin  genel yapısı:

 

<Cmdlet komutu>  parametreler

 

Cmdlet komutu da genellikle bir işlem ve bir nesne şeklinde iki bileşenden oluşur:

 

<İşlem>< nesne>

 

İşlem’ler yapılacak işlemi açıklar. Nesne ise işlenecek nesneyi belirtir.

 

Örnek:

 

Get  -  Mailbox

 

C:\> Get-Mailbox

 

Get-Mailbox bir cmdlet’tir. Cmdlet’ler ayrıca çok sayıda parametreye sahiptir.

 

Get-Mailbox "Faruk"

 

Sözdizimi Kuralları

Cmdlet'ler case sensitive (büyük harf/küçük harf) duyarlı değildir. Bütün komutları büyük harfle, küçük harfle ya da karışık olarak yazılabilir. Ancak genellikle "Pascal like" olarak bilinen yazım kullanılır. Bu yazımda komutların ilk harfi büyük olarak yazılır.

 

Örnek: Aşağıdaki örnekte bir kullanıcının mailbox'ı disable edilmektedir:

 

Disable-Mailbox farukcubukcu@fc-holding.com

 

Aşağıdaki örnekte ise Users klasöründeki mailbox’ları listeler:

 

Get-Mailbox -OrganizationalUnit Users

 

Cmdlet işlemleri (Actions)

Cmdlet’lerin ana fonksiyonunu belirtir.

 

 Yaygın kullanılan Cmdlet deyimleri

 

 

İşlem

Açıklama

Get

Belirtilen nesne hakkında bilgi almayı sağlar.

Set

Belirtilen nesnenin özelliklerini günceller.

New

Belirtilen nesnenin bir yeni üyesini yaratır.

Enable

Belirtilen nesneniyi enable eder. Aktifleştirir.

Remove

Belirtilen nesneyi siler.

Disable

Belirtilen nesneyi disable eder. Geçersiz hale getirir.

Mount

 

Bir mailbox'ı ya da public folder'ı mount eder. İlişkilendirmek.

Dismount

 

Bir mailbox'ı ya da public folder'ı dismount eder. İlişkisini kaldırmak.

Move

Mailbox'ları diğer veritabanlarına taşır.

Test

 

Belirtilen nesne üzerinde sorun giderme ya da tanı amaçlı test yapar.

Install

Yeni nesnelerin kurulmasını ya da özelliklerin eklenmesini sağlar.

Uninstall

Nesnelerin kaldırılmasını ya da özelliklerin çıkarılmasını sağlar.

Nesneler (objects)

Cmdlet’lerde işlemlere eklenerek kullanılır. Örneğin mailbox bir nesnedir. Get-Mailbox olarak kullanıldığında ilgili mailbox hakkında bilgi almayı sağlar.

 

Yaygın kullanılan nesneler şunlardır

 

Nesne

Açıklama

ActiveSyncMailboxPolicy

ActiveSync politikaları.

CASMailbox

Mailbox'ın client özellikleri.

ClientAccessServer

 

Exchange Client Access server rolüne ilişkin özellikler.

DistributionGroup

 

Mail-enabled distribution gruplara ilişkin özellikler.

DynamicDistributionGroup

 

Dinamik distribution gruplara ilişkin özellikler.

EmailAddressPolicy

 

e-mail adreslerini tanımlamak için kullanılan özellikler.

ExchangeServer

Exchange server'lara ilişkin özellikler.

Mailbox

Kullanıcı mailbox'larına ilişkin özellikler.

MailboxDatabase

Mailbox veritabanlarının özellikleri.

MailboxServer

 

Exchange Mailbox server rolüne ilişkin özellikler.

MailContact

 

Mail-enabled kontakt nesnelerinin özellikleri.

MailPublicFolder

 

Mail-enabled public folder nesnelerinin özellikleri.

MailUser

 

Mail-enabled olmayan kullanıcıların özellikleri.

ReceiveConnector

Receive konektörlerine ilişkin özellikler.

SendConnector

Send kknektörlerine ilişkin özellikler.

StorageGroup

Storage gruplara ilişkin özellikler.

TransportServer

 

Exchange Hub Transport server rolüne ilişkin özellikler.

UMMailbox

Unified Messaging sistemine ilişkin özellikler.

UMServer

 

Exchange Unified Messaging server rolüne ilişkin özellikler.

User

User nesnelerine ilişkin özellikler.

 

Get işlemiyle oluşturulan Cmdlet’ler genellikle bilgi almak için kullanılır:

 

Get-Mailbox: Mailbox bilgilerini döndürür.

 

Get-MailboxStatistics: Mailbox’lar hakkında bilgi. Size, içindeki mesaj sayısı vb.

 

Get-ExchangeServer: Organizasyon içindeki Exchange Server’lar listesi.

 

Get-MailboxDatabase: Mailbox database’in özellikleri.

 

Aşağıdaki örnekte organizasyondaki bütün mailbox'lar listelenir:

 

Get-Mailbox -ResultSize unlimited

 

Aşağıdaki örnekte ise Users foldırı içindeki bütün mailbox'lar listelenmektedir:

 

Get-Mailbox -OrganizationalUnit Users

 

 

Set Cmdlet’leri:

Set işlemiyle oluşturulan Cmdlet’ler genellikle değişiklikler yapmak için kullanılır:

 

Set-Mailbox: Kullanıcının mailbox özelliklerini düzenler.

 

Storage kotaları düzenlemek için:

 

Set-Mailbox ceyhun -UseDatabaseQuotaDefaults:$False -IssueWarningQuota 45MB -ProhibitSendQuota 50MB -ProhibitSendReceiveQuota 60MB

 

 

Birleşik komut kullanımı olarak; Departmanı Finans olan kullanıcıların mailbox’ları:

 

Get-Mailbox | Set-User –department Finans

 

Ceyhun kullanıcısına gelen her mailleri Administrator kullanıcısına iletmek (forward) için:

 

Set-Mailbox -Identity "ceyhun" -ForwardingAddress " administrator@sirket.com"

 

New Cmdlet’leri:

New işlemi yeni nesnelerin yaratılmasın sağlar.

 

Yeni bir mailbox ve kullanıcı (mailbox-enabled kullanıcı) yaratmak için:

 

new-Mailbox -alias "ceyhun2" -name ceyhun2–userprincipalname ceyhun2@Sirket.com -database "FCServer\First Storage Group\Mailbox Database" -org users

 

Aşağıdaki örnekte ise yeni bir storage grup yaratılır.

 

New-StorageGroup -Name YeniFCStorageGroup -Server FCServer1 -LogFolderPath:"D:\CC" -SystemFolderPath:"D:\CC"

 

Yeni bir Mailbox Database yaratmak için:

 

new-mailboxdatabase "CCMailbox Database" -storagegroup ceyhunst

 

 

Remove Cmdlet’leri:

Kullanıcının mailbox bağlantısını kesmek için:

 

Remove-Mailbox -Identity “ceyhun”

 

Mailbox ve kullanıcı hesabını kalıcı olarak silmek için:

 

Remove-Mailbox -Identity “ceyhun” -Permanent

 

Aşağıdaki örnekte ise bir storage grup silinir.

 

Remove-StorageGroup -Identity "ExcSrv1.ceyhuncamli.com\YeniStorageGroup"

 

 

 

 

Enable Cmdlet’leri:

Nesneleri kullanılabilir hale getirmek için kullanılır. Örneğin var olan bir kullanıcı için mailbox oluşturmak gibi:

 

Enable-Mailbox -Identity ceyhun -Database Server1\Database1

 

Disable Cmdlet’leri:

Enable komutlarının tersine özellikleri ya da kullanımı kaldırmak için kullanılır. Örneğin bir kullanıcının mailbox’ını pasifleştirmek için:

 

Disable-Mailbox ceyhun

 

Örneğin OWA özelliğini disable etmek için:

 

Set-CASMailbox Ceyhun -OWAEnabled:$False

 

 

Move Cmdlet’leri:

Nesneleri taşımak için kullanılır. Örneğin bir kullanıcının mailbox’ını diğer bir veritabanına taşımak için:

 

Move-Mailbox ceyhun -TargetDatabase "First Storage Group\Mailbox Database"

 

 

Move-Mailbox ceyhun@ceyhuncamli.com -TargetDatabase YeniMailboxDatabase

 

 

$True ve $False Switch Parametreleri

Cmdlet’lerin çalıştırılmasında kullanılan bazı parametrelerin çalışması $true (doğru/geçerli) ya da $False (yanlış/geçersiz) şeklinde kullanıma sahiptir.

 

Set-AdSite –Identity <site adı>  – HubSiteEnabled $true

 

Aşağıdaki cmdlet’in kullanımında da switch parametreleri yer almaktadır:

 

Sözdizimi:

 

set-StorageGroupCopy -Identity 'StorageGroupIdentity'

 -CircularLoggingEnabled Switch

 

Kullanım:

 

set-StorageGroupCopy -Identity 'FCExsrv\Third Storage Group'

 -CircularLoggingEnabled true$

 

Örnek: Kullanıcının mailbox’ının OWA özelliğini enable etmek için:

 

Set-CASMailbox -Identity ceyhun -OWAEnabled $true

 

Yazar ceyhun çamlı \\ tags: , , ,

Tem 21

Bugün PowerShell ile ilgili makale serimizin üçüncü makalesi olan écmdlets” kulllanımını anlatacağım.

Cmdlet (Command-Lets) Windows PowerShell’de objeleri işleyen basit fonksiyonlu bir komuttur. Yani cmdlet PowerShell’in komut dizimidir. Fakat bu komutlar standart çalıştırılabilir (executable) dosyalar şeklinde değil de .NET fonksiyonları şeklinde çalışmaktadır. .NET programlama dillerinin mantığı burada kullanılmıştır.

Windows PowerShell’de birçok komut (cmdlets) çok basittir ve diğer komutlar ile kombinasyon halinde kullanılmak için tasarlanmıştır.

Örneğin “Get” komutu sadece bilgi alır. “Set” komutu sadece bilgi güncelleştirmek için, “Format” komutu bilgi formatlamak için, “Out” ise komut çıktısı almak için kullanılır.

Windows PowerShell’de kullanılan komutların ve parametrelerin büyük küçük harf duyarlılığı yoktur.

Kullanımı

Örneğin; Get-Process komutu (cmdlets) çalışan uygulamaların bir listesini vermektedir.

Stop-Process komutu çalışan bir uygulamayı durdurmak için kullanılır.

Aynı şekilde tanımlanmış Get-Service ve Stop-Service komutları servisleri listeler ve durdurur.

Stop-service komutu ile bir servisi durdurup, start-services komutu ile bir servisi başlatabilirsiniz.

Komutların bu şekilde benzer yapılarda tanımlanmış olması komutları öğrenmeyi kolaylaştıracaktır.

Get-Command komutuyla kullanılabilir cmdlets komutlarının listesini alabilirsiniz.

Get-Command Verb Get komutuyla Get ile başlayan komutların bir listesini alabilirsiniz.

Örneğin, cmdlet’te Get-Date komutunu deneyelim :

Get-Command ekranında üç sütun vardır :

CommandType (Komut tipi)            Name (İsmi)              Define (Tanımı)

Cmdet’leri listelerken, define sütunu cdmletin söz dizimini gösterir. Söz diziminde birkaç sözcüğün atılması verinin kesildiğini gösterir. Get-Command cmdlet komut aldığı gibi aynı zamanda ve Windows Powershell’deki aliases (takma isimlere), fonksiyonlara ve kullanılabilir hazır dosyalara komut verir.

Aşağıdaki komut , komut elde edebilmek için isim parametrelerinin kullanılarak Windows PowerShell’de kullanılabilen hazır dosyaları listeler.

PS> get-command *.vbs

Name sütunu script dosyalarını listelerken, definition sütunu script dosyalarına ulaşmak için izlenmesi gereken yolu gösterir.

Get-Eventlog komutu ile logları görüntüleyebilirsiniz.

Get-Alias komutu ile tanımlı alias’ları görüntüleyebilirsiniz. 

 

Get-ComputerRestorePoint ile sisteminizdeki geri yükleme noktalarını görüntüleyebilirsiniz.

Basit Get- cmdetler’le ilgili bir sorun yaşamazsak, Get- Wmiobject gibi farklı cdmlet komutlarını da inceleyebiliriz.. Bu cdmlet gayet kullanışlıdır çünkü size diğer bilgisayarlardaki unsurları inceleme ve değiştirme fırsatı verir.

Örneğin : Aşağıdaki komut, server01 adlı bilgisayarın BIOS’u hakkında bilgi toplar :
get-wmiobject win32_bios -computername teknik

get-wmiobject -class Win32_ComputerSystem

Cdmlet ile ilgili yardım almak istersek aşağıdaki satırı kullanmamız yeterli olacaktır.:
get-help -detailed

Örneğin Event ile ilgili yardım bilgilerine ulaşmak için
get-help Event -detailed

Get-help komutunu kullanarak , PowerShell üzerinde kullanılabilecek olan parametrelere ve bu parametrelerin kullanım şekillerine ilişkin yardım alabiliriz. Get-Help komutu, Windows PowerShell’de kavramsal başlıkları ve cmdlet’ler hakkında bilgileri ayrıntılı bir şekilde görüntülemeyi sağlar.
Parametre özellikleri içeren bir cmdlet hakkında ayrıntılı bilgi alabilmek ve örnekleri görüntülüyebilmek için Get-Help komutunun detailed, full, examples, parameter parametrelerinden herhangi birini kullanabiliriz.

Örneğin : get-help get-childitem –examples

Bir makalemizin daha sonuna geldik. Bir sonraki makalemizde PowerShell ile Windows programlarını kullanma ve scripting konularına değineceğim. Herkese iyi çalışmalar.

Yazar ceyhun çamlı \\ tags: ,