Powershell

Olisi kiva kuulla minkälaisessa käytössä ihmiset hyödyntävät PowerShelliä. Itse käytän lähes päivittäin erilaisten automaatioiden kanssa, integraatioiden ja datan parsimisessa. Ainoa ongelma on tietyissä tilanteissa hitaus, mutta muuten kyllä mielestäni aivan loistava kieli ja kehys.
 
Täytyy ihan rehellisesti sanoa, että ainoa kosketukseni PowerShelliin ikinä on ollut tuo sinun tekemä mahtava koodinpätkä :D

E: Ei ole oikein edes käsitystä mitä tällä voikaan tehdä.
 
Olisi kiva kuulla minkälaisessa käytössä ihmiset hyödyntävät PowerShelliä. Itse käytän lähes päivittäin erilaisten automaatioiden kanssa, integraatioiden ja datan parsimisessa. Ainoa ongelma on tietyissä tilanteissa hitaus, mutta muuten kyllä mielestäni aivan loistava kieli ja kehys.
Suurempien kokonaisuuksien automatisointi ja järjestelmähallinta, sekä miljoona pientä pikkujuttua hoituvat sillä. Jos tiedän jonkin asian toistuvan yli 5 kertaa, teen siitä Powershell-skriptin sekä kotona että töissä. :D

Eipä ole yhtä pätevää kieltä tullut vastaan.

Jos ei ole entuudestaan tuttu juttu, niin Powershell Studiolla saa tehtyä myös graafisen käyttöliittymän Powershell-sovellukselle kohtuullisen helpolla ja sillä voi kiertää suoraan mm. tarpeet execution policyn asettamiselle jne. Se on maksullinen sovellus, mutta niinhän ne parhaat aina ovat. Meinasin tehdä sillä UI:n sille vanhan muron tyhjennysskriptille, mutta en viitsi alkaa tuusaamaan sen kanssa, kun
a.) en oikein ymmärrä miksi ne vanhat viestit pitäisi poistaa ylipäätään (kopiointi olisi ok, mutta ei poisto)
b.) se skripti on vielä keskeneräinen
c.) ilmeisesti se ei voi toimia enää muutenkaan, kun murossa on nyt estetty viestien editointi sen vuoksi :D
 
Muutamia Powershell komentoja ja alkeita listattuna tähän. Tätä voi kokeilla avaamalla PowerShell ISE kehitysympäristön ja kopioimalla tämän sinne.
Koodi:
# tämä on yksirivinen kommentti

<#
    Tämä on monirivinen kommentti
    Powershell-kieli on erittäin rikas oliokieli
    kaikki ovat rikkaita olioita joita on helppo käsitellä . notaatiolla
    vaatii .net frameworkin toimiakseen ja .net metodeja ja luokkia voidaan natiivisti käyttää
#>

# muuttujat alkavat aina $-merkillä
$fileItem = "tiedostonNimi.txt"
$number = 10
$doStuff = $true

# konsoliin voidaan tulostaa eri tavoin
# 1. joko suoraan kirjoittamalla muuttuja
$file

# 2. Tai muutamilla eri komennoilla
Write-Host "Tämä komento kirjoittaa vain konsoliin"
Write-Output "Tämä komento on parempi kun halutaan lokittaa tulostuksia"
Write-Warning "Voidaan kirjoittaa myös varoituksia"
Write-Verbose "Funktioissa voidaan käyttää Verbose-tulostusta"

# Powershellissä on useita käteviä ja hyödyllisiä komentoja jonka tulokset voidaan aina tallentaa muuttujaan
# komennot ovat AINA muotoa Verbi-Substanttiivi
$files = Get-ChildItem -File

# komentoja voidaan myös ns. pipelinettaa, eli ketjuttaa toisiinsa
# tässä kerätään kansiossa olevat tiedostot muistiin ja poistetaan ne yksitellen Remove-Item-komennolla käyttäen pipelinea eli | merkkiä 
Get-ChildItem -File | Remove-Item -WhatIf

