neděle 9. ledna 2011
úterý 27. dubna 2010
Get-PSNews |? {$_.Week –eq ‘16’}
Minulý týden se na události vyvedl, takže pojďme rovnou na věc.
- Velice pěkný tip od Shaye Levyho, jak využít cmdlet New-TimeSpan.
- Vyšla osmá část seriálu o PowerShellu v českém TechNet Flash zpravodaji. Tentokrát od @stejcz na téma tipy a triky.
- Pěkné shrnutí argumentů, se kterými můžete spouštět powershell.exe v článku More Powerful Ways to Launch Windows PowerShell.
- Vynikající zpráva. Microsoft dokončil oficiální MOC kurz pro PowerShell. Více v článku od Dona Jonese.
- Hezká věcička na pracovní stůl: Windows PowerShell Quick Reference.
- Vyšla 17. epizoda Get-Scripting Podcastu.
- Jonathan Medd publikoval pro simple-talk článek na téma New Remoting Features in PowerShell 2.0.
- Zajímavý skriptík na Output Redirection.
- Minulý týden probíhala konference MMS a na webu PowerShell týmu se v této souvislosti objevila tato prezentace.
- Poslední dva týdny jsem se vcelku intenzivně zabýval remotingem a docela mě štvalo, že na svém vlastním netbooku jsem ho pořád nebyl schopen rozběhnout. Nakonec mi pomohl článek PowerShell Remoting between two workgroup machines.
- Bernd Kriszio je poslední dobou hodně vidět. Přinesl pěknou kolekci linků na téma WPF in PowerShell.
- Nahrávka posledního UK PSUG meetingu na téma moduly.
Aktuální týden bude hodně zajímavý. Nezapomeňte, že už běží 2010 Scripting Games.
neděle 18. dubna 2010
Get-PSNews |? {$_.Week –eq ‘15’}
Minulý týden byl na události o něco bohatší.
- PowerScripting Podcast byl tentokrát na téma v2 Expert Panel. Hosty byli mimojiné Jeffrey Snover, Joel Bennett, Thomas Lee nebo Alexander Nikolic.
- Proxy funkce k cmdletu Get-Help.
- Krátký tip nazvaný Those annoying thing in PowerShell.
- Na Hey, Scripting Guy! blog byl týden věnovaný WMI eventům.
- Don Jones se v TechNet Magazínu věnoval modulům.
- Krátký příspěvek na téma Why I Have Had a Hard Time Adopting PowerShell.
- V pátek jsem se zůčastnil Snídaně se supportem na téma PowerShell. Z celé akce mám trochu rozporuplné pocity. Program pokrýval většinu zajímavostí v PowerShellu v2, ale občas mi přišlo, že prezentující měl sám v některých tématech nejasno. Ke cti mu lze ale přičíst, že některé věci rovnou přiznal a nezkoušel nás “oblafnout” (např. u SQL Serveru).
Poslední novinkou uplynulého týdne je to, že mi byla schválena účast na TechEd-u. Pokud si někdo třeba chce pokecat o PowerShellu u oběda nebo u pivka, můžeme udělat nějaký mini event :)
středa 14. dubna 2010
PowerShell kniha v češtině
úterý 13. dubna 2010
Get-PSNews |? {$_.Week –eq ‘14’}
- Jaký je rozdíl mezi použitím Get-Date a [System.Datetime]::Now.
- Joel Bennett postnul na PoShCode.org pěkný logovací modul.
- @stejcz jej hned použil pro hezkou ukázku logování.
- Pokud spravujete DNS, může se vám hodit DnsShell.
pátek 9. dubna 2010
Hej, mistře Šelíku!
Mist Šelík dohání to, co v minulých měsících zameškal a má před sebou nový Skriptíkův problém.
Máme několik možností.
Použít WScript.Network
PS C:\> (New-Object -Com WScript.Network).RemovePrinterConnection('\\server\Printer007')
Rychlé a účinné. Vytvoříme si nový objekt a okamžitě voláme jeho metodu RemovePrinterConnection. Potřebujeme vědět jenom jméno tiskárny. Předchzí řádku můžeme také rozepsat do (pro někoho možná srozumitelnější) formy jako:
PS C:\> $printerName = '\\server\Printer007'
PS C:\> $obj = New-Object -ComObject WScript.Network
PS C:\> $obj.RemovePrinterConnection($printerName)
Použití akcelerátoru [wmi]
Poněkud složitější konstrukce:
PS C:\> [wmi](gwmi Win32_Printer -Filter 'Name LIKE "%Printer007%"').Delete()
kterou můžeme opět rozepsat jako:
PS C:\> $prn = Get-WmiObject Win32_Printer -Filter 'Name LIKE "%Printer007%"'
PS C:\> [wmi]$prn.Delete()
V tomto případě si nejdříve do proměnné uložíme hledanou tiskárnu. Používáme parametr Filter, protože dotaz je rychlejší než při použití cmdletu Where-Object (Get-WmiObject Win32_Printer |Where-Object {$_.Name -like '*Printer007*'}). Pozor na jednu věc: ve filtru musíme použít znak ‘%’ jelikož se jedná vlastně o WQL dotaz prováděný na úrovni WMI.
Ve druhém řádku již voláme metodu Delete() a pomocí [wmi] vlastně provádíme “přetypování” na objekt System.Management.ManagementObject, který metodu Delete() obsahuje.
Ačkoli VBS moc rád nemám, v tomto případě bych asi osobně zvolil první možnost, která mi přijde jednodušší a pochopitelnější.
Banner mistra Skriptíka je stažen ze stránek TechNet Flash zpravodaje. Děkuji týmu TechNetu za možnost jeho použití pro potřeby tohoto článku.
středa 7. dubna 2010
Hej, mistře Šelíku!
Po delší odmlce se opět vrátil mistr Šelík, aby pomohl Skriptíkovi s následujícím problémem.
Jelikož si Šelík už samozřejmě nainstaloval PowerShell v2, stačí tento jednoduchý příkaz:
PS C:\> Invoke-Command –ComputerName remoteComp –ScriptBlock {mkdir c:\Temp\NewFolder}
Tradáá. Pro fungování předchozího příkazu potřebujete dvě věci: Nastavený remoting a správná práva pro přístup ke vzdálenému počítači. Chcete-li se o vzdáleném přístupu dozvědět více, zkuste se podívat na jednu z následujících příruček:
- Administrator's Guide to Windows PowerShell Remoting (nutná registrace)
- Layman’s guide to PowerShell 2.0 remoting
Banner mistra Skriptíka je stažen ze stránek TechNet Flash zpravodaje. Děkuji týmu TechNetu za možnost jeho použití pro potřeby tohoto článku.
úterý 6. dubna 2010
Get-PSNews |? {$_.Week –eq ‘13’}
Oproti předchozím týdnům byl ten uplynulý vcelku klidný (možná díky všeobecné velikonoční náladě). Přesto se našla jedna hlavní zprváva, kterou uvádím hned jako první).
- 1.4. byl obnoven titul MVP pro následující lidi: Doug Finke a Richard Siddaway.
- Zároveň máme dva nové MVP! Jsou jimi Jonathan Medd a Sean Kearney. Oba dva jsou aktivními blogery, pokud je chcete sledovat na Twitteru, ze jsou jejich účty: @janathanmedd a @energizedtech.
- Pokud chcete na Twitter sledovat všechny aktuální MVP, podívejte se na tento list.
- Zajímavý skript na konverzi obrázku do “ASCII Art”.
- Pokud vytváříte cmdlety, může se vám hodit nástroj FxCOP Rules for Windows PowerShell. Krátký popis je i na blogu PowerShell týmu.
Pro dnešek to bude opravdu vše. Snad se příště urodí více novinek.
neděle 28. března 2010
Get-PSNews |? {$_.Week –eq ‘12’}
V příjemném nedělním večeru jsem zde opět s pravidelnou dávkou novinek ze světa PowerShellu. Uplynulý týden byl pro mne hodně zajímavý. Mimoto, že jsem dokončil tvorbu prvních cmdletů, vrhl jsem se na pokus s vytvořením provideru pro můj oblíbený Systems Management Server. Zároveň jsem se podíval na podrobnou revizi některých částí dokumentace PowerShellu. K tomu probíhá review knihy PowerShell Cookbook a dnes ráno uvolnil Manning Press poslední část knihy PowerShell in Practice. Musím říct, že jsem se nenudil a nudit se asi ani nebudu. Zároveň jsem začal postupně zpracovávat své poznámky, ve kterých jsem si poznamenal tipy na články. Doufám, že se mi vše povede postupně převést do písmenek :) Dost bylo mého výlevu, pojďme na novinky.
- Jistě jste si všimli, že jsem na stránky přidal ikonku oznamující letošní Scripting Games. Ze své vlastní zkušenosti mohu účast jen doporučit. Zvlášť když se letos bude účastnit i úplný začátečník – Scripting Wife.
- V jednom z předchozím článků jsem psal o SQLPSX. Jeho autor – Chad Miller – byl hostem PowerScripting podcastu.
- O použití @ na stackoverflow.
- Moc pěkný příspěvek Maxe Trinidada na téma automaticky generované heslo.
- Celý uplynulý týden vycházely na Hey, Scripting Guy! blogu články od PowerShell MVPs.
- Myslel jsem si, že zde následující odkazy nebudu uvádět, ale na druhou stranu, proč ne. Již jsem psal o knize PowerShell Best Practices (a odkazoval na Edovu reakci). Můžete si přečíst další recenze od Jamese O’Neilla a Richarda Siddawaye.
To by bylo pro tento týden vše.
sobota 27. března 2010
Modul FileSystem
PS C:\Scripts> Import-Module FileSystem
PS C:\Scripts> Get-Module
ModuleType Name
---------- ----
Script FileSystem
PS C:\Scripts> gcm -Module FileSystem | ft Name
Name
----
Copy-ToZip
Get-DuplicateFile
Get-FreeDiskSpace
Get-SHA1
Mount-SpecialFolder
New-Zip
Rename-Drive
Resolve-ShortcutFile
Start-FileSystemWatcher
(Get-FreeDiskSpace).countersamples |? {$_.instancename -eq 'c:'} | ft -a
Path InstanceName CookedValue
---- ------------ -----------
\\PC\logicaldisk(c:)\% free space c: 23,7249711709823
\\PC\logicaldisk(c:)\free megabytes c: 36210
PS C:\tmp> Get-DuplicateFile | fl Name, Value
Name : TlRNG4ETIySjh3rHonlURNSqPtU=
Value : {C:\tmp\2.JPG, C:\ts\tmp\Copy of 2.JPG}
Name : veSzujcoGoW+LpjcFAily548z9o=
Value : {C:\tmp\9.JPG, C:\tmp\Copy of 9.JPG}
Name : Ddx0Vo+oW0m2oRLB3WmnTmZsP78=
Value : {C:\tmp\0.JPG, C:\tmp\Copy of 0.JPG}
Mount-SpecialFolder
PS C:\Scripts> Start-FileSystemWatcher -File .\Secret -On Created `
-Do { $((ls c:\Scripts\Secret | Sort CreationTime -Descending | Select -First 1).FullName) >> c:\zapsano.txt}
neděle 21. března 2010
Get-PSNews |? {$_.Week –eq ‘11’}
- Minule jsem odkazoval na druhé vydání knihy Lee Holmese, PowerShell Cookbook. Mluvil jsem o tom, že začíná její review. Já jsem se přihlásil jako jeden z reviewerů (hezké slovo :). Tento týden uveřejnil Lee na svých stránkách oficiální odkaz, takže pokud chcete, můžete se také přidat a ovlivnit svými poznámkami nové vydání.
- Firma Digi Trade pořádá 16.4. krátkou přednášku s tématem PowerShellu, více na jejich stránkách bezplatných seminářů.
- Další ročník konference TechEd se tentokrát bude konat od 26. do 29. dubna. Program je již dostupný na stránkách konference. Pro mne jsou zajímavé dvě přednášky Patrika Maliny na téma PowerShell v2.
- Scripting Games se blíží. Včera a dnes vyšly na Scripting Guy blogu dva příspěvky na téma Your Mission a Study Guide.
- Thomas Lee začal na základě jeho PowerShell Master Class kurzu zpracovávat dostupné zdroje. Můžete se na ně podívat na stránkách PSMC Resources.
- Pokud vás zajímá, jak generovat SQL skript pomocí PowerShellu, podívejte se na tento příspěvek.
- Zajímavé porovnání rychlosti zápisu pomocí Add-Content, Out-File a IO.StreamWritter.
- Seznam (bohužel zatím neúplný) Windows PowerShell Features from Microsoft.
- Sean Kearny začal psát novou sérii Introduction ITPros to Developer Terms. Více na jeho stránkách The Energized Tech.
PowerShell ISE
Novinkou v PowerShellu v2 je PowerShell ISE (Integrated Scripting Environment). Toto prostředí slouží jako konzole a script editor v jednom. Dnes se na něj ve zkratce podíváme. Po installaci je ISE dostupné (spolu s konzolí) v příslušenství nebo jej můžete spustit příkazem powershell_ise.exe.
Já jsem se zhruba před dvěma měsíci rozhodl, že jej na na týden budu používat místo konzole a PowerGUI script editoru a od té doby v něm pracuji většinu času. Pojďme si tedy ISE projít. Skládá se ze tří částí: editoru, konzole a výtupního panelu. Rozložení si oproti standardnímu můžete upravit, takže by se vám nemělo stát, že nenajdete to, co se hodí vám. Možnosti nastavení jsou dostupné pod položkou menu View.
Na obrázku vidíte rozvžení, které vyhovuje mě. Většina položek je dostupná přes klávesové zkratky, takže pokud se potřebuji přepnout do zobrazení pouze script editoru, můžu použít Ctrl+3 a zpět se dostanu pomocí Ctrl+1. V případě rozložení, které je ukázáno na obrázku, se lze zárovň rychle přsunout kurzorem mezi editorem (Ctrl+I) a konzoli (Ctrl+D).
Konzole i editor podporují doplňování pomocí klávesy tabulátor a oproti standardní konzoli mají výhodu v tom, že v případě doplňování např. parametru předchozího cmdletu, nemažou znaky za kurzorem. Zkuste si v klasické konzoli a ISE tento příkaz:
Get-Process | Select-Object Name | Format-Table –Autosize
nyní se vraťte kurzorem k cmdletu Select-Object a zkuste k němu pomocí tabulátoru doplnit parametr First.
Get-Process | Select-Object Name -f<Tab> | Format-Table –Autosize
V ISE se vám parametr správně dohledá a v konzoli budete zbytek řádky dopisovat ručně. Celé ISE podporuje standardní práci se schránkou (tedy nikoli tak, jak je to klasické konzoli – pravé tlačítko myši pro vložit ze schránky), vyhledávání ve skriptu, či zvětšování/zmenšování písma.
ISE umožňuje také otevřít další prostředí PowerShellu v nové záložce (Ctrl+T). Otevře se vám nová instance, takže například nové proměnné v této instanci vytvořené nejsou dostupné v jiné záložce (instanci). Dobrou možností je otevření nové instance ze vzdáleného počítače (Ctrl+Shift+R). Je to vlastně obdoba cmdletu Enter-PSSession.
Script editor obsahuje základní vlastnosti, které od editoru vyžadujeme (administrátoři, vývojáři mají určitě nároky vyšší) – zvýrazňování syntaxe, vyhledávání, ale hlavně možnost debugování, včetně nastavování breakpointů. Všechny volby jsou dostupné pod menu Debug.
Pro základní krokování skriptu je tato možnost dostačující, ale v případě větších požadavků budete muset stejně použít dostupné cmdlety nebo jiný editor.
Jak jsem řekl na začátku, dnes trávím většinu času v ISE a i když má svá omezení, rozhodně stojí za to, o něm alespoň vědět. Příště si povíme něco o objektovém modelu ISE a některých dostupných rozšířeních.
neděle 14. března 2010
Get-PSNews |? {$_.Week –eq ‘10’}
- Budu pokračovat SQL serverem. Mé oblíbené SQLPSX se dostalo do verze 2.1 a velkou novinkou je SQLIse, SQL plug-in pro PowerShell ISE. Více na stránkách Chada Millera.
- Pokud se staráte o SCCM, může se vám hodit SCCM modul. Zatím jsem jej nezkoušel, ale rozhodně to mám v plánu.
- Taková malá "úchylárna" pro PowerShell fandy, aneb Start-PowerShellPoint, jak na prezentace v konzoli PowerShellu.
- Pokud se staráte o testovací prostředí a potřebujete často vytvářet nové domény, může se vám hodit skript Create AD test lab.
- Trošku starší tip, ale opakování, matka moudrosti: Jak vypsat všechny COM objekty v systému.
- Pokud pronikáte trochu hlouběji do PowerShellího SDK, možná se vám bude hodit návod, jak ve VS 2010 vytvořit vlastní cmdlet.
- Ještě malá informace závěrem. Pokud máte knihu Lee Holmese, PowerShell Cookbook, můžu vám s radostí oznámit, že třítýdenní review cyklus právě začal, takže se snad brzy dočkáme finálního tisku. Tuto knihu řadím mezi své tři nejoblíbenější.
úterý 9. března 2010
Get-PSNews |? {$_.Week –eq ‘09’}
- Nenechte si ujít 103. epizodu PowerScripting Podcastu, hosté: Brandon Shell a Oisin Grehan.
- Jaykul vytvořil Yahoo pipe pro skripty publikované v několika známých repository.
- Pokud vás zajímá remoting v PowerShellu v2, určitě se podívejte na vynikající Administrator's Guide to Windows PowerShell Remoting. Rozhodně doporučuji!
- S přechodem na TechNet 2.0 se změnil i háv ScriptCentra.
- Richard Siddaway umístil na své stránky záznam z posledního UK PUG Meetingu, téma: PowerShell, Windows 7 and the Resource Kit.
- V příspěvku PowerShell to the rescue je krásně vidět, co se mi na PowerShellu líbí. Okamžitá možnost rychlého zjištění informací.
- Něco málo o cestách.
- Pokud hodně parsujete HTML stránky, bude se vám možná hodit článek Lee Holmese o HTML Agility Packu.
- Pokud máte ovšem radši XML formát zkuste A DSL for XML in PowerShell.
- Další rychlý tip od Shaye Levyho (a navazující příspěvek od @stejcz).
pondělí 1. března 2010
How to check (find) the newest online documentation
PS C:\> Get-Help Add-Computer -Online
PS C:\> Get-Help Add-* |% {$_.relatedLinks.navigationLink} |? {$_.uri}
linkText uri
-------- ---
Online version: http://go.microsoft.com/fwlink/?LinkID=113279
Online version: http://go.microsoft.com/fwlink/?LinkID=113281
Online version: http://go.microsoft.com/fwlink/?LinkID=113280
Online version: http://go.microsoft.com/fwlink/?LinkID=135195
Online version: http://go.microsoft.com/fwlink/?LinkID=113278
Online version: http://go.microsoft.com/fwlink/?LinkID=135194
PS C:\> ... | Get-WebPage |% {$_ -match "</p>Updated:\s(?<date>.*?)</p>" | Out-Null ; $Matches.date }
May 20, 2009
October 21, 2009
October 21, 2009
February 17, 2010
February 17, 2010
February 17, 2010
February 17, 2010
February 17, 2010
function Get-WebPage {
[Cmdletbinding()]
param (
[Parameter(Mandatory=$true,
Position=0,
ValueFromPipeline=$true,
HelpMessage="Enter URL to download")]
[string]
$Uri
)
BEGIN {
$wc = New-Object System.Net.WebClient
$proxy = [System.Net.WebProxy]::GetDefaultProxy()
$proxy.UseDefaultCredentials = $true
$wc.proxy = $proxy
}
PROCESS {
$wc.DownloadString($Uri)
}
END { }
}
filter New-TempObj {
$hash = @{
name = $($_.Name)
uri = $($_.relatedLinks.navigationLink |? {$_.linkText -eq 'Online version:'}).uri
}
[datetime]$hash.date = Get-WebPage $hash.uri |% {$_ -match "<p>Updated:\s(?<date>.*?)</p>" | Out-Null; $Matches.date}
$myObj = New-Object PSObject -Property $hash
$myObj
}
Now I am able to do following:
PS C:\> Get-Help Add-* | New-TempObj | ft -AutoSize
date name uri
---- ---- ---
20.5.2009 0:00:00 Add-History http://go.microsoft.com/fwlink/?LinkID=113279
20.5.2009 0:00:00 Add-PSSnapin http://go.microsoft.com/fwlink/?LinkID=113281
16.12.2009 0:00:00 Add-Member http://go.microsoft.com/fwlink/?LinkID=113280
20.5.2009 0:00:00 Add-Type http://go.microsoft.com/fwlink/?LinkID=135195
20.5.2009 0:00:00 Add-Content http://go.microsoft.com/fwlink/?LinkID=113278
17.6.2009 0:00:00 Add-Computer http://go.microsoft.com/fwlink/?LinkID=135194
PS C:\> get-help *-* | New-TempObj |? { $_.date.Year -eq 2010 } | Select date, name
date name
---- ----
17.2.2010 0:00:00 Get-Counter
17.2.2010 0:00:00 Import-Counter
17.2.2010 0:00:00 Export-Counter
17.2.2010 0:00:00 Start-Job
20.1.2010 0:00:00 New-Module
17.2.2010 0:00:00 Get-Module
17.2.2010 0:00:00 Out-File
17.2.2010 0:00:00 Read-Host
17.2.2010 0:00:00 Export-Clixml
17.2.2010 0:00:00 Select-XML
17.2.2010 0:00:00 Join-Path
20.1.2010 0:00:00 Get-Location
20.1.2010 0:00:00 Set-Location
20.1.2010 0:00:00 Push-Location
20.1.2010 0:00:00 Pop-Location
20.1.2010 0:00:00 New-Item
neděle 28. února 2010
Get-PSNews |? {$_.Week –eq ‘08’}
- Začneme u blogu Hey, Scripting Guy! Tématem posledního týdne byly transakce. Pokud jste o transakcích v PowerShellu zatím neslyšeli, doporučuji vám, abyste si články přečetli. Jen pro info - prozatím jsou transakce k dispozici pouze pro registry.
- Scripting Games 2010 se blíží! Ed Wilson uveřejnil trošku podrobností ohledně letošního plánovaného ročníku. Důležité info - ve dnech 26.4. - 7.5. si letos neberte dovolenou - bude se skriptovat :)
- Thomas Lee (AKA doctordns) popisuje rozdíl mezi Get-Help a Get-Command.
- Příští týden - 2.3. - se koná další UK PowerShell User Group meeting.
- Spojením PowerShellu a Windows Workflow Foundation vznikl projekt PowerWF.
- Trochu mne mrzí, že 17.3. nebudu v Norsku. Konference NITkon slibuje zajímavý den: PowerShell Deep Dive. Měl bych možnost vidět v akci několik PowerShell superstar včetně Bruce Payetta, autora vynikající knihy PowerShell in Action.
- Administrujete-li Exchange 2010, zkuste se podívat na PowerPack for Exchange Server 2010.
- Na Stack Overflow se objevily zajímavé odpovědi na téma Language Reference for PowerShell (via @stejcz).
- Velkým tématem pro mne byla žádost (iniciovaná PowerShell documentation týmem a powershellcommunity.org) o kontrolu dokumentace PowerShellu. Info viz např. Shay Levy, Richard Siddaway nebo já :)
.NET třídy – System.Guid
Tento týden jsem na Twitteru narazil na další zajímavou třídu System.Guid. Pokud jste někdy potřebovali vygenerovat GUID a přemýšleli jste jak na to, toto je cesta. GUID je tvořen pěti skupinami čísel sdružených ve tvaru 8-4-4-4-12, např.: 8fff0978-ca4b-4828-9b45-1f0b7818987b.
V celé třídě je nejzajímavější metoda NewGuid().
PS C:\> [System.Guid]::NewGuid()
Guid
----
a7602646-dcd3-425e-8e3d-b0319d5741cf
Občas se vám ještě může hodit i vytvoření prázdného identifikátoru:
PS C:\> [Guid]::Empty
Guid
----
00000000-0000-0000-0000-000000000000
Windows PowerShell Community Doc Review
Před pár dny uveřejnil Shay Levy výzvu dobrovolníkům, kteří chtějí ovlivnit dokumentaci dostupnou v PowerShellu. Originální text:
”We're looking for users at all experience levels and with all different backgrounds, but we love to have beginners, people with no programming experience, people who know other scripting languages or shells, and people who are not native English speakers. If you're a system admin and you don't really know Windows PowerShell, this is a great way to learn it with help from insiders.”
Celý proces probíhá ve spolupráci Windows PowerShell documentation týmu a powershellcommunity.org. Pokud chcete ovlivnit dokumentaci, která je součástí PowerShellu, máte šanci. Napište buď June Blender (juneb@microsoft.com) nebo Marco Shawovi (marco.shaw@gmail.com). Opravdu nezáleží na tom, kolik toho umíte – důležitá je ochota udělat něco pro komunitu. Já jsem June napsal a již jsem dostal potvrzení, že jsem byl zařazen.
Pokud se vám nechce trávit moc času s procházením celé dokumentace, ale přesto jste nalezli nějakou chybu, můžete ji reportovat přes Microsoft Connect.
- Ujistěte se, zda chyba existuje v on-line dokumentaci. Použijte parametr –Online v cmdletu Get-Help, např. Get-Help Get-Random –Online. Na webu je vždy poslední verze nápovědy.
- Jděte na http://connect.microsoft.com/powershell
- Klikněte na Report a bug (nejdříve se přes Search Feedback ujistěte, jestli nebyla stejná chyba již reportována).
- Přihlašte se vaším LiveID.
- Vyberte Documentation bug.
- Vyplňte jednoduchý formulář a odešlete jej.
Každá takto reportovaná chyba jde přímo k June Blender. Pokud vás téma nápovědy zajímá, můžete June sledovat in na Twitteru.
neděle 21. února 2010
Get-PSNews |? {$_.Week –eq ‘07’}
- James Brundage byl hostem v PowerScripting podcastu.
- Zkuste si virtuální lab na téma Windows Server 2008 R2: Server Management and PowerShell V2.
- Idera vydala PowerShell Plus 3.1. Před několika týdny jsem se zůčastnil usability study tohoto produktu a pokud to s PowerShellem myslíte vážně, zkuste nad PowerShell Plus popřemýšlet. I když je asi dobré podotknout, že dobrá je převážně konzole, editor (vzhledem k ceně) nepřináší až takové noviky.
- Zajímavá jsou ovšem videa, která vyšla současně s produktem (prezentováno Donem Jonesem).
- Richard Siddaway hezky shrnul, co se mu líbí na PowerShell komunitě.
- Doug Finke odkazuje na cmdlety pro práci s Windows Azure.
- O práci se secure strings se rozepsal dnes již jednou zmiňovaný Richard Siddaway.
- Na blogu PowerShell týmu se objevil článek na téma PsStandardMembers.
- Poslední novinka není o PowerShellu, ale udělala mi radost. Právě jsem zjistil, že Computer Press vydal druhý díl skvělého díla Umění programování (The Art of Computer Programming nebo také TAOCP) - Seminumerické algoritmy. Už jsem to na tomto webu zmiňoval, ale Donalda Knutha obdivuji převážně pro jeho práci na systému TeX.
pondělí 15. února 2010
.NET třídy – System.Math
Vítejte u nové série. Rozhodl jsem se udělat malého “průvodce” po užitečných .NET třídách. Jako administrátor jsem zjistil, že na MSDN je hromada užitečných věcí. Vím, že pro administrátory je MSDN “obuda, která žere malý děti”, ale nevěřte všemu, co slyšíte :) Je to velmi užitečný zdroj. V této nové sérii bych vám chtěl ukázat třídy, které považuji za užitečné a které jsem sám několikrát s úspěchem použil.
Dnes začnu se System.Math, která je základem, bez kterého se občas neobejdete a i PowerShell team spoléhá na to, že tuto třídu použijete, protože v některých případech uvádí, že neimplementovali nějakou funkci prostě proto, že existuje v System.Math.
Předpokládám, že máte určité znalosti práce s .NET třídami, pokud ne (a nechce se vám je hledat) nechce mi komentář (to by bylo, abych vás nedonutil se rozepsat :)
Sytem.Math je třída, pomocí které můžete používat některé pokročilejší matematické operace. Obsahuje následující metody:
PS C:\> [Math] | gm -Static -MemberType method | fw -c 5
Abs Acos Asin Atan Atan2
BigMul Ceiling Cos Cosh DivRem
Equals Exp Floor IEEERemainder Log
Log10 Max Min Pow ReferenceEquals
Round Sign Sin Sinh Sqrt
Tan Tanh Truncate
Jak vidíte, velkou část zaujímají goniometrické funkce (jak jsem rád, že jsem je od vysoké školy nepoužil a neviděl :). Třída obsahuje také dvě vlastnosti a to pro hodnoty čísel E a PI.
PS C:\> [Math]::E
2.71828182845905
PS C:\> [Math]::PI
3.14159265358979
Při “normální” práci asi nejvíce využijete následující metody:
- Max(), Min() – vrátí větší/menší ze dvou zadaných čísel.
- Round() – zaokrouhlí zadané číslo na celé číslo nebo na daný počet míst.
- Sign() – vrátí hodnotu ukazující znaménko.
Použití předchozích metod je např. následující:
PS C:\> [Math]::Max(1,123)
123
PS C:\> -2..2 |% {[Math]::Sign($_)}
-1
-1
0
1
1
Berte prosím tento článek jako “nutné zlo” do plánované série a užitečných .NET třídách. System.Math opravdu není úplně nejzajímavější.
Budu rád, pokud mi dáte vědět, které třídy rádi používáte nebo o kterých byste se rádi něco dozvěděli. Příště si ukážeme něco zajímavějšího.