[System.Media.SystemSounds]::Beep.Play();
Innlegg tagget med PowerShell
MTUG – Microsoft Technology User Group og PKI foredrag
10 Mar 10
Tirsdag 16 mars vil brukergruppen Microsoft Technology User Group Oslo bli etablert. Brukergruppen vil være en non-profit brukergruppe med hovedvekt på Microsoft infrastruktur. Oppstart og informasjon om brukergruppen vil foregå hos Microsoft på Lysaker tirsdag 16 mars kl 18:00 og er ett gratis arrangement.
Sammen med oppstart av MTUG vil det bli holdt ett spennende foredrag av Nick Voicu fra Microsoft Redmond med tittelen – Tips and Tricks for making the best PKI deployment. PKI er en viktig del av grunnmuren som må på plass før man kan ta i bruk mye ny teknologi slik som blant annet DirecAccess og NAP, og er en teknologi vi som konsulenter må kunne noe om. Nick Voicu har de siste seks årene jobbet med utvikling av sikkerhetsteknologier i Windows og da spesielt PKI. Han kan med andre ord det han snakker om og er også en svært dyktig foredragsholder.
Påmelding: http://mtug.eventbrite.com/
Agenda for MTUG og PKI foredraget:
PowerShell SendKeys
15 Nov 09
# Login script burde inneholde litt god PowerShell kode..:
[void] [System.Reflection.Assembly]::LoadWithPartialName(“‘System.Windows.Forms”)
[System.Windows.Forms.SendKeys]::SendWait(“^%({DOWN})”)
# Gir brukerne en god start på dagen og kanskje support en liten utfordring..
I forbindelse med skripting er det av og til behov for å sende tastetrykk til applikasjoner eller til installasjonsprosedyrer. Eksemplet over viser hvordan ”tastetrykk” kan sendes med PowerShell, her med kombinasjonen ”ctrl + alt + down arrow”. En kombinasjon som vil snu skjermbildet opp ned.
En liste over “kodene” for ”SendKeys”: http://www.microsoft.com/technet/scriptcenter/topics/winpsh/convert/wshsendkeys.mspx
Snart ferie…
30 Jun 09
Ferien begynner å nærme seg, og ferien skal krysses av i kalenderen the PowerShell way..
-
# LJ_Ferie.ps1
-
# Lars Jostein Silihagen, 01.07.2009
-
# Oppretter ny hendelse i Outlook kalender
-
-
# Setter Outlook som objekt og kobler mot kalender mappen
-
$outlook = New-Object -com outlook.application
-
$namespace = $outlook.GetNamespace("MAPI")
-
$calendar = $namespace.GetDefaultFolder(9) # 9 = kalender
-
-
# Legger til ferie i Outlook kalenderen
-
$ferie = $calendar.Items.Add(1)
-
$ferie.Start = "18. july 2009"
-
$ferie.AllDayEvent = $true
-
$ferie.End = "3. august 2009"
-
$ferie.Subject = "Lars Jostein har FERIE!!"
-
$ferie.Location = "Et sted med sol, blå himmel og fiskemuligheter"
-
$ferie.Importance = 2 # High importance
-
$ferie.BusyStatus = 3 # Out of office
-
$ferie.body = "http://www.yr.no/"
-
$ferie.save()
-
#EOF
-
Windows PowerShell BOF foredrag fra TechEd
26 May 09
Kom over en bra podcast fra et ”Birds of a Feather” møte om PowerShell som ble holdt på TechEd. Det sitter en del dyktige PowerShell guruer på møtet deriblant utvikleren av PowerGUI og svarer på spørsmål om PowerShell. Tittelen for møtet var ”Practical PowerShell: Best Practices from the Field” og inneholder blant annet:
- Function naming
- PowerShell Profiles
- Execution policied and security
- Remoting
- Best practices
Link til podcast: http://media.libsyn.com/media/powerscripting/PSPodcast-070.mp3
How to test a registry key in PowerShell
31 Aug 08
In PowerShell you easley can test a registry key with the cmdlet Get-ItemProperty.
PS C:\> $key = $(Get-ItemProperty “HKLM:\SOFTWARE\LJS”).LarsJostein -eq “Silihagen”
PS C:\> $key
True
PowerShell example where you test the installed Operations Manager Console version:
function OpsMgrVer
{
return $ver = $(Get-ItemProperty “HKLM:\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Setup”).CurrentVersion
}
function TestVersion
{
$nr = OpsMgrVer
if (OpsMgrVer -ge “6.0.6270.0″)
{ Write-Host “SCOM 2007 SP1 is installed. ServerVersion: $nr” } else { Write-Host “SCOM 2007 SP1 is not installed. ServerVersion: $nr” }
}
Cmdlet verb names
31 Aug 08
Last week I worked with a PowerShell script where I did a big blunder! I had created a function with the name “Start” and I did not find the reason of why my script failed before at least one hour. Start is one of the PowerShell reserved verbs so stay away from them in your function names or variables!
List of reserved PowerShell verbs at Microsoft: http://msdn.microsoft.com/en-us/library/ms714428.aspx
Or you can of course list the verbs with PowerShell:
$verbs = [System.Reflection.Assembly]::LoadWithPartialName(“System.Management.Automation”)
$verbs.GetTypes() | where {$_.Name -match “Verbs”} | foreach {$_.GetFields() | foreach {$_.Name}} | sort
Great PowerShell book
13 Aug 08
For those of you who wish to learn or read more about PowerShell I will recommend the book PowerShell in Action by Bruce Payette. Bruce Payette is one of the co-designers of the PowerShell language. The book contents great examples and is easy readability.

PowerShell in Action
Long PowerShell statements
11 Aug 08
PowerShell statements can be large, and it’s not always practial to enter it on a single line in the console or in a script. In PowerShell, as wel as in most other programming lanuages or consoles it is posible to write statements over several lines.
When the console determines a line is incomplete, powershell continues to the next line processing the statement. For example, where the first line in a statement ends with the pipe operator, as in:
Long statement example:
18# Get-Process | Where {$_.ProcessName -eq ‘msiexec’} | Format-table ID, CPU, Name
Id CPU Name
– — —-
4808 0,046875 msiexec
Same statemen over three lines:
19# Get-Process |
>> Where {$_.ProcessName -eq ‘msiexec’} |
>> Format-table ID, CPU, Name
>>
Id CPU Name
– — —-
4808 0,046875 msiexec
In a PS1 script you can use the ` tag:
$excel = New-Object -comobject `
excel.application
