S z á m í t ó g é p e s a l a p i s m e r e t e k 11. Előadás
Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok,shell script I., II, awk Windows környezet, PowerShell I.,II.
Mit tudunk scriptelni? Active Directory Backup and System Restore Databases Desktop Settings Email and Messaging Files, Folders, and File Systems Group Policy Hardware
Univerzális! start-sleep (60*9); write-host ("`a"*4) Tényleg bármire használhatjuk Pl teafőzést időzíteni
Hasznos egysorosok-one liners Get-Content C:\users\manson\valami.txt calc Stop-Process name calc -confirm Get-PsDrive "Hello there world".split().length select-string -pattern vizipók" -path "C:\...\csodapok.txt"
set-location C:\...\manson\ps push-location System32 push-location asd -stack Stack2 get-location -stack get-location -stackname Stack2
Listázzuk ki az összes logot! Get-ChildItem c:\ -Recurse -Include *.log Format-Table Get-EventLog application > c:\fso\applog.txt
(get-itemproperty HKLM:\software\microsoft\.netframework).InstallRoot (Get-WmiObject -class "Win32_ComputerSystem").Domain C:\PS>$p = get-process c:\ps> write-output $p c:\ps> $p Rendszermanagementnél is jól használható!
Pl:töredezettség mentesítés # get C: volume $Cvolume = gwmi Win32_Volume where { $_.name eq "C:\" } # Check if C: needs a defrag $df = $Cvolume.DefragAnalysis() # Defrag if needed if ( $df.defragrecommended ) { $Cvolume.defrag($true) } C:\
Mount/Unmount # mount D:\ Child Volume $d = gwmi win32_volume where { $d.mount() $_.name -eq D:\ } Parent Volume Child Volume # dismount D:\ $d = gwmi win32_volume where { $_.name -eq D:\ } $d.dismount($true, $true)
Shadow Copies beállítása PS C:\> $s = [WMICLASS] ROOT\CIMv2:Win32_ShadowCopy PS C:\> $s.create( C:\, ClientAccessible ) C:\ Shadow Shadow Copies Copies + New Shadow Copy
S h a d o w c o p y Local Disk (C:) Volume Win32_ShadowCopy I l l é s Z o l t á n E12 L T E I K
Megosztott könyvtárak listázása (WMI) PS C:\> $s = gwmi win32_share co DC1; $s Name Path Description ---- ---- ----------- ADMIN$ C:\Windows C$ C:\ IPC$ print$ C:\Windows\system32\sppol\drivers wwwroot$ c:\inetpub\wwwroot PS C:\> $s.count 5 PS C:\> $s[1] Format-Table * -auto PS C:\> $s[1] Get-Member
Megosztott könyvtárak létrehozása WMI [WMICLASS] PS C:\> $sc = [WMICLASS] Win32_Share PS C:\> $sc Get-Member Create Method System.Management.Management... PS C:\> $sc.create( C:\Users\Public, Pub, 0 )... ReturnValue : 0 PS C:\> gwmi Win32_Share... Pub C:\Users\Public
PowerShell üzemmódok 1.Parancs üzemmód Végrehajtja a parancsot (ha tudja) 2.Kiértékelő üzemmód - kiértékel pl ( 1,2,4 ) 1mb ( informatikus barát ) írjuk csak be
Számolás ( Measure-object) get-childitem measure-object property length sum -line: a sorokat számolja meg -word: a szavakat számolja meg -character: a karaktereket számolja meg
E-mail küldés $mail = new object System.net.mail.mailmessage( kitol@server. hu, kinek@server.hu, Tárgy, Üzenetem ) $server = new-object System.Net.Mail.SmtpClient(192.168.2.1); $server.send($mail);
Get-Alias Dir PS C:\> Get-WmiObject Win32_LogicalDisk Format-List * Format-List Name, FileSystem, FreeSpace Format-List f* Format-List [nf]*
$x = @{} $x += @{elso= alma ;masodik= beka } $x += @{gamma= harmadik } $a = @{abc = @{x=1; y=2}; list = 1,2,@{red=1; blue = 2}}
Reguláris kifejezések használata - match - cmatch - select-string pattern "asd" -path " DEMO
Karakter osztályok \w \s \d karakterek tabok,spacek,white spacek számok DEMO
"Jeff" -match "J[aeiou]ff" (True) "Jeeeeeeeeeeff" -match "J[aeiou]ff" (False) "192.168.15.20" -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" (True)
world -replace world, planet
Get-EventLog List Logok managelése Get-EventLog application Get-EventLog application > c:\...\applog.txt Get-EventLog application Export-Clixml -Path c:\...\applog.xml - Depth 2
Szolgáltatások managelése Szolgáltatások lekérése: Get-Services Szolgáltatások számolása: (Get-Service).length Futó szolgáltatások: (Get-Service where-object { $_.status -eq "running" }).length
Get-WmiObject -Class win32_service Where-Object { $_.acceptpause -eq "true" } Select-Object name Get-Service -Name $strservice Format-list *
Active Directory Active Directory Domain Directory PS C:\> $dom = ` [System.DirectoryServices.ActiveDirectory.Domain]::` GetCurrentDomain()
Active Directory Forest PS C:\> $gc = $for.findglobalcatalog() Directory PS C:\> $for = ` [System.DirectoryServices.ActiveDirectory.Forest]::` GetCurrentForest()
Szerepkörök átvitele RID Role Owner PDC Role Owner Domain Infrastructure Role Owner PS C:\> $dc = $dom.finddomaincontroller() PS C:\> $dc.transferroleownership( PdcRole )
Global Catalog Server Not a Global Catalog Server Forest PS C:\> $gc = $for.findglobalcatalog() PS C:\> $gc.disableglobalcatalog() Global Catalog Server
Domain Forest PS C:\> $dom.raisedomainfunctionality( Windows2003Domain ) PS C:\> $for.raiseforestfunctionality( Windows2008Forest )
$dom=[adsi] LDAP://dc=woodgrovebank,dc=com Domain $dom=[adsi] LDAP://dc=cookham,dc=net OU User Accounts $ou=[adsi] LDAP://OU=NYC,dc=woodgrovebank,dc=com $user=[adsi] LDAP://cn=Administrator,cn=Users, dc=woodgrovebank,dc=com $user=[adsi] LDAP://cn=Benno Kurmann,ou=Marketing, ou=miami,dc=woodgrovebank,dc=com
Új user hozzáadása Users Domain PS C:\> $ou=[adsi] LDAP://OU=NYC,DC=woodgrovebank,DC=com PS C:\> $u = $ou.create( user, cn=adina Hagege ) PS C:\> $u.put( samaccountname, Adina ) PS C:\> $u.setinfo()
C s o p o r t o k l é t r e h o z á s a PS C:\> $ou=[adsi] LDAP://OU=HR,DC=woodgrovebank,DC=com PS C:\> $g = $ou.create( group, cn=cool People ) PS C:\> $g.put( SAMAccountName, coolpeople ) PS C:\> $g.setinfo() I l l é s Z o l t á n E35 L T E I K
User azonosító módosítása PS C:\> $user = [ADSI] LDAP://cn=Benno Kurmann,` ou=marketing,ou=miami,dc=woodgrovebank,dc=com
Csoport hierarchia User Accounts Global Group Local Group User Accounts Global Group Universal Group
K ö s z ö n ö m a f i g y e l m e t! I l l é s Z o l t á n E38 L T E I K