čtvrtek 6. srpna 2009

Hej, mistře Šelíku!

V posledním vydání TechNet Flash zpravodaje zaujaly mistra Šelíka dvě věci.
  1. Strip jeho kamaráda mistra Skriptíka.
  2. První díl ze série článků o PowerShellu - snad se nám blýská na lepší časy.
Mistr Skriptík tentokrát řešil práci se službami, pojďme se podívat.

Vzhledem k tomu, že služby jsou jednou ze základních komponent, se kterou se administrátor Windows může potkat, má v sobě PowerShell zabudováno hned několik cmdletů pro práci s nimi.

PS C:\> Get-Help *-service | Select name
Name
----
Get-Service
Stop-Service
Start-Service
Suspend-Service
Resume-Service
Restart-Service
Set-Service
New-Service

My se podíváme na Get-Service, Stop-Service a Start-Service. Pro zjištění stavu všech služeb použijeme Get-Service - dostaneme výpis všech služeb včetně jejich aktuálního stavu (výpis jsem notně zkrátil).
PS C:\> Get-Service
Status Name
------ ----
Stopped ADAM_Test
Stopped Alerter
Running ALG
Stopped AppMgmt
Stopped aspnet_state
Running AudioSrv
Running BITS
Running Browser
Running CryptSvc
Running DcomLaunch
Running Dhcp
Running Eventlog
Running EventSystem
Running Spooler

Pro zastavení služby použijeme Stop-Service (spsv) a pro spuštění Start-Service (sasv). V závorkách jsou uvedeny aliasy pro dané cmdlety (pro Get-Service je to gsv).
PS C:\> gsv spooler

Status Name DisplayName
------ ---- -----------
Running Spooler Print Spooler
PS C:\> spsv spooler
PS C:\> gsv spooler

Status Name DisplayName
------ ---- -----------
Stopped Spooler Print Spooler
PS C:\> sasv spooler
PS C:\> gsv spooler

Status Name DisplayName
------ ---- -----------
Running Spooler Print Spooler

Je vidět, že pomocí PowerShellu je práce se službami přímočará a velice jednoduchá.
Pokud je někdo zvídavý a přecijen by chtěl pracovat se službami přes WMI, lze pro zastavení spooleru použít následující příkaz:
PS C:\> (gwmi Win32_Service -filter "name='spooler'").StopService()

__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0

Vidíme, že ReturnValue je nula, čili služba byla zastavena úspěšně. Pokud by ReturnValue byla jiná, lze její význam najít na MSDN.
To by bylo pro dnešek vše. Jdu stejně jako mistr Skriptík vyhlížet Windows 7.
Banner mistra Skriptíka je stažen ze stránek TechNet Flash zpravodaje. Děkuji týmu TechNetu za možnost jeho použití pro potřeby tohoto článku.

Žádné komentáře: