Powershell i NSP
Vi har med version 10.7.6 infört stöd för att köra Powershell skript med våra triggers för automatisering. Den här funktionen ligger rätt i vår strävan för fler integrationsmöjligheter.
Vad är Powershell?
Powershell är öppen källkod och multi-platform cmd-skriptspråk för automatisering och konfiguration från Microsofts.
Powershell möjliggör administration i lokala och distribuerade applikationer och system från Microsoft. Powershell kan stödjas i andra applikationer, som t.ex. NSP, eller utföra operation mot andra system genom standardprotokoll, t.ex. WS-Management för hantering av webtjänster eller CIM protokoll för hantering av Linux eller nätverksenheter.
Hur funkar Powershell med NSP
I NSP är triggers, schemalagda eller händelsestyrda, den lösningen som möjliggör automatisering. Till exempel vid vissa händelser i ärenden eller vid datum kör systemet automatisk en procedur som ändrar i ett fält, skickar mail, lägger upp en ny kommentar eller kör ett skript.
Skript i triggers är ett sätt att kunna definiera komplexa villkor och enklare datamanipulering innan fält ändras.
PS-skript körs med en trigger. Syntaxen är enkel och alltid samma:
[powershellscript]
{ "TypeScript":"PowerShell", "SourceScriptFile":"script_name.ps1" }
Parametrar
Skriptet kan ta parametrar från NSP genom särskilda taggar.Till exempel för att passa ärendeämnet som variabel kan man använda taggen
{v:record.BaseHeader}
Exempel
Till exempel om man vill skapa eller uppdatera ett konto i AD. Som parametrar skickas den nya användarens namn och e-post. Dessa är lagrade i ärendefält u_fullname och u_email.
Invoke-Command -ComputerName 192.168.200.28 -ScriptBlock \{New-ADUser -Name "{v:record.u_fullname}" -OtherAttributes @\{'mail'="{v:record.u_email}"\}\} -credential $cred
Invoke-Command är ett sätt att köra kommando mot en annan server.
Variabeln $cred innehållet admin-kontot med behörigheter att ändra i AD. Hur man bygger upp den förklarar vi inte här.
New-ADUser är ett PS kommando (Cmdlet) som lägger till ett nytt konto i AD.
Kort om förutsättningar
Det finns flera viktiga punkter att ta hänsyn till, varav det viktigaste kanske är säkerhet och behörigheter att ändra i system. Kort kan man säga att följande punkter:
- * Powershell ska kunna köras på NSP server och av kontot som kör NSP’s webbtjänst RestAPI.
- * För distribuerad exekvering, mot andra servrar, bör mål-server vara konfigurerad för PSRemoting.
- * Skriptet ska ligga i en avsedd mapp på NSP’s webbserver: C:\NSPFiles\NSP\PowerShellScripts.
- * Säkerhets och behörighetsaspekter