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í OS 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 32 nebo 64-bitový PowerShell "Spustit jako správce" (v souladu s 32 nebo 64 typem runtime aplikace PROMOTIC) a zadat tento příkaz:
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 Web 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 Web 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}
$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:
JavaScriptVyber a zkopíruj do schránky

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


Nastavení přednastavené tiskárny ve Windows:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oShell = Pm.AxGetObject("new", "WScript.Shell");
var sInvoke = "";
sInvoke += "$MYPRINTER = 'SHARP MX-B350W PCL6'\\r\\n";
sInvoke += "$PRINTERTMP = (Get-CimInstance -ClassName CIM_Printer | WHERE {$_.Name -eq $MYPRINTER}[0])\\r\\n";
sInvoke += "$PRINTERTMP | Invoke-CimMethod -MethodName SetDefaultPrinter | Out-Null\\r\\n";
oShell.Run("PowerShell " + sInvoke, 1, false);


Vynucené okamžité ukončení všech aplikací Excel na počítači:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oShell = Pm.AxGetObject("new", "WScript.Shell");
oShell.Exec("taskkill /F /IM EXCEL.exe");
Navigace:
 
 
- Spuštění příkazů v PowerShell z aplikace PROMOTIC
 
 
- SVG
© MICROSYS, spol. s r.o.