Nano Server için PowerShell ile Uzaktan Yönetim

16.05.2015 | 19:40 Dokümanlar , Windows Server 0 Yorum

Windows Server 2016’nın minimal kurulum opsiyonu Nano Server’da herhangi bir yerel yönetim aracı (yerel komut satırı dahil) bulunmadığı gibi herhangi bir grafik arabirimi de (gui stack) yer almaz. Nano Server üzerinde yerel ve hatta uzak masaüstü (RDS&Terminal Server) oturumu açma şansınız da yoktur. Bu yüzden kurulum sonrasındaki tüm konfigürasyon ve yönetimsel işlemler sadece uzaktan çalışan bazı yöntem ve araçlarla gerçekleştirilebilir. Yani Windows Server 2016 Nano Server %100 uzaktan yönetilen bir sunucu modelidir.

Nano Server için Uzaktan Yönetim Araçları (veya yöntemleri)

  • Windows PowerShell
  • Windows Management Instrumentation (WMI)
  • Windows Remote Management
  • Emergency Management Services (EMS)
  • Web tabanlı uzak yönetim arayüzü (bu henüz hazır değil, üzerinde çalışılıyor)

Bu yazıda Windows PowerShell tabanlı PSSession veya CIM oturumları ile uzak bir Nano Server’a nasıl bağlanılacağını ele alıyorum.

Nano Server Yönetimi (Uzak PowerShell)

Windows PowerShell’i çalıştıracağınız ve uzaktan Nano Server’ bağlanarak yönetimsel işlemler gerçekleştireceğiniz işletim sisteminin Windows 10 veya Windows Server 2016 sürümlerinden biri olmasını öneririm. Her ne kadar Nano Server üzerinde tüm Windows PowerShell komutları yer almasa da yeni sürüm işletim sistemi ve Windows PowerShell 5.0 kullanmak uyumluluk açısından iyi bir fikirdir.

1) Nano Server IP adresini öğrenin

Hangi yöntemi ve aracı tercih ettiğinizden bağımsız olarak öncelikle Nano Server’ın IP adresini öğrenmeniz gerekiyor. Varsayılan durumda DHCP’den IP alacak şekilde ayarlıdır ve Nano Server kurulumu sonrasında ortamdan otomatik olarak bir IP adresi alır. Getting Started dokümanlarında Nano Server başlarken console’u izleyin, orada almış olduğu IP adresini göreceksiniz gibi bir bilgi yer alsa da ben öyle bir IP göremedim :) Bu yüzden aşağıdaki iki yöntemden birini deneyebilirsiniz.

Yöntem 1 – Nano Server’ın MAC adresini bulun. Eğer bu fiziksel bir sunucu ise Network Interface Card’a, eğer bir sanal makine ise VM özelliklerinde Virtual Network Interface Card’a bakabilirsiniz. Daha sonra bu MAC adresini DHCP’den dağıtılmış son IP adreslerinin kira kayıtlarıyla karşılaştırarak doğru IP adresini bulmanız mümkün. Hatta elinizi çabuk tutarsanız muhtemelen son dağıtılan IP adresi Nano Server’a ait olacak, belki MAC karşılaştırmaya gerek bile olmayabilir.

Yöntem 2 – Ortamda aynı zamanda bir DNS servisi çalışıyor ve update kabul ediyorsa, DHCP IP verdiğinde Nano Server kendisini DNS zone kayıt etmiş olabilir. Varsayılan kurulumda gelen hostname winminpc’ye ping atarak herhangi bir IP adresi dönüp dönmediğini kontrol edebilirsiniz. Eğer hostname çözülebiliyor ise yeterli, şu an ping’e yanıt vermeyecektir.

2) Uzaktantan Windows PowerShell ile Nano Server’a bağlanın

IP adresini bulduğunuz Windows Server 2016 Nano Server’ı yönetmeye başlamak için uzak bir sistem üzerinde çalışan Windows PowerShell’i kullanabilirsiniz. Remote Windows PowerShell ile Nano Server’a bağlanmak için aşağıdaki iki farklı yöntemden birini tercih edebilirsiniz. Ben genelde ilk yöntemi (PSSession) kullanıyorum.

PSSession (bir başka ifade ile Windows PowerShell remoting)

PSSession oturumları (CIM oturumlarından farklı olarak) bağlantının en başında bir kez oluşturulur ve daha sonra siz kapatana kadar (veya bir şekilde uzak sunucu üzerinde sonlanana kadar) açık kalırlar. Böylece uzak sunucu üzerinde çalıştırılacak her komut için tekrar bağlantı kurulması gerekmez, işlemler zaten açık olan bir oturum üzerinden yürür. Çalışma bittiğinde PSSession oturumunun yönetici tarafından sonlandırılması önerilir, aksi durumda oturum uzak sunucu üzerinde açık kalır.

