130 likes | 252 Views
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 )
E N D
Windows Server 2008 { PowerShell} Soós Tiborsoost@iqjb.huMCTIQSOFT – 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) • Összegzés: mi is a PowerShell • Programozási stílus
Hogyan induljunk el? • Windows Server 2008-ban benne van, de nincs bekapcsolva • 3 cmdlet: • Get-Command • Get-Help • Get-Member • Collection • Csőkezelés • Foreach-Object • Where-Object • Sort-Object
PowerShell vs. VBScript • VBScript Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." SetobjReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Fonts" objReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrEntryNames ForEachentryinarrEntryNames iTotalFonts = iTotalFonts + 1 IfInStr(1, LCase(entry), "truetype") Then iTTFonts = iTTFonts + 1 Wscript.Echoentry End If Next Wscript.Echo "TrueType: " & iTTFonts Wscript.Echo "Total: " & iTotalFonts
PowerShell vs. VBScript • PowerShell $total = 0 $a = get-item "hklm:\\Software\Microsoft\Windows NT\CurrentVersion\Fonts" $f = $a.GetValueNames() foreach ($iin$f) { if ($i.contains("TrueType")) { $total++ $i } } " " "TrueType: $total” "Total: $($f.length)”
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+'\') }
Egymásba ágyazott csoportok tagsága function Get-GroupMembers([string]$group) { $adstr= ([ADSI] "LDAP://$group").member foreach($memberstrin$adstr) { $admember=[ADSI] "LDAP://$memberstr" $objclass=$admember.ObjectClass if($objclass.Contains("group")) { Get-GroupMembers($memberstr) } else { $admember } } }
Programozási stílus • Megszokást igényel function 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 }
Mit láttunk? • Hagyományos, „DOS” parancsok legtöbbje is használható • Legfontosabb cmdlet-ek (kommandlet) • get-command • get-member • PS meghajtók: fájlrendszer, registry, certificate, függvények, változók, alias… • Dir = get-childitem • Grafikus help • PowerGUI (http://www.powergui.org)
Mi is a { PowerShell } ? • Új rendszeradminisztrációs motor a Windows és a szervertermékek adminisztrálásához • Parancssori környezet, új nyelvvel Adminisztrációs felület, MMC Admin UI Szkript Szkript PowerShell COM felület .NET Framework Szerver-funkcionalitás Múlt Szerver-funkcionalitás Jelen, jövő