Waarom er een onderscheid gemaakt wordt tussen Property, CodeProperty, AliasProperty,NoteProperty en ScriptProperty snap ik nog steeds niet. Echt goed gedocumenteerd is dat niet en de MVP die onlangs aan enkele collega's een cursus PS Administration gaf wist het eigenlijk ook niet echt. Geweldig.
Het verder uitstekende PowerShell 2/0 TFM van Sapien Press laat me in de steek, evenals Essential PowerShell van Addison-Wesley en de Windows PowerShell Scripting Guide van MS Press. Idem dito bij Windows PowerShell van Sams en Windows PowerShell Cookbook van O'Reilly.
Seriously, guys,...
Waarom kan je andere dan gewone Properies niet opvragen met $foo.bar? Een | Select-Object in een $var steken is niet echt efficiënt werken.
Wat ik nu wil wordt al helemaal moeilijk, maar als iemand (lees: de weinige PSers hier) ideeën heeft: shoot!
Volgende codefragment:
In een custom object worden allerlei NoteProperties (gewone gaan blijkbaar niet) gestoken zodat ik per domein een mooi overzicht heb van (in dit geval) het aantal machines dat nog draaien op de oude ePO server. Die output ziet er ongeveer zo uit in zijn rauwe vorm:
OTHER is, eenvoudigweg, [TOTAL - ∑alle andere noteproperties] (behalve het totaal zelf uiteraard). Ik zou dit kunnen oplossen door alles om te zetten naar variabelen, maar dat is een verdomd inefficiënte en onoverzichtelijke (dit is maar een fragmentje code, ik heb zo nog een paar identieke ForEach constructies) methode.
Een (virtueel) koekje voor wie hier een en ander van weet.
Het verder uitstekende PowerShell 2/0 TFM van Sapien Press laat me in de steek, evenals Essential PowerShell van Addison-Wesley en de Windows PowerShell Scripting Guide van MS Press. Idem dito bij Windows PowerShell van Sams en Windows PowerShell Cookbook van O'Reilly.
Seriously, guys,...
Waarom kan je andere dan gewone Properies niet opvragen met $foo.bar? Een | Select-Object in een $var steken is niet echt efficiënt werken.
Wat ik nu wil wordt al helemaal moeilijk, maar als iemand (lees: de weinige PSers hier) ideeën heeft: shoot!
Volgende codefragment:
PowerShell:
1
2
3
4
5
6
7
| $agentUpgradeNeeded | Add-Member -MemberType NoteProperty -Name "TOTAL" -Value $arrFullEpoOldAgents.Count ForEach ($objDomain in $arrDomain) { $arrTemp = $arrFullEpoOldAgents | Where-Object {$_.Domain -EQ $objDomain} $agentUpgradeNeeded | Add-Member -MemberType NoteProperty -Name $objDomain -Value $arrTemp.Count } $agentUpgradeNeeded | Add-Member -MemberType NoteProperty -Name "OTHER" -Value ($arrFullEpoOldAgents.Count - "<...de som van de anderen...>") |
In een custom object worden allerlei NoteProperties (gewone gaan blijkbaar niet) gestoken zodat ik per domein een mooi overzicht heb van (in dit geval) het aantal machines dat nog draaien op de oude ePO server. Die output ziet er ongeveer zo uit in zijn rauwe vorm:
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
| TOTAL : 14580 DOMAIN0 : 2156 DOMAIN1 : 56 DOMAIN2 : 1457 DOMAIN3 : 1222 DOMAIN4 : 745 DOMAIN5 : 101 DOMAIN6 : 47 DOMAIN7 : 655 DOMAIN8 : 2214 DOMAIN9 : 1579 OTHER : ? |
OTHER is, eenvoudigweg, [TOTAL - ∑alle andere noteproperties] (behalve het totaal zelf uiteraard). Ik zou dit kunnen oplossen door alles om te zetten naar variabelen, maar dat is een verdomd inefficiënte en onoverzichtelijke (dit is maar een fragmentje code, ik heb zo nog een paar identieke ForEach constructies) methode.
Een (virtueel) koekje voor wie hier een en ander van weet.