windows server 2008 { powershell }
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 PresentationTRANSCRIPT
Windows Server 2008 { PowerShell }
Soós [email protected] – John Bryce Oktatóközponthttp://www.iqjb.hu
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
Hogyan induljunk el?Windows Server 2008-ban benne van, de nincs bekapcsolva3 cmdlet:
Get-CommandGet-HelpGet-Member
CollectionCsőkezelés
Foreach-ObjectWhere-ObjectSort-Object
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
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
{ Kedvcsináló pár szkript }
demó
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").memberforeach($memberstr in $adstr){
$admember = [ADSI] "LDAP://$memberstr"$objclass = $admember.ObjectClassif($objclass.Contains("group")) {
Get-GroupMembers($memberstr)}else{
$admember}
}}
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 }
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)
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