PowerShell cehenneminden kaçış

PowerShell, yeni bir betik (script) ortamı sunuyor. Eski komut satırı ortamlarına göre çok sayıda üstünlüğü var. Bir o kadar da zorluğu.

Zorlukların başında komutları anlamak geliyor. Komutlar çok ayrıntılı, buna karşılık yardım bilgileri olağanüstü karmaşık. Yardım bilgileri için de yardım almak gerekiyor neredeyse.

PowerShell’i eski araçlarla birlikte kullanmak en iyisi görünüyor. Bunu son işlerimden birinde daha iyi anladım.

İşim, bir etki alanındaki kullanıcıları diğer bir etki alanında yaratmak. Aynı zamanda, bu kullanıcılar için yeni posta kutuları da oluşturulacak.

Elimde ilk etki alanındaki kullanıcıların adları, soyadları, oturum açma (logon) adları, açıklama (Description) bilgileri ve e-posta adresleri var. Yeni sistemde bu bilgilerin hepsini kullanmam gerekiyor. Ayrıca, kullanıcıları yeni etki alanında belli bir yapısal birimin (OU) altında yaratmam gerekiyor.

İlk olarak, yeni sistemde bir PowerShell komutu olan New-mailbox komutunu kullanmak en iyisi gibi göründü.

New-mailbox komutu ile kullanıcıyı ve posta kutusunu aynı anda yaratmak mümkün. Ama daha başta bu komutun bir yetersizliği ortaya çıktı: Kullanıcıların Description alanı bu komutla tanımlanamıyor.

Ben de, elimdeki Description bilgisini yeni yaratılacak kullanıcıların Office alanına kaydetmeyi planladım. Bir kez bunda başarılı olursam daha sonra Office alanındaki bilgiyi Description alanına kopyalayabileceğimi düşündüm (daha önce, başka bir müşteride bir Visual Basic betiğiyle böyle bir şey yapmıştık).

New-mailbox komutunu şekilde görüldüğü gibi tek bir kullanıcı için denedim ve yine şekilde görüldüğü gibi hatayı da aldımJ

Hatadan anlaşıldığı kadarıyla, komut benim bir kullanıcı tanımlamak istediğimi anlamıyor ve bunun bir toplantı odası (room) tanımı olup olmadığını soruyor. –room parametresi için $true/$false ya da 1/0 değerleri girilebiliyor. Ama room parametresine ne verirsem vereyim kabul edilmiyor. Komutun yazımında bir sorun olduğu açık. Bir hata yapıyorum ama nerede yaptığımı bilmiyorum.

Komutu bir miktar basitleştirmeye çalışıyorum. Her seferinde bir veya birkaç parametreyi atıp denemeler yapıyorum. Olmuyor. Her seferinde sonuç aynı: Room parametresine değer girmem isteniyor, girilen değer de kabul edilmiyor.

Öte yandan, New-mailbox komutu çalışıyor. Eğer komutu çok yalın bir şekilde kullanırsam, posta adresi, açıklama alanı gibi bilgileri kullanmazsam yeni kullanıcı ve onun posta kutusunu yaratabiliyorum.

Birkaç deneme daha yaptıktan sonra pes ediyorum. Kullanıcıyı yaratmak için Windows 2003’den bu yana kullanabildiğimiz “dsadd user” komutunu kullanmaya karar veriyorum. Kullanıcı doğru şekilde yaratıldıktan sonra da, daha basit bir PowerShell komutu olan enable-mailbox komutu ile posta kutusu yaratacağım.

Dsadd user komutum örnek bir kullanıcı için şu şekilde:

dsadd user cn=aihsan.demircioglu,ou=xxx,dc=xxx,dc=gov,dc=tr -samid aihsan.demircioglu -upn aihsan.demircioglu@xxx.gov.tr -fn A.İhsan -ln DEMIRCIOGLU -pwd Password1 -desc "Bursa Muhasebe Dairesi Başkanlığı" -mustchpwd yes

Tek bir kullanıcı için komutun çalıştığını gördükten sonra 2000 kullanıcı için bir betik hazırlıyorum. Betik içinde yukarıdaki gibi komutlar var.

Kullanıcılar ilgili yapısal birimde oluşturulduktan sonra sıra enable-mailbox komutuna geliyor.

Örnek bir komut şu şekilde:

enable-mailbox -identity xxxaihsan.demircioglu -database yeniveritabani -primarysmtpaddress aidemircioglu

Komut başarıyla çalışıyor. Komutu 2000 kullanıcı için bir betik haline sokuyorum. İşlem tamamlanıyor.

Sonuç: PowerShell ortamı cenneti vaat ediyor ama karşımıza daha çok bir cehennem çıkıyor.

Bu cehennemden kurtulmak için eski komut satırı ortamından da yararlanmakta yarar var.

Reklamlar

Bir Yanıt Bırakın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s


%d blogcu bunu beğendi: