Promotic

Jak použít PowerShell

Windows PowerShell je vyspělejším nástupcem Příkazového řádku. Je využíván k automatizaci a konfigurování operačního systému Windows. Lze pomocí něho také přistupovat k souborovému systému, registrům, procesům, službám, síťovým komponentám nebo k vybraným aplikacím.

Před samotným prvním použitím je vhodné zjistit zda je v OS Windows aktivní PowerShell. Pokud ne tak nastavit:
Ovládací panely>Programy a funkce>Zapnout nebo vypnout funkce systemu Windows => položka "Windows PowerShell 2.0".


Pokud budou pomocí PowerShellu prováděny příkazy, které vyžadují vyšší oprávnění pak je nutno předem spustit 32 nebo 64 bitový PowerShell "jako správce" (v souladu s 32 nebo 64 typem runtime aplikace PROMOTIC) a zadat tento prikaz:
Set-ExecutionPolicy Unrestricted
a zvolit a potvrdit volbu "A".
Příklad1:
Spustí příkaz ping a následně netstat
JavaScriptVBScriptVyber a zkopíruj do schránky

var oShell = Pm.AxGetObject("new", "WScript.Shell");
var sInvoke = "";
sInvoke += "ping 127.0.0.1" + "\r\n";
sInvoke += "netstat";
oShell.Run("PowerShell " + sInvoke, 1, false);


Zaslání zprávy z PowerShellu do PROMOTIC aplikace:
Tento příklad umožní pomocí PowerShellu příkazem Invoke-WebRequest s metodou "POST" odeslat zprávu do objektu PmaWebDir. Tu lze zachytit v události onPageAction a s pomocí parametrů pEvent.FilePath, pEvent.Method, pEvent.Params, pEvent.Data dále zpracovat.
 
Samotné metodě Invoke-WebRequest předchází autentizace jménem a heslem kterým je chráněn webový server aplikace PROMOTIC.
 
Tento skript lze uložit do souboru s příponou ps1 a ten pak spouštět jako parametr programu PowerShell.
$user = 'oper'
$pass = ''
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{Authorization = $basicAuthValue}
Invoke-WebRequest 'http://127.0.0.1/dir/test.htm?test=abc' -Headers $Headers -Body 'ahoj' -Method 'POST'


Zaslání požadavku na data z PowerShellu do PROMOTIC aplikace:
Tento příklad umožní pomocí PowerShellu příkazem Invoke-WebRequest s metodou "GET" zaslat objektu PmaWebDir požadavek na data.
 
Samotné metodě Invoke-WebRequest předchází autentizace jménem a heslem kterým je chráněn webový server PROMOTIC aplikace.
 
Tento skript lze uložit do souboru s příponou ps1 a ten pak spouštět jako parametr programu PowerShell.
$user = 'oper'
$pass = ''
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{Authorization = $basicAuthValue}
$res = Invoke-WebRequest 'http://127.0.0.1/dir/test.htm?test=abc' -Headers $Headers -Method 'GET'
$res.Content
# Skript pro zpracování přijatých dat


Tento lze zachytit v události onPageModify a s pomocí parametrů vyhodnotit a vrátit klientovi požadovaná data. Například takto:
JavaScriptVyber a zkopíruj do schránky

if (pEvent.FilePath == "test.htm")
{
pEvent.PageString = "Test OK";
}

Historie:
Pm9.00.05: Vytvořeno
Navigace:
 
 
- Spuštění příkazů v PowerShell z aplikace PROMOTIC
 
 
- SVG
© MICROSYS, spol. s r. o.