From 57a10e597dcd3aa506c0960019fc36433b30089d Mon Sep 17 00:00:00 2001 From: jonas Date: Fri, 17 Feb 2023 23:23:11 +0100 Subject: [PATCH] First working version --- README.md | 10 ++++++++++ control | 14 ++++++++++++++ install.ins | 44 ++++++++++++++++++++++++++++++++++++++++++++ logo.png | Bin 0 -> 28767 bytes 4 files changed, 68 insertions(+) create mode 100644 README.md create mode 100644 control create mode 100644 install.ins create mode 100644 logo.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..967475a --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +## IServ Package as alternative to iserv-windows-batch to run PowerShell scripts straight from the IServ portal server on a target Windows machine + +### Installing +- Put all files of this repo into `/srv/deploy/install/powershell-runner` on the IServ portal server +- Run chkdeploy as root/with sudo +- Create the directory that holds the PowerShell scripts: + - `# mkdir /srv/appdata/powershell-runner` +- Adjust directory permissions and ownership so admins can put script files there + - `# chown pcpatch:admins /srv/appdata/powershell-runner` + - `# chmod 0570 /srv/appdata/powershell-runner` diff --git a/control b/control new file mode 100644 index 0000000..638c563 --- /dev/null +++ b/control @@ -0,0 +1,14 @@ +[Product] +type: localboot +id: powershell-runner +name: PowerShell Script Runner +description: Dieses Paket führt PowerShell Scripte direkt von IServ aus +version: 1.0 +packageVersion: 1.0 +setupScript: install.ins + +[ProductProperty] +name: filename +description: Skriptname (ohne Endung) +default: start + diff --git a/install.ins b/install.ins new file mode 100644 index 0000000..a172c4a --- /dev/null +++ b/install.ins @@ -0,0 +1,44 @@ +[Initial] +Message=Starte PowerShell Script... +DefVar $ExitCode$ +DefVar $FileName$ +DefVar $Hostname$ +DefVar $KeyPath$ + +[Actions] +ShowBitmap "%ScriptPath%\logo.png" "PowerShell" +Sub_PrepInstall +DosInAnIcon_Setup +Sub_HandleExitCode +ExitWindows /Reboot + +[Sub_PrepInstall] +Set $FileName$ = GetProductProperty("filename", "start") +if ($FileName$ = "") + Set $FileName$ = "start" +endif +Set $Hostname$ = Lower(Trim(TakeString(0, GetReturnListFromSection("opsiservicecall_GetHostname")))) +Set $KeyPath$ = "\\" + $Hostname$ + "\appdata\%installingProdName%\" +if not(FileExists($KeyPath$+ $FileName$ + ".ps1")) + LogError "Fatal: File " + $FileName$ + ".ps1 not found." + IsFatalError +endif + +[opsiservicecall_GetHostname] +"method":"iserv_cfg" +"params":[ + "Hostname" +] + +[DosInAnIcon_Setup] +@echo off +pushd "\\iserv\appdata\%installingProdName%" +powershell -ExecutionPolicy Bypass -File "$FileName$.ps1" + +[Sub_HandleExitCode] +Set $ExitCode$ = GetLastExitCode +comment "DISM exit code: " + $ExitCode$ +if not($ExitCode$ = "0") + LogError "Fatal: DISM quit with exit code " + $ExitCode$ + IsFatalError +endif diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..722e2bb572320715735e91dcf311ebfedab5d8e2 GIT binary patch literal 28767 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