# ehtolauseissa operaattoreina toimii nämä sanalliset operaattorit -eq -gt -lt -ge -le -in -and -or -match -like
# esim. -gt on greater than, -lt less than, -eq equal

if(($fileItem.Name.Length -gt $number) -and $doStuff)
{
    # jos yllä oleva ehto on totta niin suoritetaan tämä aaltosuluilla rajattu koodiblokki
}
else
{
    # muussa tapauksessa suoritetaan tämä blokki
}

# verkkosivuille voidaan tehdä requesteja Invoke-WebRequest komennolla:
$request = Invoke-WebRequest -Uri "https://bbs.io-tech.fi/threads/powershell-scriptaus.1216/"

# tulokset voidaan tallentaa muuttujaan ja sivun sisältöä voidaan tarkastella
$request.Content

# erilaisia looppeja

# 1. while
while($true)
{
    # kun ehto on totta suoritetaan tätä blokkia
}

# 2. foreach
foreach($file in $files)
{
    # käydään läpi $files listassa olevat objektit
}

# 2.2 pipeline foreach-komento jossa iteroitava objekti on aina muuttujassa $_
$files | ForEach-Object {$_}

# 3. for-looppi
for($i=0;$i -lt 10;$i++)
{
    $i
}
 
Kätevä Online GUI Generator PowerShellille

https://poshgui.com/#
En ole ainakaan toistaiseksi tarvinnut Powershelliä mihinkään, joten tulipa kyllä yllätyksenä, mihin sillä pystyykään! Ei tullut mieleenkään, että GUI-jutut onnistuisivat Powershellillä. Mahdollisesti sitten toinen juttu, kuinka fiksua on tehdä GUI-juttuja käyttöjärjestelmän skriptaukseen tarkoitetulla kielellä, mutta hienoa silti.
 
Mitenkäs tuon PowerShell-skriptin rakenteen tulee mennä? Aloitetaan "yksinkertaisella" esimerkillä: skripti, jossa n kappaletta käynnistysparametreja ja yksi funktio. Meneekö se näin?
Koodi:
Param
(
    [string]$logpath = "d:\logs",
    [string]$server = "localhost"
)

function Jotain()
{
   Param
   (
       [string]$Name,
       [int]$Hits
   )
   #koodia
}

Write-Host "Kutsutaan funktiota"
Jotain "Nakki" 5
#lisää koodia
#tehdään jotain
 
Ihan oikein tuo menee mallissasi. Funktioiden nimissä kannattaa suosia Verbi-Substanttiivi konventiota ja scriptin alkuun kannattaa tehdä help blokki. Vakioverbit löytyy komennolla Get-Verb.
 
En ole paljoa Powershelliin koskenut mutta eikö esim. Cygwinin terminaali aja saman asian mutta in vielä lähempänä Linuxia (mitä powershell kai koittaa "matkia").
 
En ole paljoa Powershelliin koskenut mutta eikö esim. Cygwinin terminaali aja saman asian mutta in vielä lähempänä Linuxia (mitä powershell kai koittaa "matkia").
Suurin virhe Powershellistä puhuttaessa on juuri tuo, että tietty porukka kuvittelee edelleen sen yrittävän matkia *nixien shelliä, vaikka kyse on oikeasti ihan eri kokoluokan ja eri ajatusmaailman komentokielestä. Powershell perustuu objekteihin ja sitä kautta aukeaa täysin uusi maailma datan käsittelyyn. Suosittelen oikeasti tutustumaan tarkemmin.

Ja terminaaleista puhuttaessa on syytä huomioida, että Bashin saa nykyään halutessaan myös Windowsille -->

Bash for Windows: Why it’s awesome and what it means for PowerShell
 
Tarvisin powershellille yksinkertaisen skriptin mikä kokeilee kaikki 16 numeron mittaiset numerosarjat läpi komentorivi komennon sisällä.
(fastboot oem unlock $koodi)
Todella vähän tullut mitään kieliä käytettyä, joten tuommosen loop+1 koodin tekeminen ei oikein luonnistu.

