Microsoft.Graph (MgGraph), Microsoft'un bulut tabanlı hizmetlerine erişim sağlayan kapsamlı bir API setidir. Bu API'ler, Entra ID (Azure AD), Exchange Online, Intune ve diğer birçok Microsoft hizmetini yönetmek için kullanılır. Microsoft.Graph API, tek bir uç nokta üzerinden çeşitli Microsoft 365 hizmetlerine erişim sağlar ve bu sayede veri yönetimi, güvenlik ve entegrasyon süreçlerini merkezi bir şekilde yürütmeyi mümkün kılar. Bu API, JSON formatında veri döndürür ve RESTful protokoller kullanılarak çağrılabilir.
Microsoft.Graph PowerShell modülü, bu API'yi PowerShell komutları aracılığıyla kullanmanızı sağlar. PowerShell, özellikle sistem yöneticileri için güçlü bir otomasyon aracıdır ve Microsoft.Graph (MgGraph) ile birlikte kullanıldığında, bulut tabanlı hizmetlerin yönetimini büyük ölçüde kolaylaştırır.
Microsoft.Graph (MgGraph) PowerShell modülü, Entra ID (Azure AD), Exchange Online, SharePoint, Teams gibi hizmetlerle etkileşime geçerek kullanıcı, grup, cihaz ve uygulama yönetimi gibi işlemleri gerçekleştirebilir. Bu modül, hem basit görevler için tek satırlık komutlar hem de daha karmaşık senaryolar için Script'ler yazmanıza olanak tanır.
Microsoft.Graph'in önemli avantajlarından biri, sürekli olarak güncellenen ve genişleyen bir API seti sunmasıdır. Bu sayede, en yeni Microsoft 365 özelliklerine ve hizmetlerine her zaman erişim sağlayabilirsiniz. Ayrıca, Microsoft.Graph API, OAuth 2.0 tabanlı güvenlik protokolleri kullanarak güvenli kimlik doğrulama ve yetkilendirme sağlar. Bu, API çağrılarının güvenli bir şekilde yapılmasını ve veri güvenliğinin sağlanmasını garanti eder.
Microsoft.Graph (MgGraph) PowerShell modül kurulumu ve kullanımı, MSOnline modülü ile kıyaslandığında birçok avantaja sahiptir. MSOnline modülü, yalnızca Entra ID (Azure AD) yönetimi için kullanılabilirken, Microsoft.Graph (MgGraph) modülü, geniş bir hizmet yelpazesine erişim sağlar. Bu nedenle, Microsoft.Graph modülü, daha kapsamlı ve güncel bir çözüm sunar. Ayrıca, Microsoft, MSOnline modülünü artık güncellemiyor ve yeni projelerde kullanılmasını önermiyor. Bunun yerine, Microsoft.Graph modülünün kullanılması teşvik ediliyor. Microsoft.Graph (MgGraph) modülünü kullanarak, Entra ID (Azure AD) kullanıcı ve grup yönetimi, Exchange Online posta kutusu yönetimi, Intune cihaz yönetimi, Teams yapılandırma ve daha fazlasını yapabilirsiniz.
Örneğin, Get-MgUser cmdlet'i ile kullanıcı bilgilerini alabilir, New-MgGroup cmdlet'i ile yeni bir grup oluşturabilir veya Get-MgDevice cmdlet'i ile cihaz bilgilerini sorgulayabilirsiniz. Modülün kurulumu ve yapılandırılması, PowerShellGet modülü aracılığıyla yapılır ve bu sayede modülün en güncel sürümüne kolayca erişim sağlayabilirsiniz. Kurulum ve güncellemeler sırasında karşılaşılabilecek bağımlılık ve uyumluluk sorunlarını önlemek için PowerShellGet modülünün güncel olması önemlidir.
Firewall Port Yapılandırma Ayarları
Microsoft.Graph (MgGraph) PowerShell modülünü kullanmak için Microsoft Online servislerine erişim sağlamak gereklidir. Bu erişim, Firewall üzerinde doğru Port Forwarding işlemleri ile mümkün olur. Microsoft Online hizmetlerine erişim sağlamak için belirli IP adresleri ve FQDN (Fully Qualified Domain Name) bilgilerinin Firewall üzerinde izin verilmiş olması gerekir. Microsoft, bilgilerini düzenli olarak güncelleyebilir. Bu nedenle, en güncel bilgileri Microsoft'un Microsoft 365 URLs and IP address ranges resmi sitesi üzerinden takip etmeniz önemlidir.
Proxy Sunucuları ve Diğer Network Yapılandırmaları
Eğer Network ortamınızda Proxy sunucuları kullanıyorsanız, bu Proxy sunucuların da gerekli portları yönlendirebilecek ve yukarıda belirtilen FQDN'lere erişim sağlayacak şekilde yapılandırılmış olması gerekmektedir. Ayrıca, ağınızda SSL/TLS denetimi yapılıyorsa, bu denetimin Microsoft servislerinin düzgün çalışmasını engellemediğinden emin olmalısınız. Firewall yapılandırmaları, güvenlik ve Network yönetimi açısından kritik öneme sahiptir. Yukarıda belirtilen portlar, IP adresleri ve FQDN'lerin doğru şekilde yapılandırılması, Microsoft Graph API ve diğer Microsoft 365 hizmetlerine sorunsuz erişim sağlamak için gereklidir. Bu ayarların yapılmaması, hizmetlere erişimde kesintilere ve yönetimsel zorluklara yol açabilir. Bu nedenle, gerekli yapılandırmaların dikkatli bir şekilde yapılması ve düzenli olarak kontrol edilmesi önemlidir.
PowerShell Ortamının Hazırlanması
PowerShellGet modülü, diğer modüllerin yönetimi için kritik öneme sahiptir. Bu modül, PowerShell Gallery üzerinden modül yüklemek, güncellemek ve bulmak için kullanılan komutları sağlar. PowerShellGet'in güncel olması, modül yönetiminde karşılaşılabilecek bağımlılık ve uyumluluk sorunlarını önler. Aşağıdaki adımlar izlenerek PowerShellGet modülü güncellenmelidir.
1- Güvenlik Politikası Ayarları
PowerShell'de komut dosyalarının çalıştırılabilmesi için mevcut Execution Policy'nin kontrol edilmesi önemlidir. Aşağıdaki komut ile mevcut Execution Policy (yürütme politikası) durumunu kontrol edebilirsiniz.
Komut çıktısının RemoteSigned olarak görünesi gerekmektekdir. Eğer zaten RemoteSigned politikasının etkin olduğunu görüyorsanız, mevcut ayarınız zaten güvenlik politikalarını karşılamaktadır.
Eğer komut çıktısı RemoteSigned değilse, aşağıdaki komut ile ilgili güvenlik politikasını yapılandırabilirsiniz.
Set-ExecutionPolicy RemoteSigned -Force |
Bu komut, PowerShell'de komut dosyalarının çalıştırılabilmesi için yürütme politikasını belirler ve güvenlik ayarlarını düzenler. PowerShell'in Script'ler için belirlediği güvenlik politikalarını yönetir. RemoteSigned parametresi, yalnızca yerel olarak oluşturulmuş Script'lerin çalıştırılmasına izin verirken, Internet'ten indirilmiş olanların imzalanmış olmasını gerektirir. -Force parametresi ise, bu değişikliklerin kullanıcı onayı gerekmeden uygulanmasını sağlar, böylece komut dosyalarının çalıştırılmasını güvenli hale getirir.
NOT: Değişikliklerin uygulanabilmesi için Windows PowerShell penceresini kapatıp, Run as Administrator seçeneği ile yeniden açın.
• RemoteSigned: Bu politika, yerel betiklerin imzasız olarak çalıştırılmasına izin verir, ancak Internetten indirilen betiklerin dijital olarak imzalanmış olması gerekir. Bu, zararlı yazılımların çalıştırılmasını engelleyerek güvenlik sağlar.
• -Force: Bu parametre, komutun herhangi bir onay istemi göstermeden çalışmasını sağlar. Kullanıcı müdahalesi olmadan yürütme politikasını ayarlar.
2- PowerShellGet Modülünün Güncellenmesi
PowerShellGet, PowerShellGet modülünün en son sürümünü yükler. Bu komut, PowerShell Gallery'den modül yükleme, güncelleme ve bulma işlemlerini yönetir.
Install-Module PowerShellGet -Force |
• Install-Module: PowerShell Gallery'den belirtilen modülü yükler.
• PowerShellGet: Yüklenmesi veya güncellenmesi gereken modülün adıdır.
• -Force: Bu parametre, modülün zorla yüklenmesini sağlar ve mevcut bir sürüm varsa üzerine yazar. Ayrıca, bağımlılıkların otomatik olarak yüklenmesini sağlar.
PowerShellGet'i güncellemek, modül yönetimi ile ilgili en son iyileştirmeler ve hata düzeltmelerini almanızı sağlar. Bu, bağımlılıkların ve yeni özelliklerin yönetiminde önemli olabilir. Eğer NuGet Provider'ı yüklü değilse, bu komutu çalıştırdığınızda aşağıdaki mesajı alabilirsiniz:
NuGet Provider is required to continue
PowerShellGet requires NuGet Provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet Provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or 'C:\Users\Administrator\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet Provider by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and import the NuGet Provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y |
Bu durumda, "Y" tuşuna basarak veya "Yes" yazarak, NuGet Provider'ının otomatik olarak yüklenmesini ve içeri aktarılmasını sağlayabilirsiniz.
Bu mesaj, PowerShellGet modülünü yüklemek veya güncellemek için NuGet Provider gerektiğini belirtir. NuGet Provider'ı, NuGet tabanlı depolarla (NuGet-based repositories) etkileşim kurmak için gereklidir. PowerShellGet, bu sağlayıcının en az 2.8.5.201 sürümüne ihtiyaç duyar. Eğer NuGet Provider'ını manuel olarak yüklemek isterseniz, aşağıdaki komutu kullanabilirsiniz.
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force |
Eğer bu adım da başarısız olursa ve aşağıdaki gibi bir hata mesajı alırsanız,
WARNING: Unable to download from URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' to ''.
WARNING: Unable to download the list of available providers. Check your Internet connection.
PackageManagement\Install-PackageProvider : No match was found for the specified search criteria for the provider 'NuGet'. |
Bu durumda, aşağıdaki adımları izleyebilirsiniz.
2.1- PowerShell Sürüm Kontrolü
PowerShell üzerinden NuGet sağlayıcısını yüklerken alınan hata, genellikle uyumsuz bir PowerShell sürümü, eksik modüller ya da bağlantı problemlerinden kaynaklanır. PowerShell sürümünüz, bu tür modül ve sağlayıcıların yüklenmesinde kritik bir rol oynar. Eğer PowerShell sürümünüz eski ise, bu durum NuGet veya PackageManagement gibi bileşenlerin doğru şekilde çalışmasını engelleyebilir. Daha yeni bir PowerShell sürümüne geçmek, bu tür sorunların önüne geçmenizi sağlar. PowerShell 5.1 ve sonrası sürümler, hem PackageManagement modülü hem de NuGet sağlayıcısıyla daha yüksek uyumluluğa sahiptir.
Bu tür hatalar aynı zamanda PackageManagement modülünün yüklü olmamasından da kaynaklanabilir. PackageManagement, PowerShell'in sağlayıcılarla iletişim kurmasını sağlar ve eksikliği, modül indirme işlemlerinin başarısız olmasına yol açar. Eğer ortamınızda bu modül bulunmuyorsa, manuel olarak yüklemeniz gerekebilir. Yükleme sırasında ortaya çıkan bağlantı hataları ise genellikle Proxy yapılandırmaları veya Internet bağlantısındaki kısıtlamalardan kaynaklanır. Proxy kullanıyorsanız, doğru yapılandırmanın yapılması gerektiğini unutmayın.
Get-Host | Select-Object Version |
2.2- Güvenlik Protokolünü Kontrol Etme ve Ayarlama
PowerShell'de hangi güvenlik protokollerinin etkin olduğunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz.
[Net.ServicePointManager]::SecurityProtocol |
Bazı durumlarda, TLS gibi belirli protokollerin etkinleştirilmesi veya devre dışı bırakılması gerekebilir. Örneğin, dış servislerle güvenli iletişim sağlamak için TLS 1.2 protokolünü aktif olarak kullanmak önemlidir. Eğer belirli bir güvenlik protokolüne ihtiyaç duyuluyorsa, PowerShell üzerinden yapılandırmayı manuel olarak gerçekleştirebilirsiniz. Ancak bu, yalnızca spesifik bir protokol gerektiren senaryolarda önerilir. Varsayılan ayarların değiştirilmesi, sistem genelinde beklenmeyen sonuçlar doğurabilir.
Bu tür yapılandırma değişikliklerinde, özellikle TLS protokolü gibi modern ve güvenli bir protokol seçmek kritik öneme sahiptir. Ayrıca, herhangi bir protokol değişikliğini uygulamadan önce mevcut sistem gereksinimlerini ve uyumluluk gereksinimlerini dikkate almak gerekir. SystemDefault gibi bir ayar, çoğu durumda sistemin dinamik olarak uygun protokolü seçmesine izin verir ve genellikle güvenli bir tercihtir.
SystemDefault, PowerShell'in sistem varsayılan güvenlik protokollerini kullanacağını ifade eder. Bu durum, uygulamanın mevcut protokol seçeneklerini sistem ayarlarına göre belirlediğini ve belirli bir güvenlik protokolüne zorlanmadığını gösterir.
2.3- TLS 1.2'yi Etkinleştirme
PowerShell 5.1, varsayılan olarak SSL 3.0 ve TLS 1.0 kullanır. Daha güvenli ve güncel bağlantılar için TLS 1.2 (Transport Layer Security 1.2) etkinleştirme önemlidir. TLS 1.2, Internet üzerinden güvenli veri iletimini sağlayan kritik bir protokoldür. Makale konusu olan PowerShell'de Microsoft.Graph (MgGraph) modül kurulumu sırasında TLS 1.2'nin etkinleştirilmesi, güvenli bağlantıların sağlanması açısından büyük önem taşır.
Microsoft.Graph (MgGraph) modülü, çeşitli Microsoft hizmetlerine erişim ve yönetim için kullanıldığından, güvenlik açıklarını önlemek ve veri bütünlüğünü korumak için güvenli bağlantıların kullanılması gereklidir. TLS 1.2, eski protokollere kıyasla daha güçlü şifreleme algoritmaları ve güvenli el sıkışma süreçleri sunar. Bu, yetkisiz erişim ve veri sızıntısı risklerini minimize eder. Özellikle PowerShell modüllerinin yüklenmesi ve güncellenmesi sırasında, TLS 1.2'nin kullanılması, güvenilir ve güvenli bir veri aktarımı sağlar. Güvenli bağlantılar olmadan, modül yükleme işlemleri sırasında kötü niyetli saldırılar veya veri manipülasyonları mümkün olabilir.
Bu nedenle, TLS 1.2'nin etkinleştirilmesi, Microsoft.Graph (MgGraph) modülü ve diğer PowerShell modüllerinin güvenli bir şekilde indirilip kullanılmasını sağlar. Bu, sistem güvenliğini artırır ve güvenlik standartlarına uyumu sağlar. Sonuç olarak bu işlem, paket yükleme ve güncelleme işlemlerinde karşılaşılan sorunları çözmeye yardımcı olabilir. Özellikle, NuGet Provider gibi belirli modül ve sağlayıcıları indirirken bu adım kritik öneme sahiptir.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 |
2.4- Tüm bu adımlardan sonra hala hata almaya devam ederseniz, PowerShell Gallery'yi varsayılan modül deposu olarak kaydetmek için aşağıdaki komutu kullanabilirsiniz. Bu, PowerShell modüllerini yüklemek, güncellemek ve yönetmek için kullanılan merkezi bir depodur. Bu komut, PowerShell Gallery'nin kaydını yenileyerek, PowerShellGet ve diğer modüllerin sorunsuz bir şekilde yüklenmesini ve güncellenmesini sağlar. Bu işlem, modül depolarının bulunamaması sorununu çözerek PowerShell'de modül yönetimini kolaylaştırır.
Register-PSRepository -Default |
Tüm işlemler tamamlandıktan sonra, Register-PSRepository -Default komutu çalıştırılarak sorun giderilmiş oldu. Bu komut, PowerShell Gallery'i varsayılan modül deposu olarak kaydederek modül yükleme ve güncelleme işlemlerinin sorunsuz bir şekilde gerçekleştirilmesini sağlamış oldu. Ardından, Install-Module PowerShellGet -Force komutu tekrar çalıştırılarak PowerShellGet modülünün en son sürümü başarıyla yüklendi. Bu adımlar, PowerShell ortamımızı güncelleyerek modül yönetimini güvenilir ve kesintisiz hale getirdi.
NuGet Provider'ı yüklendikten sonra, PowerShellGet modülünü güncellemeye devam edebiliriz.
Microsoft.Graph (MgGraph) Modül Kurulumu
1- Tüm Kullanıcılar İçin Kurulum
Microsoft.Graph (MgGraph) modülün tüm kullanıcılar için yüklemek için aşağıdaki komut kullanılır. Bu komut, Microsoft.Graph modülünün kararlı sürümünü tüm kullanıcılar için yükler. Eğer bilgisayarda birden fazla kullanıcı varsa ve modülün tüm kullanıcılar tarafından erişilebilir olmasını istiyorsanız, bu komutu kullanabilirsiniz.
Install-Module Microsoft.Graph -Scope AllUsers -Force -AllowClobber -Verbose |
• -Scope AllUsers: Bu parametre, modülün tüm kullanıcılar için yüklenmesini sağlar. Bu, modülün tüm kullanıcı hesaplarına erişilebilir olmasını sağlar ve bilgisayardaki her kullanıcı, yüklenen modülü kullanabilir.
• -AllowClobber: Bu parametre, yüklenen modülün mevcut komutları veya modülleri geçersiz kılmasına izin verir. Aynı ada sahip mevcut komutlar veya modüller varsa, yeni yüklenen modül bu komutları geçersiz kılar.
• -Force: Bu parametre, kullanıcıdan onay istemeden işlemleri zorla gerçekleştirir. Örneğin, bir modül zaten yüklüyse ve güncellenmesi gerekiyorsa, onay istemeden doğrudan güncelleme yapar.
• -Verbose: Bu parametre, komut çalıştırıldığında ayrıntılı bilgi sağlar. Yükleme işlemi sırasında her adımın ayrıntılı bir çıktısını görmek için kullanılır. Bu, işlemin ilerleyişini ve olası sorunları anlamak için faydalıdır.
NOT: Komuttaki -Scope parametresi belirtilmezse bile, varsayılan olarak AllUsers kullanılır ve modül tüm kullanıcılar için yüklenir.
2- Belirli Bir Kullanıcı İçin Kurulum
Eğer modülün sadece mevcut kullanıcı için yüklenmesini istiyorsanız, aşağıdaki komutu kullanabilirsiniz.
Install-Module Microsoft.Graph -Scope CurrentUser -Force -AllowClobber -Verbose |
• -Scope CurrentUser: Bu parametre, modülün yalnızca geçerli kullanıcı için yüklenmesini sağlar. Yani, modül yalnızca komutu çalıştıran kullanıcı hesabına erişilebilir olur ve diğer kullanıcı hesaplarından erişilemez. Bu, özellikle paylaşılan bilgisayarlarda veya kullanıcı bazında farklı modül gereksinimleri olduğunda kullanışlıdır.
Komutların Birlikte Kullanımı
Genellikle, ihtiyaçlarınıza bağlı olarak sadece birini kullanmanız yeterlidir. Eğer modülün tüm kullanıcılar tarafından erişilebilir olmasını istiyorsanız, -Scope AllUsers parametresini kullanarak yükleme yapabilirsiniz. Ancak, kişisel veya belirli bir kullanıcıya özel kurulumlar için -Scope CurrentUser parametresi yeterlidir. Beta sürümü yüklemek ise tamamen isteğe bağlıdır ve genellikle yeni özellikleri test etmek isteyen kullanıcılar tarafından tercih edilir. Üretim ortamlarında kararlılık ve uyumluluk sorunları olabileceğinden beta sürüm kullanımı önerilmez.
Microsoft.Graph (MgGraph) Beta Modül Kurulumu
Beta sürüm için komut setletinin kurulum işlemi isteğe bağlıdır ve test amaçlı kullanımlar için önerilir ve yeni özellikleri deneyimlemek isteyen kullanıcılar tarafından tercih edilebilir. Ancak, beta sürümde bazı kararlılık ve uyumluluk sorunları olabileceği için, Production ortamlarında kullanılması önerilmez. Beta sürümünü yüklemek için aşağıdaki komutu kullanabilirsiniz.
Install-Module Microsoft.Graph.Beta -AllowClobber -Force -Verbose |
• -AllowClobber: Bu parametre, yüklenen modülün mevcut komutları veya modülleri geçersiz kılmasına izin verir. Aynı ada sahip mevcut komutlar veya modüller varsa, yeni yüklenen modül bu komutları geçersiz kılar.
• -Force: Bu parametre, kullanıcıdan onay istemeden işlemleri zorla gerçekleştirir. Örneğin, bir modül zaten yüklüyse ve güncellenmesi gerekiyorsa, onay istemeden doğrudan güncelleme yapar.
• -Verbose: Bu parametre, komut çalıştırıldığında ayrıntılı bilgi sağlar. Yükleme işlemi sırasında her adımın ayrıntılı bir çıktısını görmek için kullanılır. Bu, işlemin ilerleyişini ve olası sorunları anlamak için faydalıdır.
Yüklü Modülleri Kontrol Etme
Yüklü olan Microsoft.Graph (MgGraph) modüllerini kontrol etmek için aşağıdaki komutu kullanabilirsiniz.
Get-InstalledModule | Where-Object {$_.Name -match "microsoft.graph"} | FT -AutoSize |
Bu sayede, hangi Microsoft.Graph (MgGraph) modüllerinin yüklü olduğunu ve hangi sürümlerin kullanıldığını hızlıca belirleyebilirsiniz. Bu, özellikle modül yönetimi ve sürüm kontrolü açısından faydalıdır.
Bu komut çıktısı, sistemde yüklü olan tüm Microsoft.Graph (MgGraph) modüllerini ve sürümlerini gösterir. Bu, özellikle modül yönetimi, güncellemeleri takip etme ve hangi sürümlerin yüklü olduğunu doğrulama açısından faydalıdır.
Örneğin, bir sistem yöneticisi, hangi Microsoft.Graph (MgGraph) modüllerinin yüklü olduğunu ve bunların hangi sürümlerde olduğunu hızlıca kontrol etmek isteyebilir. Bu komut, yöneticinin güncellemeleri planlaması veya modülleri yapılandırması için gereken bilgileri sağlar.
Hybrid Mimari Kurulumlar İçin Gereklilikler
Hybrid mimariler, On-Premises ve Cloud (bulut) ortamlarının entegrasyonunu sağlamak için gereklidir. Microsoft.Graph (MgGraph), bu tür mimariler için kritik bir rol oynar. Hybrid mimari kurulumları için gereklilikler ve öneriler şunlardır:
• Azure AD Connect: On-Premises Active Directory ile Entra ID (Azure AD) arasında senkronizasyon sağlar.
• Exchange Hybrid Configuration Wizard: On-Premises Exchange ve Exchange Online arasında posta kutusu taşıma, serbest/meşgul bilgisi paylaşımı gibi işlemleri yönetir.
• Güvenlik ve Uyumluluk: Microsoft.Graph API'leri, veri güvenliği ve uyumluluk gereksinimlerini karşılamak için gelişmiş güvenlik özellikleri sunar.
Sonuç olarak özetlemek gerekirse Microsoft.Graph, yani MgGraph, modern bulut tabanlı yönetim ve otomasyon gereksinimlerini karşılayan geniş ve güncel bir API seti sunar. MSOnline modülünün yerini alarak, kullanıcıların daha güvenli, performanslı ve kapsamlı bir yönetim deneyimi yaşamalarını sağlar. Hybrid mimari kurulumlarında da kritik bir rol oynar ve Microsoft bulut hizmetlerinin entegrasyonunu kolaylaştırır.
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.