1) Windows PowerShell’i yetkili modda başlatın (elevated) ve önce aşağıdaki komutu çalıştırarak Nano Server’ın IP adresini trusted hosts listesine ekleyin. (10.20.30.217 benim ortamımdaki örnek IP adresi)

Set-Item WSMan:\localhost\Client\TrustedHosts "10.20.30.217"

2) Ardından bir remote session başlatmak için yine Windows PowerShell konsolunda sırası ile aşağıdaki komutları çalıştırın.

$ip = "10.20.30.217"

$user = "$ip\Administrator"

Enter-PSSession -ComputerName $ip -Credential $user

Burada satırlarda yapılan iş özetle şöyle: Önce $ip değişkenine Nano Server’ın IP adresi atanıyor. Sonraki satırda $user değişkenine 10.20.30.217\administrator kullanıcı ismi atanıyor. Son satırda ise bu değişkenlerdeki bilgiler ile bir PSSession (oturum) başlatılıyor.

3) Ardından gelen credential penceresinde Password’ü boş bırakarak onaylamalısınız. Varsayılan Nano Server kurulumunda administrator hesabının parolası boş olarak gelir. İlk logon sonrasında eğer isterseniz bir parola atayabilirsiniz.

nano-server-credential

Ardından Nano Server’a yapılan PSSession oturumu sağlanmış olur, yazdığınız tüm PowerShell komutları doğrudan Nano Server üzerinde çalışır ve sonuçlar Nano Server üzerinden döner. Tüm bu işlemlerin ekran görüntüsünü ve çalışan process listesini almak için girdiğim Get-Process cmdlet’ine Nano Server’dan gelen yanıtı aşağıda görebilirsiniz.

nano-server-powershell-pssession

Şunu unutmayın: Nano Server üzerinde tüm Windows PowerShell komutları yer almaz. Bu yüzden her cmdlet’e yanıt almayı beklemeyin. Nano Server üzerinde desteklenen Windows PowerShell cmdlet’lerinin bir listesini almak için aynı PSSession içerisinde Get-Command -CommandType Cmdlet çalıştırabilirsiniz. Bu liste Nano Server üzerine yüklenmiş paketlere göre (CAB) değişiklik gösterebilir.

Ve işiniz bittikten sonra kapıyı çekmeyi unutmayın :) Çünkü daha öncede söylediğim gibi PSSession ile açılan uzak PowerShell oturumu siz kapatana kadar uzak sunucu üzerinde açık kalır. Bu durum, küçükte olsa gereksiz kaynak tüketimi dışında önemli bir problem teşkil etmez. Ama Exit-PSSession ile açık oturumu kapatmak her zaman iyidir.

CIM sessions over WinRM (CimSession)

CIM tabanlı uzak oturumlar (PSSession oturumlarından farklı olarak) talep geldiğinde oluşturulur ve işlem tamamlandığında otomatik olarak kapatılır. Oturumun açık kalma süresi daha kısadır ama arka planda her komut için bir bağlantı talebi yapılması, bağlantı sağlanması ve daha sonra kapatılması gibi bir iş gerçekleşir. Genelde tek veya az sayıda komut çalıştırılacak anlar için tercih edilir ama PSSession bence daha efektif.

Ayrıca bu yöntemle bağlanırken administrator hesabının (veya ilgili yetkili hesabın) bir parolası olmalıdır.

1) Windows PowerShell’i yetkili modda başlatın (elevated) ve sırasıyla aşağıdaki komutları çalıştırın.

$ip = "10.20.30.217"

$user = "$ip\Administrator"

$cim = New-CimSession –Credential $user –ComputerName $ip

Bu satırlar bağlantı için gerekli bilgileri değişkenlere atar. (IP adresini düzenlemeyi unutmayın)

2) Ardından aşağıdaki gibi sorgular gerçekleştirebilirsiniz.

Get-CimInstance –CimSession $cim –ClassName Win32_ComputerSystem | Format-List *

Bu yöntem için örnek bir çıktı:

nano-server-powershell-cim

Biraz kurcalayarak bundan sonrasını rahatlıkla keşfedebilirsiniz. Bu arada Windows Server 2016 Nano Server konfigürasyon işlemleriyle ilgili ayrı bir post yayımlamayı düşünüyorum. Sanırım kısa süre sonra blog’da yerini alır.

Yazı Etiketleri: , , , , ,

Sayfa Başı ▲

Yorum Ekle