Pitäisi tabletin bootloaderin lukitus poistaa, mutta poistokoodia en saa tehtyä koska product id puuttuu ja koko vekotin on niin solmussa että en sitä pääse asetuksista näkemään.
En osaa powershelliä mutta tuli mieleen sellainen juttu, että toimiiko tuohon ihan simppeli bruteforce? Tarkoitan, että antaako tuo kyseinen tabletti yrittää noita koodeja loputtomasti läpi ilman että se lukittuu tms? Toisekseen, kuinka usein tuo antaa yrittää tuota koodia? Voi nimittäin olla aikaavievä operaatio jos pitää 16 merkin mittaiset numerosarjat käydä läpi ellei niitä voi kokeilla sekunnissa useita miljoonia ;)
 
Voi nimittäin olla aikaavievä operaatio jos pitää 16 merkin mittaiset numerosarjat käydä läpi ellei niitä voi kokeilla sekunnissa useita miljoonia ;)
Laskeskelin tossa, että edes useat miljoonat sekunnissa ei ole tarpeeksi kova vauhti koska silloinkin pitää odottaa lähes 100 vuotta...
 
Laskeskelin tossa, että edes useat miljoonat sekunnissa ei ole tarpeeksi kova vauhti koska silloinkin pitää odottaa lähes 100 vuotta...
Näin tosiaan laskeskelin itsekkin, kyllä noi on yleensä rakenneltu niin, että se bruteforcettaminen on melko toivotonta. Se siitä offtopicista.
 
Viimeksi muokattu:
Olisi tarve saada kansiosta ja alikansioista tiedostojen nimet csv muodossa. Tiedostopäätteeitä ei tarvitse olla. Mikähän olisi fiksuin tapa lähteä tekemään kyseistän koodinpätkää?
 
Olisi tarve saada kansiosta ja alikansioista tiedostojen nimet csv muodossa. Tiedostopäätteeitä ei tarvitse olla. Mikähän olisi fiksuin tapa lähteä tekemään kyseistän koodinpätkää?

Tällä tulee myös päätteet:
Koodi:
Get-ChildItem G:\ -Recurse | ForEach-Object{   
    echo $_.Name >> "file.csv"
    }
 
Olisi tarve saada kansiosta ja alikansioista tiedostojen nimet csv muodossa. Tiedostopäätteeitä ei tarvitse olla. Mikähän olisi fiksuin tapa lähteä tekemään kyseistän koodinpätkää?
Siis pelkästään tiedostojen nimet jostakin hakemistorakenteesta?

Jos näin, niin riittäisikö tämä:
Koodi:
Get-Childitem -Path C:\RootDirectory -Recurse -File | Sort-Object | ft Name | Out-File -FilePath C:\Temp\FileList.csv

Tuo tuottaa tiedostoon listauksen määritellyssä hakemistorakenteessa olevista tiedostoista aakkosjärjestyskessä. Mukaan tulee oletuksena myös otsikkorivi ja tiedostojen päätteet, mutta ne saa kyllä pois jos on tarvetta.

Myös tuo SVS:n esimerkki on tavallaan muuten ok, mutta se tuottaa listalle myös hakemistot tiedostojen lisäksi.
 
