Ana içeriğe atla

Powershell ile Windows Restart Kontrolü

Powershell ile Windows üzerinde birçok işlemi daha kolay ve daha kısa sürede yapabilmek mümkündür.  Microsoft, PowerShell'i "görev tabanlı .NET Framework üzerine inşa edilmiş komut satırı shell'i ve komut dizesi olarak tanımlıyor.

Powershell'in avantajlarını ise aşağıdaki maddeler ile özetlemek mümkündür.

  1. Powershell hem command-line olarak hemde bir scripting language olarak çalışmaktadır.
  2. Powershell baş döndürücü sayıda teknolojiyle etkileşim kurabilir.(.NET Framework, the Registry, COM, WMI, ADSI. Exchange, Sharepoint, Systems Center, Hyper-V, SQL. VMware vCenter, Cisco UCS, Citrix XenApp and XenDesktop. REST APIs, XML, CSV, JSON ...)
  3. Powershell nesne tabanlıdır.(Object-Oriented)


Bilgisayarımızda ya da sunucumuzda zaman zaman yüklediğimiz programlar ve patchler sonucunda restart işlemi gerekebilir ve bu restart işlemi gerekip gerekmediğini tespit etmek için Powersehell kullanılabilir.  Aynı anda 100 sunucuda bunu öğrenmek gerektiğinde ise Powershell çok yerinde ve efektif bir çözüm olacaktır.

Aşağıdaki script ile restart kontrolünü gerçekleştirebiliriz.

Test-PendingReboot:
Windows Registry'den Reboot gerekip gerekmediği bilgisini alan fonksiyondur.Boolean değerinden bi sonuç döndürmektedir.
DecideIf:
Test-PendingReboot fonksiyonundan dönen true yada false değerine göre sonucu kullanıcıya ileten fonksiyondur.

function Test-PendingReboot
{
 if (Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -EA Ignore) { return $true }
 if (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -EA Ignore) { return $true }
 if (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -EA Ignore) { return $true }
 try {
   $util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities"
   $status = $util.DetermineIfRebootPending()
   if(($status -ne $null) -and $status.RebootPending){
     return $true
   }
 }catch{}

 return $false
}

Function DecideIf()
{

if(Test-PendingReboot)
{
Write-Host Bilgisayarınızın Restart Edilmesi Gerekiyor.
}
else
{
Write-Host Bilgisayarınızın Restart Edilmesi Gerekmiyor.
}
}


DecideIf



Yorumlar

Bu blogdaki popüler yayınlar

Powershell ile Web Tarayıcı Cookie Temizliği

Web tarayıcıların ürettiği cookie ve minik boyuttaki veriler uzun bi süre temizlenmediği durumda yüksek boyutlara ulaşabilir ve bilgisayarımızın performansını kötü etkileyebilir. Bu tarz cookie temizliği ve yönetimi işlemlerinin periyodik olarak yapılması bilgisayarımızın performansı arttıracak ve disk alanı üzerinde bize bir miktarda olsa yer kazandıracaktır. Bu tarz işlemleri yapan programlar internette mevcut ancak bazılarının güvenilirliği tartışılır ve cookie temizliği işlemini periyodik olarak yapmıyor. Powershell ile arkaplan işlerini ve browser yönetimi özelliklerini kullanarak cookie yönetimini ve temizliğini periyodik olarak gerçekleştirmek mümkün. Bu sayede hem güvenlik konusunda hem de işlevsellik konusunda kullanıcı dostu bir modül yapmak mümkündür. Aşağıdaki powershell komutları browser üzerindeki cookie temizliği işlemini yapmaktadır. Not: Cookie Temizleme işlemini yapan fonksiyon aşağıdaki github projesinden alıntıdır. Bu scriptin üzerine birkaç ekl...

ASP.NET Core ile Visual Studio Code Ortamında Web API Geliştirmek

Merhaba Arkadaşlar, Önceki yazılarımızda MVC ile Web Programlama üzerine çalışmalar yapmıştık. Bu yazımda herkesin aklında bir fikir ve önbilgi oluşturmak adına MVC yapısından farklı olarak Web API konusuna giriş yapacağız. MVC yazılarına bu hafta devam etmedik çünkü MVC'ye devam ettikçe bazı kavramlar ve işlemler API ile daha kolay çözülebileceğini fark edeceksiniz. Bunu fark etmeniz için araya hem bir Web API yazısı koymuş olduk hem de .NET Core 2.0 ve Visual Studio Code ortamlarını tanımış olduk. Herşeyi ezbere bilmek zorunda değiliz ama en azından bazı kavramlar aklımızda yer etmeli bir önbilgimiz olmalı. Uzmanlığımız dışında bile olsa farklı konularda az da olsa bilgimiz olmalı ve gerektiğinde kendimizi farklı bir alanda diğer kişilerden daha hızlı uzmanlık kazanacak konuma getirmeliyiz :) Benim yorumlarım bu şekilde. Konumuza başlayacak olursak .NET Core nedir kısaca özetlemek gerekecek. Microsoft’un öncelikle IIS üzerinde PHP dosyalarının çalıştırılabilmesi daha ...

ASP.NET MVC ile Entity Framework Kullanımı 3(Sum-Average-Top)

Merhaba Arkadaşlar, ASP.NET MVC ile Entity Framework kullanımı yazılarımıza devam ediyoruz. Geçen yazılarımızda Select ve Insert işlemlerini tanıtmıştık kısaca. Bu yazımızda ise,Entity Framework ile daha profesyonel ve advanced select operasyonları üzerinde çalışmalar yapacağız. Veritabanı üzerinde,iş biriminin istekleri basit select sorgusu ile olmayabiliyor. Bizden çekilen verilerin toplanması,ortalanmasının alınması ve ilk "x" kayıdın çekilmesini talep edebiliyorlar. Bu nedenle bu hafta Entity Framework ile Select operasyonlarında gruplama,sıralama ve top konularını inceleyeceğiz. Entity Framework İle Sum Kullanımı Bazen elde edilen verilerden toplam operasyonu gerekmektedir. Bu tarz durumlarda,SUM özelliğini kullanmaktayız. İlk etapta, GetTotalRate isminde integer değer geri veren bir fonksiyon oluşturduk. Daha sonrasında ise ToplamRate isimli değişkenimize EmployeePayHistories tablosunda Rate alanlarının toplam değerini hesaplatıp sonucu atadık. En s...