Diskuze: PowerShell - pouzitie Parallel processing - Workflow a vratenie vystupnych premenych

Člen

Zobrazeno 9 zpráv z 9.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |


ten workflow jsem ještě nezkoušel, ani foreach parallel
ale mohl by to vyresit Start-Job a souvisejici commandlety na joby
uvidim, jestli budu mit vecer vic casu na to mrknout a neco vic k tomu napsat
workflow PingTestOnline
{
param($computers)
foreach -parallel ($computer in $computers)
{
$TestResult = Test-Connection -ComputerName $computer -Count 1 -Quiet
if($TestResult)
{
Write-Output $computer
}
elseif(!$TestResult)
{
Write-Output $computer
}
}
}
$computers = Get-ADComputer -SearchBase "***" -LDAPFilter "(&(name=*12481*))" | select name -ExpandProperty Name
PingTestOnline $computers
Ak by sa dalo aspon toto rozdelit aby mu vracalo $online a $offline premennu tak u6 bz som dalej vedel ale to sa proste neda asi.
Takže som prišiel na toto:
Workflow Test-MultiConnection {
param([string[]] $ComputerName)
foreach -Parallel ($Computer in $ComputerName) {
sequence {
$online = Test-Connection -ComputerName $Computer -Count 1 -Quiet
$Obj = New-Object -Type PSObject -Property @{
ComputerName = $Computer
Online = $online
}
$Obj
}
}
}
$computers = Get-ADComputer -SearchBase "OU=***" -LDAPFilter "(&(name=*24519*))" | select name -ExpandProperty Name
$output = Test-MultiConnection $computers | Select -Property ComputerName, Online | Format-Table -AutoSize #DO TADIAL TO IDE
$online = $output | select ComputerName
$online
V obrazku je to spohladu debugeru preco boze nemozem vyselectovat tie ktore maju Pod Property Online status true. Dokonca nemozem ani selectovat vseobecne cely stlpec a pritom riadok 16 to bez problemu robi omg.
Sorry obrazok je nanic ale je to to vpravo precitat sa to da. A teda riadok 16 este funguje :
$output = ....
tak to jsem rád, že jsi mi ušetřil luštění a už ti to jede 
jinak k tomu selectovani .... mam pocit ze pletes selectovani a filtrovani
....selectovani (Select-Object) rika, ktere sloupce (vlastnosti) ze vsech
vstupnich maji projit dal
....filtrovani (Where-Object) rika, ktere radky (objekty) ze vsech vstupnich
maji projit dal
priklad .... mas tabulku(pole objektu) $lide
| Cislo | Jmeno | Prijmeni |
| 1 | Pepa | Novak |
| 2 | Jirka | Kolar |
| 3 | Antonin | Novy |
$lide | select -Property Cislo, Prijmeni
| Cislo | Prijmeni |
| 1 | Novak |
| 2 | Kolar |
| 3 | Novy |
$lide | where { $_.Cislo -lt 3 }
| Cislo | Jmeno | Prijmeni |
| 1 | Pepa | Novak |
| 2 | Jirka | Kolar |
takze pokud chces jen radky s pocitacema, ktery jsou online, tak vybiras radky - potrebujes filtrovat pomoci where-object / where
tedy videl bych to na neco jako
$online = $output | where {$_.Online -eq $True } | select ComputerName
$online
to nejdriv pusti dal jen ty radky, ktere jsou online
potom to z kazdeho 'online' radku vybere pouze sloupec s nazvem pocitace
defacto select a where tady funguje jako v SQL, pokud jsi uz nekdy v SQL neco
delal ... pokud ne, tak po tomhle bude lehci se ho naucit 
Hej ja som to skušal ale toto sa sprava velmi zvlaštne akoby tohadam ani nešlo skus si to je to vlastne obdoba tamtoho, len testujeme webove stranky debugni si to na online a uvidiš aky je vystup ani sa mi tomu verit nechce:
Workflow Test-MultiConnection {
param([string[]] $ComputerName)
foreach -Parallel ($Computer in $ComputerName) {
sequence {
$online = Test-Connection -ComputerName $Computer -Count 1 -Quiet
$Obj = New-Object -Type PSObject -Property @{
ComputerName = $Computer
Online = $online
}
$Obj
}
}
}
$computers = "dsl.sk", "pokec.sk", "google.com","hfgfh.sk", "yacloskj.sk"
$output = Test-MultiConnection $computers | Select -Property ComputerName, Online | Format-Table -AutoSize #DO TADIAL TO IDE
$online = $output | where {$_.Online -eq $true } | select ComputerName
$online
Robi to to format table omg kurnik vcera 3 hodiny asi som nato nemohol prist do 19 som bol v praci a to som chcel odist o 15 xD. Format-Table znici tu tabulku akokeby a uz z nej sa neda selectovat. Nevieš prečo je to tak?
jj, takových zásekových situací jsem si taky užil... a jeste užiju 
format-table ti prevede objekty na textovou reprezentaci plus formatovaci instrukce.... tedy puvodni objekty uz nejsou/byly zahozeny (da se ale resit... jsou zpusoby jak vypsat a dal zpracovavat)
tady se hodi poznamenat, že powershell rozlisuje mezi zpracovavanymi objekty a jejich textovou reprezentaci, kterou vypisuje na konzoli.... narozdil od cmd nebo bash, ktere zpracovavaji stringy/znaky a ty same stringy/znaky vypisuji
powershell na konci kazdeho radku, ktery mu odEntrujes, automaticky pusti defaultni formatovac na objekty, ktere po zpracovani radku na konci vylezly
takovych ficurek a tajemnych vlastnosti ma powershell vic a i proto mě
přitahuje 
Zobrazeno 9 zpráv z 9.