Microsoft Powershell -liitin
Microsoft Powershell -liitin
Microsoft Powershell -liittimen ominaisuudet perustuvat Generic Python Script -liittimeen . Toiminnallisuus toteutetaan powershell-event.py python-skriptillä, jonka Matrix42 on toimittanut versiosta 2026.1 alkaen. Tämä skripti vastaa asiakkaiden Powershell-skriptien kutsumisesta Windows-etäpalvelimelta SSH-yhteyden kautta.
Kun Microsoft Powershell Connector otetaan käyttöön, se edellyttää, että
- Asiakkaalla on oma Windows-palvelin, jolla on kyseiset Powershell-skriptit kutsuttavaksi.
- Samassa Windows-palvelimessa on oltava ssh-palvelin päällä ja konfiguroitu tukemaan yksityisen/julkisen avaimen todennusta (muita todennusmenetelmiä ei tueta).
- Asiakas on luonut Windows-käyttäjän, jolla on tarvittavat oikeudet MS Powershell -skriptien suorittamiseen ja palvelimelle kirjautumiseen ssh:n kautta.
- Liittimen tiedot on täytetty ja tapahtumapohjainen tehtävä on määritetty käynnistämään PowerShell.
- Työnkulun on sisällettävä orkestrointisolmu, jotta tapahtumapohjaista tehtävää voidaan kutsua sen käynnistämiseksi.
- Matrix42 luo yksityisen/julkisen avainparin ja lähettää julkisen avaimen asiakkaalle. Tämä julkinen avain on konfiguroitava SSH-palvelimelle. Matrix42 konfiguroi yksityisen avaimen liittimen konfigurointia varten.
Ominaisuudet, joita ei tueta
- PowerShelliä ei voida käynnistää ajoitetuista tehtävistä tällä
powershell-event.pypython-skriptillä.
Yhdistimen määrittäminen
Liittimien hallintaan pääsemiseksi käyttäjällä on oltava käyttöoikeudet alustan kokoonpanoon.
1. Avaa hallinta-alue (ratassymboli).
2. Avaa yhdistinnäkymä.
3. Valitse + uusi liitin

4. Valitse tietolähteen tyypiksi Generic Python Script

5. Täytä tiedot
- Täytä liittimen yksilöllinen nimi
- Valitse
powershell-event.pyskripti valmisteluskriptikentästä. - Parametrien salaussalasanaa tarvitaan parametrien piilottamiseen/näyttämiseen liittimen tallentamisen jälkeen (muista tallentaa salasana turvalliseen paikkaan).
Esimerkki Linux-komennosta yksityisen/julkisen avainparin luomiseksi:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_windows_automation
Jätä salasana tyhjäksi.
Parametrien on oltava täsmälleen tässä muodossa:
{ "ssh": {"private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\nb4ClbnNzaC1rZXktdjEAbbAABG5vbmUAAAAxxxxxxQAAAAAAAAABAAAAMwAAAAtzc2gtZW\nQyNTUxOQAAACB2zQv/80M8ICgv95iT7jCIxnn/YL1tzLvm6S+QaC3bDAAAALBayLNTWsiz\nUwAAAAtzc2gtZWQyNTUxOQAAACB2zQv/80M8ICgv95iT7jCIxnn/YL1tzLvm6S+QaC3bDA\nAAAEAeY5TsWlBuSeX+3Sz/tJTqJU+XgpHHr7QjfRlbr/f7RHbNC//zRXsgKC/3mJPuMIjG\nef9gvW3Mu+bpL5BoLdsMAAABKXJpa3BuaWVtaW5lbkBSaWt1cy1NYWNCb29rLVByby0yMD\nI0LmxvY2FsAQIDAB==\n-----END OPENSSH PRIVATE KEY-----", "user": "MATRIX42\\sshrunneruser", "host": "1.2.3.4", "timeout": 30, "remote_command": { "executable": "powershell.exe", "arguments": ["-No Pro file" ] } }, "redirect_stderr_to_stdout": true}
private_keyarvon rivinvaihdot on korvattava\nmerkillä kuten yllä olevassa esimerkissä. Tätä yksityistä avainta käytetäänuserkirjautumiseen Windows-palvelimelle SSH:n kautta.
useron käyttäjä, jota käytetään Windows-palvelimelle kirjautumiseen ja PowerShell-skriptien käynnistämiseen
hoston sen Windows-palvelimen IP-osoite tai isäntänimi, joka sisältää kyseiset Powershell-skriptit
timeoutvoi jättää oletusarvoon 30, kuten yllä olevassa esimerkissä
remote_commandpitäisi olla täsmälleen samanlainen kuin yllä olevassa esimerkissä
- WebAPI käyttäjää tarvitaan, kun liitin kirjoittaa tietoja asiakkaan ratkaisuun
- WebAPI salasana tarvitaan, kun liitin kirjoittaa tietoja asiakkaan ratkaisuun