Auttakaas tyhmää, saako tuolla PowerShell ohjelmalla palautettua CapsLock-lukonkuvan näkyviin? :(
-Tai jos jotenkin muuten saisi sen taas näkyviin... :sori:
 
Auttakaas tyhmää, saako tuolla PowerShell ohjelmalla palautettua CapsLock-lukonkuvan näkyviin? :(
-Tai jos jotenkin muuten saisi sen taas näkyviin... :sori:
Powershell on komentotulkki/ohjelmointikieli, jolla voi voi komentaa käyttöjärjestelmää tekemään kaikenlaista, mutta ei tuo kysymyksesi kuitenkaan siihen liity.

Kannattaa kokeilla vaikka jotain sopivaa Windows-ketjua, mutta muista laittaa mukaan tiedot mistä käyttöjärjestelmästä ja/tai sovelluksesta on kyse jne. Minä en muista Windowsissa nähneeni CapsLock -kuvaketta sitten Win95:n, joten en osaa auttaa muutenkaan. Office-sovelluksissa se taitaa näkyä. Helppokäyttökeskuksesta (vai mikä se nyt suomeksi olikaan) voi laittaa päälle ainakin äänimerkin silloin kun numlockia/capslockia painetaan.
 
Siis pelkästään tiedostojen nimet jostakin hakemistorakenteesta?

Jos näin, niin riittäisikö tämä:
Koodi:
Get-Childitem -Path C:\RootDirectory -Recurse -File | Sort-Object | ft Name | Out-File -FilePath C:\Temp\FileList.csv

Tuo tuottaa tiedostoon listauksen määritellyssä hakemistorakenteessa olevista tiedostoista aakkosjärjestyskessä. Mukaan tulee oletuksena myös otsikkorivi ja tiedostojen päätteet, mutta ne saa kyllä pois jos on tarvetta.

Myös tuo SVS:n esimerkki on tavallaan muuten ok, mutta se tuottaa listalle myös hakemistot tiedostojen lisäksi.
Joo tuohan teki suoraan sen mitä halusin. Kiitosta vain.
 
Windows 10 uusimmassa päivityksessä tuli havaittua Microsoftin pyrkimystä saada käyttäjiä tottumaan PowerShelliin Command Promptin sijaan. Itse en ole paras skriptaamaan, mutta käytän nykyään PowerShelliä siihen mitä Command Promptilla pystyy myös tekemään (esim. ping, ipconfig jne). :kahvi:
 
Tietääkö kukaan mitään simppeliä tapaa millä saisi ajettua powershelliä taustalla huomaamattomasti ilman powershell-ikkunaa? Tarkoitus olisi kuunnella ja reakoida eri eventteihin, mutta Register-ObjectEvent on voimassa vain sen aikaa kun powershell-sessiokin on auki.
 
Kun nyt vauhtiin pääsin Powershellin kanssa niin viisaammille olisi vielä yksi kysymys.

Seuraava toimii odotetusti Windows 7:ssa, mutta ei Windows 10:ssä:

Koodi:
$sysevent = [microsoft.win32.systemevents]
Register-ObjectEvent -InputObject $sysevent -EventName "SessionSwitch" -Action {Write-Host ($args[1]).Reason}

Eli consoleen tulostuu SessionLock kun lyön Windowsin lukkoon ja SessionUnlock taas avatessa. Windows 10 ei näytä reagoivan tuohon lainkaan. Onkohan tuon SessionSwitchin ja/tai Windowsin lukituksen toiminnassa jotain perustavanlaatuista eroa Windows 7:aan verrattuna, joka tulisi huomioida?
 
Kun nyt vauhtiin pääsin Powershellin kanssa niin viisaammille olisi vielä yksi kysymys.

Seuraava toimii odotetusti Windows 7:ssa, mutta ei Windows 10:ssä:

Koodi:
$sysevent = [microsoft.win32.systemevents]
Register-ObjectEvent -InputObject $sysevent -EventName "SessionSwitch" -Action {Write-Host ($args[1]).Reason}

Eli consoleen tulostuu SessionLock kun lyön Windowsin lukkoon ja SessionUnlock taas avatessa. Windows 10 ei näytä reagoivan tuohon lainkaan. Onkohan tuon SessionSwitchin ja/tai Windowsin lukituksen toiminnassa jotain perustavanlaatuista eroa Windows 7:aan verrattuna, joka tulisi huomioida?
Ei näyttäisi toimivan kasissakaan, eli jotain on vissiin tosiaan muuttunut, jos se toimi vielä seiskassa.

Dokumentaatio sanoo tuosta eventistä, että "occurs when the currently logged-in user has changed". Lukituksessa tuota ei ilmeisesti sitten enää tapahdu, tai sitten siihen ei vain pääse tuolla tavalla enää käsiksi.
 
Ei näyttäisi toimivan kasissakaan, eli jotain on vissiin tosiaan muuttunut, jos se toimi vielä seiskassa.

Dokumentaatio sanoo tuosta eventistä, että "occurs when the currently logged-in user has changed". Lukituksessa tuota ei ilmeisesti sitten enää tapahdu, tai sitten siihen ei vain pääse tuolla tavalla enää käsiksi.

Näyttäisi olevan nimenomaan PowerShellin versiosta riippuvainen eikä niinkään Windowsin. Oletuksena luonnollisesti käynnistyy tuorein versio (mulla 5.1), mutta versiolla 2 näyttäisi toimivan.

Koodi:
PS C:\Users\datwin> PowerShell -version 2
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Users\datwin> $PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.8784
BuildVersion                   6.1.7600.16385
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1


PS C:\Users\datwin> $sysevent = [microsoft.win32.systemevents]
PS C:\Users\datwin> Register-ObjectEvent -InputObject $sysevent -EventName "SessionSwitch" -Action {Write-Host ($args[1]).Reason}

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      f2874510-20a...                 NotStarted    False                                Write-Host ($args[1])....

Sitten kone lukkoon ja taas auki...

Koodi:
PS C:\Users\datwin> SessionLock
SessionUnlock

Eli toimii siis, mutta jotain on muuttunut versioiden välillä. Täytyy jatkaa sherlockointia tuon osalta.
 
Varsin kätevä oli tehdä skripti joka pistää React Native -devaustyökalut käyntiin. Eli kirjoitin pätkän joka käynnistää Android-emulaattorin ja sitten React Nativea varten kolme terminaali-ikkunaa ja asettelee ne ruudulle nätisti. Lopuksi vielä Visual Code käyntiin myös. Kaikki tämä yhdestä kuvakkeesta työpöydältä, onpa nyt mukavaa aloittaa hommat. :)
 
Varsin kätevä oli tehdä skripti joka pistää React Native -devaustyökalut käyntiin. Eli kirjoitin pätkän joka käynnistää Android-emulaattorin ja sitten React Nativea varten kolme terminaali-ikkunaa ja asettelee ne ruudulle nätisti. Lopuksi vielä Visual Code käyntiin myös. Kaikki tämä yhdestä kuvakkeesta työpöydältä, onpa nyt mukavaa aloittaa hommat. :)
Sharing is caring?! :)
 
