Vytisknout a dát na nástěnku
Archiv podle štítků: powershell - Stránky 2
Powershell how to
Powershell samolepky
Před nedávnem jsem to zkusil vyplnit a dneska na me čekali ve schránce
http://www.nsoftware.com/PowerShell/promo/
Powershell a convertto-html
Jednoduchym cmdletem lze provadet vystup z vasich prikazu do HTML formy.
convertto-html
Pokud napr. chcete vypsat programy po spustene ve srozumitelnejsi forme (napr. pro poslani emailem).
Get-WmiObject win32_service | where { $_.startmode -eq "auto"} | convertto-html -head " <link rel='stylesheet' href='style.css' type='text/css'>" -property name, startmode, state, description | out-file "c:\Pstartmode.html"
kde style.css muzu vypadat napr.:
body { background-color:gray; }
body,table,td,th { font-family:Arial; Font-Size:10pt }
th { font-size:12pt; background-color:#CCCCCC; }
td { background-color:white; }
Powershell graphics help
Ke stazeni je gracicky help k powershellu pokud nekomu nestaci get-help ;-)
http://www.microsoft.com/downloads/details.aspx?FamilyId=3B3F7CE4-43EA-4A21-90CC-966A7FC6C6E8&displaylang=en
Powershell a sluzby
get-service -> vypis sluzeb
nebo pres WMI get-wmiobject win32_service | format-table
Zobrazeni sluzeb, ktere se automaticky spousti +jejich stav :
get-wmiobject win32_service | where { $_.startmode -eq "auto"} | sort-object -property state | format-table
set-service -> nastaveni sluzby
napr.: set-service -name messenger -startuptype automatic
Nastaveni sluzby messenger po startu na automaticke spusteni.
stop-service -> zastaveni sluzby
Start-Service -> spusteni sluzby
Restart-Service -> restart sluzby
Suspend-Service -> pozastaveni sluzby
New-Service -> vytvoreni nove sluzby
Powershell a procesy
get-process -> vypis bezicich procesu
get-process -name jmeno -> (lze pouzit i hvezdickovou konvenci)
get-process -name [ad]* -> vypise procesy, ktere zacinaji na A nebo D
Alias pro get-process je gps.
Samozrejme nam nekde nestaci zakladni vypis gps a potrebujeme ziskat jine informace o procesech. K vypsani jinych vlastnosti potrebujeme znat jejich nazvy. Pro ziskani vsech vlastnosti a metod objektu (funguje obecne na vsech prikazech powershellu) pouzijeme prikaz Get-Member - jeden z velmi uzitecnych prikazu.
Po zadani gps | get-member se Vam vypisou vsechny vlastnosti objektu (jak metody, aliasy tak property).
Pokud potrebujete vypsat jenom property objektu pak get-member -type property
Pro vypsani jinych vlastnosti nez nam zobrazuje defaultne gps pouzijeme prikaz format-table:
gps | format-table -property name, CPU -autosize
Timto rikame powershellu at vezme vsechny procesy a preda je prikazu format-table. Ten z nich vyzoba vlastnosti name, CPU a vypise je ve forme tabulky. Format-table je formatovaci prikaz, kterych je v powershellu samozrejme vice. Tento se mi zda pro tento pripad nejvhodnejsi k pouziti.
Jestlize napr. potrebujeme vypsat kdy dane procesy byli spusteny, neni nic jednodusiho:
gps | format-table -property name, start
Prikaz vypise jmena a cas spusteni procesu.
stop-process -> samozrejme zastavuje process
Na vstupu ocekava jmeno procesu nebo ID nebo object.
Priklad:
stop-process 1211
stop-process notepad
get-process notepad | stop-process
Predanim objektu muzeme jednoduse zabit vsechny procesy napr. zacinajici pismenem S
gps s* | stop-process
Powershell and registry
Zakladni prace s registry v Powershellu.
Pri vypisu get-PSDrive uvidime ze je mozne primo pristupovat k registrum stejne jako k souborum.
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Pro pristup staci napsat cd hkcu: nebo cd hklm:.
Jiny pristup cd registry:: (pristup ke vsem vetvim)
Vytvoreni podklice
md nazevpodklice
Vytvoreni nove polozky
new-itemProperty -path kde -name jmeno -value hodnota -propertytype typ
PropertyType : String, ExpandString, Binary, DWord, MultiString, QWord, Unknown
Priklad: new-itemProperty -path . -name test -value 1 -propertytype DWord
Nastaveni nove hodnoty
set-itemProperty -path kde -name jmeno -value hodnota
Priklad: set-itemProperty -path . -name test -value 0
Vypis
get-itemProperty cesta
Smazani podklice
remove-item nazev_klice
Smazani hodnoty
remove-itemProperty -path cesta -name jmeno
Powershell send email
Jak jednoduse poslat email z Powershellu ?
Vytvorime novy objekt ->
$email = new-Object system.net.mail.smtpClient
Nastavime smtp server ->
$email.host = "smtp.provider.cz"
Posleme email ->
$email.send("odkoho@server.cz","komu@server.cz","Subject","Text tela")
Jak poslat email z prilohou?
Vytvorime opet objekt smtp ->
$emailSmtp = new-Object system.net.mail.smtpClient
$emailSmtp.host = "smtp.poskytovatel.cz"
Vytvorime objekt attachment ->
$emailAttachment = new-Object system.net.mail.Attachment("co poslat")
Vytvorime objekt zpravy ->
$emailMsg = new-Object system.net.mail.mailMessage("odkoho@server.cz","komu@server.cz","Subject","Text tela")
Pridame prilohu k mailu ->
$emailMsg.attachments.add($emailAttachment)
Posleme ->
$emailSmtp.send($emailMsg)
Stahnout : Skript na posilani emailu