PowerShell Kullanılabilir Script Örnekleri

 

Süreli Ping Paket Kontrolü ve Loglama PowerShell

filter timestamp {“$(Get-Date -Format o): $_”} & ping www.google.com t | timestamp > c:\logging.txt Get-Content c:\logging.txt wait PowerShell

Stop, start ve Recycle ( Geri Dönüşüm ) Application Pools

 

AppCmd stop AppPool “example.com” AppCmd start AppPool “example.com” AppCmd start AppPool “example.com” /autoStart:true AppCmd recycle AppPool “example.com

Windows PowerShell

Durdurulan Tüm Uygulama Havuzlarını Bir Döngüde Başlatın

AppCmd list AppPools /state:stopped /xml | AppCmd start AppPool /in AppCmd list AppPools/state:stopped /xml | AppCmd start AppPool /in AppCmd list AppPools /state:stopped /autostart:true /xml | AppCmd start AppPool /in

Windows Hizmetlerini Başlatma, Durdurma ve Yeniden Başlatma

Get-Service iphlpsvc | %{ if ( $_.Status -eq “Stopped” ) { Start-Service iphlpsvc }}

Sorgulanan hizmetin durumu “Durduruldu” değerine eşitse, hizmeti başlatmak için Başlangıç Hizmeti’ni kullanın. Bunu hemen hemen her Windows hizmeti için kullanabilirsiniz, örneğin LanmanWorkstation (İş İstasyonu servisi):

Get-Service LanmanWorkstation | %{ if ( $_.Status -eq “Stopped” ) { Start-Service LanmanWorkstation }}

veya  LanmanServer (Server service):

Get-Service LanmanServer | %{ if ( $_.Status -eq “Stopped” ) { Start-Service LanmanServer }}

PowerShell’de Get-Service kullanıyorsanız, WaitForStatus yöntemini kullanarak bir hizmeti başlatmadan önce belirli bir süre bekleyebilirsiniz. Örneğin:

$service = Get-Service( ‘lanmanserver’ ) $service.stop() # stops the given service $service.WaitForStatus( ‘Stopped’, ‘0:01:00’ ) #give the service a one minute time to fully stop $service.start() # start the service

PowerShell’de Ağ Bağlantılarını Sınama

(New-Object System.Net.Sockets.TcpClient).Connect( “localhost”, “25” ) (New-Object System.Net.Sockets.TcpClient).Connect( “smtp.example.com”, “587” ) TestNetConnection Port 25 ComputerName localhost TestNetConnection Port 587 ComputerName smtp.example.com

Windows PowerShell

Toplam Okunma :95

Bugün Okunma : 0

PowerShell ile IIS Add Application Convert to Application

PowerShell ile IIS Application Pool Yaratma Script

Aşağıda paylaşmış olduğum PowerShell script’ni  “Windows PowerShell ISE” ile çalıştırabilirsiniz.

Import-Module WebAdministration

New-Item -Path “IIS:\AppPools” -Name “Sayfa1” -Type AppPool
New-Item -Path “IIS:\AppPools” -Name “Sayfa2” -Type AppPool
New-Item -Path “IIS:\AppPools” -Name “Sayfa3” -Type AppPool

# Kullanılacak .NET hangi sürüm olacak.
# Geçerli seçenekler “v2.0” ve “v4.0”. IIS sıklıkla bunları “.NET 4.5” olarak sunar, ancak bu hala
# .NET 4.0 çalışma zamanını kullanır, dolayısıyla “v4.0” ı kullanılabilir

Set-ItemProperty -Path “IIS:\AppPools\Sayfa1” -name “managedRuntimeVersion” -value “v4.0”
Set-ItemProperty -Path “IIS:\AppPools\Sayfa2” -name “managedRuntimeVersion” -value “v4.0”
Set-ItemProperty -Path “IIS:\AppPools\Sayfa3” -name “managedRuntimeVersion” -value “v4.0”

Uygulamaların 64 bitlik makinelerde, 32 bitlik bir işlem olarak çalışması gerekirse
# Bunu true olarak ayarlamamız gerekiyor. Bu genellikle uygulamamızın bağımlı olması durumunda önemlidir.

Set-ItemProperty -Path “IIS:\AppPools\Sayfa1” -name “enable32BitAppOnWin64” -value $false
Set-ItemProperty -Path “IIS:\AppPools\Sayfa2” -name “enable32BitAppOnWin64” -value $false
Set-ItemProperty -Path “IIS:\AppPools\Sayfa3” -name “enable32BitAppOnWin64” -value $false

# Bir istek yapıldığında uygulama havuzunu otomatik olarak başlatır. Eğer sen
# Bunu false olarak ayarlarsan, uygulama havuzunu manuel olarak başlatman gerekecek veya
# 503 hatası alacaksın.

Set-ItemProperty -Path “IIS:\AppPools\Sayfa1” -name “autoStart” -value $true
Set-ItemProperty -Path “IIS:\AppPools\Sayfa2” -name “autoStart” -value $true
Set-ItemProperty -Path “IIS:\AppPools\Sayfa3” -name “autoStart” -value $true

# Uygulama havuzu hangi hesapta çalışıyor?
# “ApplicationPoolIdentity” = en iyi
# “LocalSysten” = kötü fikir!
# “NetworkService” = çok kötü değil
# “SpecificUser” = kullanıcı özel haklara ihtiyaç duyarsa kullanışlıdır. Diğer örneklere bakın
Set-ItemProperty -Path “IIS:\AppPools\Sayfa1” -name “processModel” -value @{identitytype=”ApplicationPoolIdentity”}
Set-ItemProperty -Path “IIS:\AppPools\Sayfa2” -name “processModel” -value @{identitytype=”ApplicationPoolIdentity”}
Set-ItemProperty -Path “IIS:\AppPools\Sayfa3” “processModel” -value @{identitytype=”ApplicationPoolIdentity”}

# 0 = Integrated
# 1 = Classic

Set-ItemProperty -Path “IIS:\AppPools\Sayfa1” -name “managedPipelineMode” -value 1
Set-ItemProperty -Path “IIS:\AppPools\Sayfa2” -name “managedPipelineMode” -value 1
Set-ItemProperty -Path “IIS:\AppPools\Sayfa3” -name “managedPipelineMode” -value 1

if ([Environment]::OSVersion.Version -ge (new-object ‘Version’ 6,2)) {
Set-ItemProperty -Path “IIS:\AppPools\Sayfa1” -name “startMode” -value “OnDemand”
Set-ItemProperty -Path “IIS:\AppPools\Sayfa2” -name “startMode” -value “OnDemand”
Set-ItemProperty -Path “IIS:\AppPools\Sayfa3” -name “startMode” -value “OnDemand”
}