Pakko herätellä tätä ketjua taas. Töissä tullut taas automatisoitua kaikkea Powershellillä ja kyllä se vaan on kova kieli ja alusta. Nyt varsinkin kun core toimii oikeasti myös Linuxissa ja Macillä. Näppärästi toimii myös Docker- ja Kubernetes-komentojen kanssa, kun niiden outputin laittaa ensiksi JSON-muotoon jolloin vastaukset saa konvertoitua Powershell-objekteiksi.

Nythän myös pukkaa 7-versiota pian ulos joka pyrkii pääsemään eroon siitä erillisestä Windows Powershell-versiosta.
 
Kyttään taloyhtiöni sivuilta vapautuvia autopaikkoja ja tähän on varmasti jokin helpompi tie kuin käydä päivittäin sivuilla katsomassa. Saako esim. Powershelliin ajettua jonkin komennon joka osaisi tarkkaila tätä sivua ja lähettää sitten sähköpostiini tiedon kaikista muutoksista?
 
Hieman vanha lanka. Mutta osaatteko sanoa mikä tässä PowerShell API skriptissä on vikana?
Kun virheeksi antaa Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.

WithSecure sivujen mukaan kuitenkin tuo kuitenkin pitäisi riittää Authentication testiin.

Koodi:
 $headers = @{
    'Content-Type' = 'application/json'
    'ApiAccessKey' = '2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    'ApiSecretKey' = 'bXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
}