6. Tallenna liitin tallennuspainikkeella. Nyt liitin on konfiguroitu ja voit siirtyä tapahtumapohjaiseen konfigurointitehtävään.
Tapahtumapohjaisen tehtävän määrittäminen
Luo uusi tapahtumapohjainen tehtävä

- Aseta kuvaileva tehtävän nimi
- Valitse Tehtävän käyttö: Tapahtuma
- Määritysten tyyppi: Yleinen mallipohja
- Aseta kohdemalli: josta tiedot lähetetään tähän tapahtumatehtävään
- Aseta kohdekansio: josta tiedot lähetetään tähän tapahtumatehtävään

- Luo yhdistämismäärityksiä
Sinulla on aina oltava vähintään yksi määritys: ps_script_path_and_name, joka tulisi yhdistää attribuuttiin, joka sisältää kyseisen tiedon. Muuten tapahtumatehtävät eivät tiedä, mitä PowerShell-komentoa käyttää.
Lisäksi parametreja voi olla yksi tai useampia. Ne on asetettava vastaavuustaulukkoon, jonka nimi on täsmälleen esimerkin mukaisesti; parametri1, parametri2, parametri3 jne. riippuen siitä, kuinka monta parametria Powershell-skriptisi odottaa saavansa.

- Tallenna tapahtumatehtävä.
- Seuraavaksi sinun on luotava työnkulku, jossa orkestrointisolmu kutsuu tätä tapahtumatehtävää.
Kutsu tapahtumatehtävää WorkFlow'sta
Lisää orkestrointisolmu työnkulkuusi
- Nimi - anna kuvaava nimi
- Kuvaus
- Orchestrate - Natiivit liittimet
- Tietolähde - Yleinen Python Script
- Aktiviteetti - Tapahtuman suorittaminen -tehtävä
- Kohde - Valitse tapahtumatehtävä, jonka olet aiemmin luonut tätä tarkoitusta varten
- Respose - valitse attribuutti, jota käytetään onnistuneesti suoritetun Powershell-tulosteen tallentamiseen
- Pro : valitse attribuutti, jota käytetään epäonnistuneiden Powershell-kutsujen virheilmoitusten tallentamiseen

Microsoft Powershell -liittimen tukema Powershell-skriptimuoto
- Lukee skriptin parametrit merkkijonoparametreina (kuten esimerkissä).
- Voi sisältää 0 - n parametria.
- Poistuu koodilla 0, kun skripti suoritettiin onnistuneesti. Voit myös palauttaa ok-viestin JSON-muodossa, joka tallennetaan datakortin solmun vastauskenttään.
- Poistuu virheestä, jonka lopetuskoodi on suurempi kuin 0. Voit myös palauttaa virheilmoituksen JSON-muodossa, joka tallennetaan datakortin provisiointipoikkeuskenttään.
Esimerkki tallentaa tarkistukset, että kaksi parametria on annettu, ja kirjoittaa ne sitten tiedostoon Windows-koneelle. Jos ensimmäinen parametri oli yhtä kuin "failuretest", se palauttaa virhekoodin ja viestin Workflow'lle.
param (
[string]$Param1,
[string]$Param2
)
# Validate required parameters
if ([string]::IsNullOrEmpty($Param1) -or [string]::IsNullOrEmpty($Param2)) {
$errorJson = @{ error = "Wrong number of attributes for Powershell script" } | ConvertTo-Json -Compress
Write-Output $errorJson
exit 1
}
# Folder where this script is located
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$file = Join-Path $scriptDir "pstest.txt"
# Failure case
if ($Param1 -eq "failuretest") {
$errorJson = @{ error = "Calling powershell FAILED" } | ConvertTo-Json -Compress
Write-Output $errorJson
exit 1
}
# Success case: write file
"$Param1`n$Param2" | Out-File -FilePath $file -Encoding UTF8 -Force
$successJson = @{ response = "Calling powershell successfull" } | ConvertTo-Json -Compress
Write-Output $successJson
exit 0
Table of Contents