Calculated Properties (UPDATE!)
I had a user point out that my code didnt work in a 4.5 farm. I did some testing and while some information was there, it was not complete. I did Test XP and 4.0 and they worked fine. I created a new one for CTX PS 4.5
$MF.Initialize(1)
$MF.Servers | Select-Object ServerName -expand Applications | Select-Object ServerName,DistinguishedName,
@{n="AppName";e={$_.WinAppObject.BrowserName}},
@{n=‘Users’; e={$_.LoadData(1) | %{$_.Accounts2} | ?{$_.AccountType -eq 2} | %{$_.AccountName}}},
@{n=‘Groups’;e={$_.LoadData(1) | %{$_.Accounts2} | ?{$_.AccountType -eq 4} | %{$_.AccountName}}}
Lets talk about whats going on here
First We Get the MFCom Farm Object and Initialize it.
$MF.Initialize(1)
Next we iterate throught the servers parsing out only the ServerName and Getting MFCom Application Objects and pipe it along
The Final part is where we make the changes. In 4.5 the Application object no longer has Users Property or Group Property. It also no longer uses AppName.
For AppName we use: $_.WinAppObject.BrowserName
For Users we use: Accounts2 with AccountType 2
For Groups we use: Accounts2 with AccountType 4
The User/Group Name is stored in a property called AccountName
You will also notice the LoadData. This because not all information is there be default. LoadData fills out the object with data.
@{n="AppName";e={$_.WinAppObject.BrowserName}},
# Get users from Accounts2 filtering type 2 and selecting AccountName
@{n=‘Users’; e={$_.LoadData(1) | %{$_.Accounts2} | ?{$_.AccountType -eq 2} | %{$_.AccountName}}},
# Get Groups from Accounts2 filtering type 4 and selecting AccountName
@{n=‘Groups’;e={$_.LoadData(1) | %{$_.Accounts2} | ?{$_.AccountType -eq 4} | %{$_.AccountName}}}
tshell :: Feb.05.2008 :: Citrix, HowTo, Powershell, Scripting :: No Comments »
