Promotic

Jak korzystać z PowerShell

Windows PowerShell to udoskonalony następca wiersza poleceń. Stosowany jest do automatyzacji oraz ustawiania SO Windows. Można go również użyć do uzyskania dostępu do systemu plików, rejestrów, procesów, usług, komponentów sieciowych lub do wybranych aplikacji.

Przed pierwszym zastosowaniem należy stwierdzić czy czy SO Windows jest aktywny PowerShell. Jeżeli nie, to ustawić:
Panel sterowania>Programy i funkcje>Włącz lub wyłącz funkcje systemu Windows => pozycja "Windows PowerShell 2.0".


Jeżeli przy pomocy PowerShella będą wykonywane polecenia, które wymagają wyższe uprzwnienia, wtedy należy wcześniej uruchomić 32 lub 64-bitowy PowerShell "jako administrator" (zgodnie z 32 lub 64-bitowym rodzajem runtime aplikacji PROMOTIC) a wpisać to polecenie:
Set-ExecutionPolicy Unrestricted
oraz wybrać i potwierdzić wybór "A".
Przykład1:
Uruchomi polecenie ping a następnie netstat
JavaScriptVBScriptWybierz oraz skopiuj do schowka

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);


Wysłanie wiadomości z PowerShell do aplikacji PROMOTIC:
Ten przykład pozwala przy pomocy PowerShell i polecenia Invoke-WebRequest z metodą "POST" do wysłania wiadomości do obiektu PmaWebDir. Można to uchwycić w zdarzeniu onPageAction i przy pomocy parametrów pEvent.FilePath, pEvent.Method, pEvent.Params, pEvent.Data do dalszego przetwarzania.
 
Sama metoda Invoke-WebRequest jest poprzedzona uwierzytelnieniem przy pomocy nazwy i hasła, które chronią Web serwer aplikacji PROMOTIC.
 
Skrypt ten można zapisać do pliku z rozszerzeniem ps1, a następnie uruchomić 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'


Wysłanie żądania o dane z PowerShell do aplikacji PROMOTIC:
Ten przykład pozwala przy pomocy PowerShell i Invoke-WebRequest z metodą "GET" wysłać żądanie danych do obiektu PmaWebDir.
 
Sama metoda Invoke-WebRequest jest poprzedzona uwierzytelnieniem przy pomocy nazwy i hasła, które chronią Web serwer aplikacji PROMOTIC.
 
Skrypt ten można zapisać do pliku z rozszerzeniem ps1, a następnie uruchomić 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
# Skrypt do przetwarzania otrzymanych danych


Ten może zostać przechwycony w zdarzeniu onPageModify i parametry mogą być użyte do oceny i zwrócenia żądanych danych do klienta. Na przykład:
JavaScriptWybierz oraz skopiuj do schowka

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


Ustawienia domyślnej drukarki w Windows:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

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);


Wymuszenie natychmiastowego zakończenia działania wszystkich aplikacji Excel na komputerze:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oShell = Pm.AxGetObject("new", "WScript.Shell");
oShell.Exec("taskkill /F /IM EXCEL.exe");
Nawigacja:
 
 
- Uruchomienie poleceń w PowerShell z aplikacji PROMOTIC
 
 
- SVG
© MICROSYS, spol. s r.o.