$response = Invoke-RestMethod -Uri 'https://api.radar-prd.fsapi.com/api/integration/authenticationcheck' -Method Get -Headers $headers

$response
 
Viimeksi muokattu:
Hieman vanha lanka. Mutta osaatteko sanoa mikä tässä PowerShell API skriptissä on vikana?
Kun virheeksi antaa Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.

WithSecure sivujen mukaan kuitenkin tuo kuitenkin pitäisi riittää Authentication testiin.

Koodi:
 $headers = @{
    'Content-Type' = 'application/json'
    'ApiAccessKey' = '253XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    'ApiSecretKey' = 'b6aXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
}

$response = Invoke-RestMethod -Uri 'https://api.radar-prd.fsapi.com/api/integration/authenticationcheck' -Method Get -Headers $headers

$response
En ole mikään mestari Powershellin kanssa mutta pari asiaa tuli mieleen. Oletko kokeillut ihan tuon withsecuren sivuilla olevan curl-esimerkin mukaan toimiiko sillä? Onhan varmasti access- ja secretkeyt oikein? Ja vaatiikohan tuo headers-hässäkkä pilkut rivien väliin eli content-type -rivin ja apiacceskey -rivin loppuun?
 
Hieman vanha lanka. Mutta osaatteko sanoa mikä tässä PowerShell API skriptissä on vikana?
Kun virheeksi antaa Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.

WithSecure sivujen mukaan kuitenkin tuo kuitenkin pitäisi riittää Authentication testiin.

Koodi:
 $headers = @{
    'Content-Type' = 'application/json'
    'ApiAccessKey' = '253XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    'ApiSecretKey' = 'b6aXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
}

$response = Invoke-RestMethod -Uri 'https://api.radar-prd.fsapi.com/api/integration/authenticationcheck' -Method Get -Headers $headers

$response
Pyyntö pitää olla post

Koodi:
$uri = "https://api.radar.f-secure.com/api/integration/assetMonitoring/withStartIndex/0/andPageSize/250"
$headers = @{
    "Content-Type" = "application/json"
    "ApiAccessKey" = "xxx"
    "ApiSecretKey" = "zzz"
}
$body = @{
    AssetSourceType = "Custom"
} | ConvertTo-Json

$response = Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
 
Pyyntö pitää olla post

Koodi:
$uri = "https://api.radar.f-secure.com/api/integration/assetMonitoring/withStartIndex/0/andPageSize/250"
$headers = @{
    "Content-Type" = "application/json"
    "ApiAccessKey" = "xxx"
    "ApiSecretKey" = "zzz"
}
$body = @{
    AssetSourceType = "Custom"
} | ConvertTo-Json

$response = Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body

Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.
At line:11 char:13
+ $response = Invoke-RestMethod -Uri $uri -Method Post -Headers $header ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
 
Mikä olisi hyvä kurssi opiskella Powershell scriptausta? Perusteet ovat hallussa.
 
Kuinka paljon tämä powershell taipuisi? Omaan jonkinverran käsitystä koodaamisesta C++, Python, Javascriptistä. Töissä täytyy pitää auki isoa määrää eri sivustoja eri tileillä jne. Tällä hetkellä käytössä Firefoxin tree tabit ja multi account containerit. Voisinko siis powershelliin kirjoittaa scriptin, että kun käynnistän koneen niin se käynnistää Firefoxin kaikilla kyseisillä välilehdillä ja kirjautuu automaattisesti kaikkiin oikeilla tunnareilla? Tunnukset siis löytyvät omasta salasanaohjelmasta. Toki voisin tehdä niin, että vasta kun olen käynnistänyt salasana ohjelman niin sitten pyöritän sen ja kaikki aukeaa mukavasti? En ajatellut kirjoitella salasanoja kuitenkaan kyseiseen scriptiin :)
Jos tuo on mahdollista niin mistä aloittaa? Powershellin dokumentaatio, firefoxin dokumentaatio, kyseisten lisäosien dokumentaatio jne? Työajalla en usko että saisin tehdä, mutta jos joku voisi tarjota vähän tietoa asiasta
 
