PowerShell komande za proveru IIS-a i stanja Application Pools

PS pre početka :
Lokacija PowerShell modula na Internetu : https://www.powershellgallery.com/
Ako vam treba spisak PowerShell modula i njihovi folderi (radi dodavanja u PATH varijablu za WIN 10), to se lista iz PS-a (kao Administrator), sa komadom :
PS IIS:\> Get-Module -ListAvailable *
Kada PS moluls foldere ubacite u PATH variablu (link), onda ih možete prizvati sa bilo koje lokacije na datoj mašini.
*****
Mertod 1 : PowerShell
Za proveru stanja Application Pools na lokalnoj mašini (link) :
PS IIS:\> Get-IISAppPool
Name Status CLR Ver Pipeline Mode Start Mode
—- —— ——- ————- ———-
DefaultAppPool Started v4.0 Integrated OnDemand
*****
Stvar je u tome što meni treba da proveravam stanje Application Pools za IIS-ove na udaljenim serverima.
Evo kako to može (istina radim sa localhost, ali za početak nije loše) (link) :
PS IIS:\> enter-pssession -computername localhost
[localhost]: PS D:\Moja Dokumenta> get-iisapppool
Name Status CLR Ver Pipeline Mode Start Mode
—- —— ——- ————- ———-
DefaultAppPool Started v4.0 Integrated OnDemand
Napomena1 : moj WIN 10 je u domenu, a ja sam Admin za udaljene servere koje proveravam, tako da nema potrebe ubacivati username+pass kombinaciju.
Napomena2 : ovo naravno ne funkcioniše ako date PowerShell komande nisu instalirane na udaljenom serveru. A uglavnom nisu. Cvrc.
*****
Kako naći PID procesa za pojedinačni Application Pool, zavisi da li je u pitanju IIS 6 ili IIS 7 (link).
*****
Metod 2 : Command Line Interface (CLI)
Može se koristiti komanda appcmd (link) u kombinaciji sa PSTools setom komandi koje je napravio Microsoft i koje baš i služe za ovakve stvari (link), a appcmd komanda se nalazi ovde : C:\Windows\System32\inetsrv (to je slučaj sa manje-više svim MS serverima).
Iz komandne linije pokrenute kao AD nalog koji ima Administrativna prava nad udaljenim serverom :
c:\PSTools>psexec \\udaljeni.server c:\Windows\System32\inetsrv\appcmd list apppools
PsExec v2.2 – Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals – www.sysinternals.com
APPPOOL “DefaultAppPool” (MgdVersion:v2.0,MgdMode:Integrated,state:Started)
APPPOOL “Classic .NET AppPool” (MgdVersion:v2.0,MgdMode:Classic,state:Started)
APPPOOL “ASP.NET v4.0” (MgdVersion:v4.0,MgdMode:Integrated,state:Started)
APPPOOL “ASP.NET v4.0 Classic” (MgdVersion:v4.0,MgdMode:Classic,state:Started)
c:\Windows\System32\inetsrv\appcmd exited on udaljeni.server with error code 0.
###########################
Napomena : ovakav remote prostup takođe daje i mogućnost (a moj nalog ima ta prava) da se Application Pool restartuje sa moje mašine, ali o tome drugi put 😉