Seriál Windows PowerShell: PowerShell v5 – pokračování (část 57.)

minulém dílejsme se podívali na některé z novinek PowerShellu v5. Dnes povídání dokončíme a ukážeme si jednu novinku z oblasti Windows obecně.

PSScriptAnalyzer

Ano, pokud jste pozorní, pamatujete si, že o této části jsem již psal. Od doby napsání článku došlo ovšem ke změně. PSScriptAnalyzer byl přesunut jako samostatný projekt na GitHub (https://github.com/PowerShell/PSScriptAnalyzer). Zde si jej můžete stáhnout a naimportovat jako modul. Zároveň s tím bude v dalších verzích PowerShellu tento modul vyjmut jako standardní součást.

Desired State Configuration

V DSC došlo k asi největšímu počtu změn. K nejzajímavějším bych řadil především:

To byl výčet toho nejzajímavějšího z DSC. Opět jedno z témat pro budoucí články je podrobnější vhled do DSC a využití všech novinek.

Cryptographic Message Syntax

CMS přináší možnost šifrování textu přímov PowerShellu. Pokud máte certifikát typu “Document Encryption”, můžete v PowerShellu použít CMS cmdlety pro šifrování např. krátkého textu.

image

Nano Server

Před pár dny představil Microsoft nový operační systém, který je navržen pro běh v cloudu. Jmenuje se Nano Server a jedná se o minimalistickou (nano) verzi Windows Serveru. Pokud Server Core byl krokem k OS bez GUI, jde Nano Server ještě dál. Pokud se podíváme na velikost WMI souboru, uvidíme překvapivou velikost (malost?).

image

Mělo by se jednat o OS, který bude mít rapidně menší množství updatů, rychlejší restarty a měl by být zaměřen převážně na dva scénáře: podpora cloudových aplikací a tvorba cloud infrastruktury. Nebudu zde ale zabíhat do marketingových čísel, informace si můžete najít sami. Co je zajímavé, je možnost administrace pomocí vzdáleného PowerShellu a WMI.

Nano Server můžete aktuálně stáhnout jako součást Windows 10 Server Technical Preview 2 (bohužel bylo potřeba opravdu stáhnout asi 4GB ISO, abych mohl získat 200MB) a dle návodu na stránkách Microsoftu si jej nainstalovat například na Hyper-V (viz aktuální strip Mistra Skriptíka).

Po spuštění a připojení se na server, se můžete podívat na aktuální verzi PowerShellu.

[10.100.10.100]: PS C:\> $PSVersionTable
Name                           Value
----                           -----
PSRemotingProtocolVersion      2.3     
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.34011
WSManStackVersion              3.0
PSVersion                      5.0.10074.0
BuildVersion                   10.0.10074.0
 

PowerShell je již ve verzi 5. Jak jsem již psal výše, administrace probíhá přes WMI (resp. CIM cmdlety), proto neexistuje například cmdlet Ge-Service. Potřebné informace můžete ale samozřejmě získat CIM.

[10.100.10.100]: PS C:\> Get-CimInstance Win32_Service

ProcessId Name                 StartMode State   Status ExitCode 
--------- ----                 --------- -----   ------ -------- 
1328      BFE                  Auto      Running OK     0        
0         BITS                 Manual    Stopped OK     1077     
0         ClusSvc              Disabled  Stopped OK     1077     
1204      CryptSvc             Auto      Running OK     0        
596       DcomLaunch           Auto      Running OK     0        
0         defragsvc            Manual    Stopped OK     1077     
596       DeviceInstall        Manual    Running OK     0        
1104      Dhcp                 Auto      Running OK     0        
1452      DiagTrack            Auto      Running OK     0        
1204      Dnscache             Auto      Running OK     0        
1104      EventLog             Auto      Running OK     0        
0         IKEEXT               Manual    Stopped OK     1077     
0         KeyIso               Manual    Stopped OK     1077     
708       LanmanServer         Auto      Running OK     0        
1204      LanmanWorkstation    Auto      Running OK     0        
1104      lmhosts              Manual    Running OK     0        
1328      MpsSvc               Auto      Running OK     0        
0         Netlogon             Manual    Stopped OK     1077     
0         NetSetupSvc          Manual    Stopped OK     0        
1172      nsi                  Auto      Running OK     0        
596       Power                Auto      Running OK     0        
708       ProfSvc              Auto      Running OK     0        
0         RemoteRegistry       Manual    Stopped OK     1077      
644       RpcEptMapper         Auto      Running OK     0        
644       RpcSs                Auto      Running OK     0        
0         sacsvr               Manual    Stopped OK     1077     
464       SamSs                Auto      Running OK     0        
708       Schedule             Auto      Running OK     0        
0         seclogon             Manual    Stopped OK     1077     
0         SmbWitness           Manual    Stopped OK     1077     
0         smphost              Manual    Stopped OK     1077     
0         swprv                Manual    Stopped OK     1077     
596       SystemEventsBroker   Auto      Running OK     0        
0         TieringEngineService Manual    Stopped OK     1077     
0         TimeBroker           Manual    Stopped OK     1077     
0         TrustedInstaller     Manual    Stopped OK     0        
0         VaultSvc             Manual    Stopped OK     1077     
0         vmicguestinterface   Manual    Stopped OK     1077     
860       vmicheartbeat        Manual    Running OK     0        
884       vmicshutdown         Manual    Running OK     0        
1104      vmictimesync         Manual    Running OK     0        
0         vmicvmsession        Manual    Stopped OK     1077     
0         vmms                 Auto      Stopped OK     87       
0         VSS                  Manual    Stopped OK     1077     
1172      W32Time              Auto      Running OK     0        
0         WerSvc               Manual    Stopped OK     0        
1464      WinDefend            Auto      Running OK     0        
1172      WinHttpAutoProxySvc  Manual    Running OK     0        
708       winmgmt              Auto      Running OK     0         
1204      WinRM                Auto      Running OK     0        
0         wmiApSrv             Manual    Stopped OK     1077     
0         wuauserv             Manual    Stopped OK     2147942450
0         wudfsvc              Manual    Stopped OK     1077

To samé platí pro Get-CimInstance Win32_Process.

Pokud se podíváme na počet core cmdletů, dostaneme číslo 184, což je o několik desítek cmdletů méně než v „normální“ verzi OS Windows. Seznam dostupných cmdletů naleznete v následující tabulce:

Add-Content

Get-ChildItem

Join-Path

Rename-ItemProperty

Add-History

Get-Command

Measure-Command

Resolve-Path

Add-Member

Get-Content

Measure-Object

Resume-Job

Clear-Content

Get-Credential

Move-Item

Select-Object

Clear-History

Get-Culture

Move-ItemProperty

Select-String

Clear-Item

Get-Date

New-Alias

Set-Alias

Clear-ItemProperty

Get-Event

New-Event

Set-AuthenticodeSignature

Clear-Variable

Get-EventSubscriber

New-Item

Set-Content

Compare-Object

Get-ExecutionPolicy

New-ItemProperty

Set-Date

Connect-PSSession

Get-FormatData

New-Module

Set-ExecutionPolicy

Connect-WSMan

Get-Help

New-ModuleManifest

Set-Item

ConvertFrom-Csv

Get-History

New-Object

Set-ItemProperty

ConvertFrom-StringData

Get-Host

New-PSDrive

Set-Location

Convert-Path

Get-Item

New-PSSession

Set-PSBreakpoint

ConvertTo-Csv

Get-ItemProperty

New-PSSessionConfigurationFile

Set-PSDebug

Copy-Item

Get-ItemPropertyValue

New-PSSessionOption

Set-PSSessionConfiguration

Copy-ItemProperty

Get-Job

New-PSTransportOption

Set-StrictMode

Debug-Job

Get-Location

New-TimeSpan

Set-Variable

Debug-Runspace

Get-Member

New-Variable

Set-WSManInstance

Disable-PSBreakpoint

Get-Module

New-WSManInstance

Set-WSManQuickConfig

Disable-PSRemoting

Get-Process

New-WSManSessionOption

Sort-Object

Disable-PSSessionConfiguration

Get-PSBreakpoint

Out-Default

Split-Path

Disable-RunspaceDebug

Get-PSCallStack

Out-File

Start-Job

Disable-WSManCredSSP

Get-PSDrive

Out-Host

Start-Sleep

Disconnect-PSSession

Get-PSHostProcessInfo

Out-Null

Stop-Job

Disconnect-WSMan

Get-PSProvider

Out-String

Suspend-Job

Enable-PSBreakpoint

Get-PSSession

Pop-Location

Tee-Object

Enable-PSRemoting

Get-PSSessionConfiguration

Push-Location

Test-ModuleManifest

Enable-PSSessionConfiguration

Get-Random

Read-Host

Test-Path

Enable-RunspaceDebug

Get-Runspace

Receive-Job

Test-PSSessionConfigurationFile

Enable-WSManCredSSP

Get-RunspaceDebug

Receive-PSSession

Test-WSMan

Enter-PSHostProcess

Get-UICulture

Register-ArgumentCompleter

Unblock-File

Enter-PSSession

Get-Unique

Register-EngineEvent

Unregister-Event

Exit-PSHostProcess

Get-Variable

Register-ObjectEvent

Unregister-PSSessionConfiguration

Exit-PSSession

Get-WSManCredSSP

Register-PSSessionConfiguration

Wait-Debugger

Export-Alias

Get-WSManInstance

Remove-Event

Wait-Event

Export-Csv

Group-Object

Remove-Item

Wait-Job

Export-FormatData

Import-Alias

Remove-ItemProperty

Wait-Process

Export-ModuleMember

Import-Csv

Remove-Job

Where-Object

ForEach-Object

Import-LocalizedData

Remove-Module

Write-Debug

Format-Custom

Import-Module

Remove-PSBreakpoint

Write-Error

Format-List

Invoke-Command

Remove-PSDrive

Write-Host

Format-Table

Invoke-Expression

Remove-PSSession

Write-Output

Format-Wide

Invoke-History

Remove-Variable

Write-Progress

Get-Alias

Invoke-Item

Remove-WSManInstance

Write-Verbose

Get-AuthenticodeSignature

Invoke-WSManAction

Rename-Item

Write-Warning

Nano Server je rozhodně jedno z témat, kterému se budeme někdy v budoucnu z pohledu PowerShellu věnovat. Jsem velmi zvědav na to, jak rychle se budou objevovat updaty a novinky pro tuto verzi OS.