joshuatree
Goto Top

Powershell zwei Schnippsel zusammenfügen

Get-XAApplication -FolderPath "applications\test"|Get-XAAccount -Browsername {$_.Displayname}|select Accountname

Das ist der gesamte Aufruf

Get-XAApplication -FolderPath "applications\test" ist der erste Teil und gibt alle Anwendungen im Ordner "applicaiton\test" raus.

Get-XAAccount -Browsername {$_.Displayname}|select Accountname ist der zweite Teil und ist über Browsername mit dem ersten Teil verschachtelt.

Accountname ist ein Attribut des zweiten Befehls (sind die Anwendungsberechtigungen)
Browsername ist ein Attribut des ersten Befehls (Ist der Anwendungsname)

Wenn ich die Zeitle aufrufe bekomme ich schön alle Accountname"s" ich hätte aber gerne optisch den Bezug zum Browsername.

Das heißt Browsername (Anwendungsname) gefolgt von der Liste mit Accountname(Berechtigungen)

Da aber jede Anwendung unterschiedlich viele Berechtigungen hat müssen die Beiden Ergebnisse sequentiell abgearbeitet werden.

Ich bekommen die Ergebniss nicht zusammen, immer nur das eine oder andere ausgegeben.

kann mir hier mal bitte jemand helfen ?

Content-ID: 263046

Url: https://administrator.de/forum/powershell-zwei-schnippsel-zusammenfuegen-263046.html

Ausgedruckt am: 23.12.2024 um 09:12 Uhr

colinardo
Lösung colinardo 11.02.2015 aktualisiert um 15:10:51 Uhr
Goto Top
Moin JoshuaTree,
habe diese CMDLets zum Testen nicht da, aber solltest du so machen können:
$info = @()
Get-XAApplication -FolderPath "applications\test" | %{  
    $info += New-Object PSObject -Property @{"Browsername"=$_.DisplayName;"Accountname"=((Get-XAAccount -Browsername $_.Displayname | select -Expand AccountName) -join "`n")}  
}
$info | ft Browsername,Accountname -AutoSize -Wrap
Hier gibts dazu ebenfalls noch ein Script:
http://virot.eu/get-application-assigned-groups-number-of-members-in-an ...

Grüße Uwe
JoshuaTree
JoshuaTree 11.02.2015 um 13:21:46 Uhr
Goto Top
Danke für die Mühe leider wirft er mir folgenden Fehlertext raus

Get-XAAccount : Cannot evaluate parameter 'BrowserName' because its argument is specified as a script block and there i
s no input. A script block cannot be evaluated without input.
At C:\Users\9901amader\rechte.ps1:3 char:116

back-to-top$info += New-Object PSObject -Property @{"Browsername"=$_.DisplayName;"Accountname"=(Get-XAAccount -Browsername <

<<< {$_.Displayname}).Accountname}
+ CategoryInfo : MetadataError: (face-smile [Get-XAAccount], ParameterBindingException
+ FullyQualifiedErrorId : ScriptBlockArgumentNoInput,Citrix.XenApp.Commands.GetAccountCmdlet
colinardo
colinardo 11.02.2015 aktualisiert um 13:28:38 Uhr
Goto Top
mach die geschweiften Klammern um {$_.Displayname} weg, siehe oben, hatte ich noch korrigiert.
JoshuaTree
JoshuaTree 11.02.2015 um 14:34:53 Uhr
Goto Top
Jetzt funktioniert es ohne Fehler aber das Ergebnis ist nicht so dolle

Browsername Accountname
-----------
CBIS Test1 IB
CBIS Test2 IB
AUS CBIS Test 1
AUS CBIS Test 2
AUT CBIS Test 1
AUT CBIS Test 2
CH CBIS Test 1
CH CBIS Test 2
D CBIS Test 1
D CBIS Test 2
HU CBIS Test 1
HU CBIS Test 2 buhle
IB CBIS Test 1
IB CBIS Test 2
SLO CBIS Test 1
SLO CBIS Test 2
UK CBIS Test 1
UK CBIS Test 2
US CBIS Test 1
US CBIS Test 2


Jede Anwendung hat mehrere User und Gruppen die sind gar nicht mit raus gekommen
colinardo
Lösung colinardo 11.02.2015 aktualisiert um 15:30:56 Uhr
Goto Top
Jede Anwendung hat mehrere User und Gruppen die sind gar nicht mit raus gekommen
Woher soll ich das wissen ich habe dieses Modul mit den CMDLets hier leider nicht zum Testen, daher kenne ich die Objekttypen nicht.
Siehe dazu das verlinkte Script von oben.

-edit- Ich habe mein Script mal auf verdacht oben angepasst.
JoshuaTree
JoshuaTree 11.02.2015 um 15:03:27 Uhr
Goto Top
Hi,

klar du kannst das nicht wissen.

Ich wollte das beschreiben, hat wohl nicht geklappt.

Also vielleicht versuche ich es nochmal.

Anwendung1 hat z.B 3 Berechtigte objekte(user. gruppen) diese verstecken sich in Get-XAAccount -Browsername {$_.Displayname}.
-Browsername ist die der Anwendungsname und "sage" ich am ende |select Accountname bekomme ich schon ordentlich von allen Anwendungen die Berechtigugen aufgelistet. Aber ich habe kein Bezug zur Anwendung.

Schöne wäre es so

App1 User1
User2
Gruppe1
App2 User1
User2
Gruppe1
App2 User1
User2
Gruppe1
App4 User1
User2
Gruppe1

Ich habe es geschafft beide Seiten auszugeben aber nie das ich eine Tabelle davon bekomme.
JoshuaTree
JoshuaTree 11.02.2015 um 15:31:55 Uhr
Goto Top
Die letzte Änderung, hatte fast den Hinweis übersehen hat es gebracht !!!

Cool Danke so muss das sein !
JoshuaTree
JoshuaTree 24.02.2015 um 11:55:33 Uhr
Goto Top
@colinardo

hattest du jetzt nochmal was geändert? Denn jetzt läuft es in mehrere Fehler!?
colinardo
colinardo 24.02.2015 um 12:24:24 Uhr
Goto Top
Zitat von @JoshuaTree:
hattest du jetzt nochmal was geändert? Denn jetzt läuft es in mehrere Fehler!?
nope....
JoshuaTree
JoshuaTree 24.02.2015 um 13:27:58 Uhr
Goto Top
Hmmmm :....Auf einmal taucht folgender Fehler auf, den ich nicht verstehe:

Get-XAAccount : Object reference not set to an instance of an object.
At C:\temp\list_apps3.ps1:5 char:105

back-to-top$info += New-Object PSObject -Property @{"Browsername"=$_.DisplayName; "Accountname"=((Get-XAAccount <<<< -Brows

ername $_.Displayname | select -Expand AccountName) -join "`n")}
+ CategoryInfo : NotSpecified: (face-smile [Get-XAAccount], NullReferenceException
+ FullyQualifiedErrorId : System.NullReferenceException,Citrix.XenApp.Commands.GetAccountCmdlet