Kuinka paljon tämä powershell taipuisi? Omaan jonkinverran käsitystä koodaamisesta C++, Python, Javascriptistä. Töissä täytyy pitää auki isoa määrää eri sivustoja eri tileillä jne. Tällä hetkellä käytössä Firefoxin tree tabit ja multi account containerit. Voisinko siis powershelliin kirjoittaa scriptin, että kun käynnistän koneen niin se käynnistää Firefoxin kaikilla kyseisillä välilehdillä ja kirjautuu automaattisesti kaikkiin oikeilla tunnareilla? Tunnukset siis löytyvät omasta salasanaohjelmasta. Toki voisin tehdä niin, että vasta kun olen käynnistänyt salasana ohjelman niin sitten pyöritän sen ja kaikki aukeaa mukavasti? En ajatellut kirjoitella salasanoja kuitenkaan kyseiseen scriptiin :)
Jos tuo on mahdollista niin mistä aloittaa? Powershellin dokumentaatio, firefoxin dokumentaatio, kyseisten lisäosien dokumentaatio jne? Työajalla en usko että saisin tehdä, mutta jos joku voisi tarjota vähän tietoa asiasta
Kaikki on teoriassa mahdollista, mutta Powershelliä ei ole suunniteltu tuollaiseen, joten melkoisen vaikeaksi menisi tuon tarpeen toteuttaminen sillä. Jos selaimesta ja sieltä sun käyttämästä salasanamanagerista löytyisi joku valmis rajapinta, jota komentaa Powershellillä, niin sitten ehkä voisi yrittää jotain.
 
Tuon kysymyksen innoittamana aloin selvittelemään asiaa ja jonkinlaiseen ratkaisuun pääsin jo ohjelmien sisäisten asetusten/lisäosien/yms avulla. Joten ehkä kysymykseni onkin vähän turha tässä vaiheessa. Kiitokset Kautiumille kuitenkin vastauksesta.
 
Eikö nykyselaimet tallenna automaattisesti sessiot ja kirjautumiset? Ainakaan Chromessa ei tarvi kirjautua uusiksi koskaan ja edelliset sessiot tallentuvat automaattisesti.
 
Pyyntö pitää olla post

Koodi:
$uri = "https://api.radar.f-secure.com/api/integration/assetMonitoring/withStartIndex/0/andPageSize/250"
$headers = @{
    "Content-Type" = "application/json"
    "ApiAccessKey" = "xxx"
    "ApiSecretKey" = "zzz"
}
$body = @{
    AssetSourceType = "Custom"
} | ConvertTo-Json

$response = Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
Kyselin WithSecurelta tuosta asiasta "Teillä on lisenssi WithSecure Elements EPP for Computers/Server joten teillä on väärä rajapinta käytössä". Eli toisinsanoen koko homma on mennyt päin helvettiä jo heti alussa...

Meillä on erillinen sivusto joka kokoaa yhteen käytössä olevat tuotteiden API rajapinnat. Sivusto löytyy WithSecure™ Connect
 
Powershellissä eniten ikävää että vaikka sillä voi tehdä vaikka ja mitä niin voi leikkiä vain omalla työasemalla. Sitten kun tarviikin suorittaa sama scripti asiakkaan serverillä, niin puuttuu suoritusoikeudet eikä saa tarvittavia moduleja asentaa. Kätevä omassa käytössä mutta duunissa vähän huonompi soveltaa.
 

Statistiikka

Viestiketjuista
261 793
Viestejä
4 547 336
Jäsenet
74 849
Uusin jäsen
ookooo

Hinta.fi

Back
Ylös Bottom