Profile Photo

PowerShell-palikka C#:lla

Aika pitkään ehdin C#:lla koodailla ennen kuin tuli ensimmäinen kerta jolloin jouduin miettimään toiminnon paketoimista PowerShell-moduuliksi.
Kaikki alkoi siitä että keksin hienon pienen sovelluksen jota luultavasti joissakin organisaatioissa infrakaverit ajaisivat. No kun ideasta keskustelin meidän oman infraporukan kanssa niin varsin aikaisessa vaiheessa joku totesi että nykyään kaikki pitää olla PowerShell-rajapinnan takana. Ja minä sitten menin tuota uskomaan.

PowerShell-skriptiä en ollut koskaan tehnyt enkä oikeasti ole edes joutunut käyttään CmdLet-palikoita. Ensimmäiset googlaukset menivät hutiksi koska hakusanojen perusteella löytyi vain kuinka kirjoitetaan ps-skripti PowerShell:llä. Aikani lisäilin sopivia hakusanoja niin johan löytyi muutama ihan kunnollinen tutoriaali miten itse tehdään Visual studiolla ja C#:lla oma powershell-laajennusosa. Esimerkiksi tästä löytyy tiiviisti oleellista asiaa PowerShell-moduulien tekemisestä ja niiden parameterirajapinnasta.

Loppujen lopuksi rajapinta CmdLetin tekemiseen on aika yksinkertainen. Periytytetään oma luokka CmdLet-kantaluokasta, määritellään attribuuteilla minkä niminen CmdLet:in verbistä tulee ja minkä tyyppistä dataa se palauttaa. Paluutyyppi kannattaa määrittää putkituksen takia. Lisäksi parametrien välitys CmdLet:lle vaati hieman opiskelua mutta lopulta aika suoraviivaisesti parametrit asettuu propertyihin attribuuttien avulla. Varsinainen toiminto mitä CmdLet-tekee koodataan yhteen ylikirjoitettavaan metodiin ProcessRecord, ei sinällään mitään rakettitiedettä.

Tarkoitus oli alunperin tehdä kolme CmdLet:iä, ensimmäinen etsii halutut tiedostot ja välittää ne seuraavalla prosessoitavaksi ja kolmas olisi sitten kirjoittanut sopivaan paikkaa tulokset. No ennen kuin olin ehtinyt edes kaikkia tehdä niin sain ohjeistuksen että tuohon pitäisi tehdä vielä hieno käyttöliittymä jotta käyttäminen onnistuisi muiltakin kuin PowerShell-osaajilta. Sitä selvitellessä tuli aika nopeasti ilmi että PowerShell-käyttöliittymähän on itse asiassa XAML-koodausta joten siirsin koko projektin koodin WPF-projektiin. Se siitä PowerShell-koodauksesta.

Tulipahan tutustuttua yhteen uuteen asiaan ja kynnys jatkossa tehdä joku toiminto PowerShell-moduuliksi laski nollaan. Ja varmasti PowerShell-laajennoksille löytyy koodaajan kannalta paljon hyviä paikkoja missä sitä voi hyödyntää vaikka tällä kertaa ei osunutkaan omalle kohdalle.

Profile Photo

Viikon tietoturvavinkki: Ota kaksivaiheinen todennus käyttöön NYT!

Profile Photo

Hololens-ohjelmointikokemuksia, osa 1

Kuukauden vinkki

Tähtivarmenteen käyttö AD FS -palvelussa

6.5.2016

Onko Active Directory Federation Service -palvelussasi käytössä tähtivarmenne (*.yritys.fi tms.)? Onko Android ja/tai iOS-päätelaitteilla haasteita kirjautumisessa? Ratkaisu voi olla AD FS -palvelimen http.sys -sidoksissa.

Lue koko artikkeli…

Kiltamestarit

  • Profile Photo
    ahti.haukilehto.
  • Profile Photo
    Heikki Bergius.
  • Profile Photo
    Heikki Raatikainen.
  • Profile Photo
    Mika Seitsonen.
  • Profile Photo
    Nestori Syynimaa.
  • Profile Photo
    Pertti Pellonpoika.
  • Profile Photo
    Panu Korpela.
  • Profile Photo
    Sakari Kouti.
  • Profile Photo
    Sami M. Leppänen. Henkilöstön- ja organisaation osaamisen kehittäjä. Learning 2.0 evankelista. Sovelto Channel konseptin ja palvelun palvelupäällikkö.
  • Profile Photo
    Tommi Teräsvirta.
  • Profile Photo
    Toni Ylärinne.

Uudet jäsenet