13

Windows Server 2008 { PowerShell }

  • Upload
    gent

  • View
    55

  • Download
    0

Embed Size (px)

DESCRIPTION

Windows Server 2008 { PowerShell }. Soós Tibor soost @ iqjb.hu MCT IQSOFT – John Bryce Oktatóközpont http://www.iqjb.hu. Tartalom { röviden }. Hogyan induljunk el, alapkoncepciók PowerShell vs. VBScript Mit és hogyan lehet csinálni PowerShellben ( Demo ) - PowerPoint PPT Presentation

Citation preview

Page 1: Windows Server 2008  {  PowerShell }
Page 2: Windows Server 2008  {  PowerShell }

Windows Server 2008 { PowerShell }

Soós [email protected] – John Bryce Oktatóközponthttp://www.iqjb.hu

Page 3: Windows Server 2008  {  PowerShell }

Tartalom { röviden }Hogyan induljunk el, alapkoncepciókPowerShell vs. VBScriptMit és hogyan lehet csinálni PowerShellben (Demo)Összegzés: mi is a PowerShellProgramozási stílus

Page 4: Windows Server 2008  {  PowerShell }

Hogyan induljunk el?Windows Server 2008-ban benne van, de nincs bekapcsolva3 cmdlet:

Get-CommandGet-HelpGet-Member

CollectionCsőkezelés

Foreach-ObjectWhere-ObjectSort-Object

Page 5: Windows Server 2008  {  PowerShell }

PowerShell vs. VBScript

Const HKEY_LOCAL_MACHINE = &H80000002strComputer = "."

Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Fonts"objReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrEntryNames

For Each entry in arrEntryNames iTotalFonts = iTotalFonts + 1 If InStr(1, LCase(entry), "truetype") Then iTTFonts = iTTFonts + 1 Wscript.Echo entry End IfNextWscript.Echo "TrueType: " & iTTFontsWscript.Echo "Total: " & iTotalFonts

VBScript

Page 6: Windows Server 2008  {  PowerShell }

PowerShell vs. VBScript

$total = 0

$a = get-item "hklm:\\Software\Microsoft\Windows NT\CurrentVersion\Fonts"$f = $a.GetValueNames()

foreach ($i in $f){ if ($i.contains("TrueType")) { $total++ $i }}

" ""TrueType: $total”"Total: $($f.length)”

PowerShell

Page 7: Windows Server 2008  {  PowerShell }

{ Kedvcsináló pár szkript }

demó

Page 8: Windows Server 2008  {  PowerShell }

Fájlok szortírozása tulaj szerint

Set-Location C:\fájlok

Get-ChildItem |Where-Object {-not $_.PSIsContainer} |ForEach-Object {

$d = (Get-Acl $_).Owner.Split("\")[1]if(-not (Test-Path ((get-location).path + '\' + $d))){

new-item -path (get-location).path -name $d `-type directory | Out-Null

}Move-Item -path $_.pspath `

-destination ((get-location).path + '\' + $d +'\')}

Page 9: Windows Server 2008  {  PowerShell }

Egymásba ágyazott csoportok tagsága

function Get-GroupMembers([string] $group){

$adstr = ([ADSI] "LDAP://$group").memberforeach($memberstr in $adstr){

$admember = [ADSI] "LDAP://$memberstr"$objclass = $admember.ObjectClassif($objclass.Contains("group")) {

Get-GroupMembers($memberstr)}else{

$admember}

}}

Page 10: Windows Server 2008  {  PowerShell }

Programozási stílus

Megszokást igényelfunction get-propertyvalue($object){ $result = @{} $proplist = $object | Get-Member -MemberType property, scriptproperty foreach ($element in $proplist) { if ($propvalue = $object.($element.Name)) { $result.($element.Name) = $propvalue } } $result}

function get-propertyvalue($object){ $result = @{} $object | Get-Member -MemberType property, scriptproperty | Where-Object { $object.($_.Name) } | ForEach-Object { $result.($_.Name) = $object.($_.Name) } $result }

Page 11: Windows Server 2008  {  PowerShell }

Mit láttunk?Hagyományos, „DOS” parancsok legtöbbje is használhatóLegfontosabb cmdlet-ek (kommandlet)

get-commandget-member

PS meghajtók: fájlrendszer, registry, certificate, függvények, változók, alias…

Dir = get-childitem

Grafikus helpPowerGUI (http://www.powergui.org)

Page 12: Windows Server 2008  {  PowerShell }

Mi is a { PowerShell } ?Új rendszeradminisztrációs motor a Windows és a szervertermékek adminisztrálásáhozParancssori környezet, új nyelvvel

Szerver-funkcionalitásMúlt

Szerver-funkcionalitásJelen, jövő

Adminisztrációs felület, MMC

COM felület

Szkript

.NET Framework

Szkript

PowerShell

Admin UI

Page 13: Windows Server 2008  {  PowerShell }