Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst PowerShell Ausgabe der Variabel Zuweisung stimmt nicht. Warum ?

Mitglied: clever38

clever38 (Level 1) - Jetzt verbinden

31.01.2014, aktualisiert 14:04 Uhr, 2071 Aufrufe, 8 Kommentare

Hallo zusammen,

bin kein großer Script Schreiber, aber hier habe ich eine Problem wo ich nicht weiter komme.
Ich möchte mir alle Aktiven Angemeldeten User aus dem TS Anzeigen lassen.
Das Funktioniert soweit auch als Command Befehl nur wenn ich das Ergebnis in eine Variabel Schreibe., kommt nur noch „Müll“ raus:

hier der Code: (Get-TSSession = ist Zusatz Module zu PowerShell STerminalServices )

$all=Get-Content Z:\Datensicherung\TS-User-Suche\Server.txt | ForEach-Object { Get-TSSession -State Active -ComputerName $_ | Where-Object { $_.UserName -like $suche } | ft -AutoSize }

So soll es aussehen:

Server SessionID State IPAddress ClientName WindowStationName UserName
--------- ----- --------- ---------- ----------------- --------
Server15 6 Active 192.168.1.112 PC1055 RDP-Tcp#832 Dom \User1
Server15 7 Active 192.168.178.28 ARBEITSPLATZ-1 RDP-Tcp#833 Dom \User2
Server15 3 Active 192.168.0.34 HUKPC04 RDP-Tcp#838 Dom \User3
Server15 10 Active 192.168.1.101 C011 RDP-Tcp#839 Dom \user4
Server15 2 Active 192.168.2.100 GUSTAVO RDP-Tcp#843 Dom \User5
Server15 1 Active 192.168.178.20 LUMPI-PC RDP-Tcp#845 Dom \User6
Server15 9 Active 127.0.0.1 ABOIS RDP-Tcp#848 Dom\User7

Als Variabel sieht es so aus:
Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData

Danke für die Hilfe.
Mitglied: colinardo
31.01.2014, aktualisiert um 14:27 Uhr
Hallo clever38,
du wandelst die Objekte mit ft -Autosize innerhalb der Schleife bereits in einen Formatierten String um anstatt die Objekte => Objekte bleiben zu lassen.
01.
$all = Get-Content "Z:\Datensicherung\TS-User-Suche\Server.txt" | ForEach-Object {Get-TSSession -State Active -ComputerName $_ | Where-Object { $_.UserName -like $suche }}
Grüße Uwe
Bitte warten ..
Mitglied: clever38
31.01.2014 um 14:27 Uhr
Hallo Uwe,
Danke für die Hilfe, aber leider bekomme ich noch immer den gleichen „Müll“ wie vorher auch.

Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData

Gruß
Clever38
Bitte warten ..
Mitglied: colinardo
31.01.2014, aktualisiert um 14:42 Uhr
kannst du mal bitte einen größeren Ausschnitt aus deinem Code posten..
Zur Info: ich hatte inzwischen das ft -Autosize am Ende meiner Codezeile noch entfernt.

Wie gibst du die Variable denn überhaupt aus, dafür reicht ein:
$all
Bitte warten ..
Mitglied: clever38
31.01.2014 um 14:41 Uhr
Hallo Uwe,
hier der ganze Code

#region ScriptForm Designer

#region Constructor

[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

#endregion

#region Post-Constructor Custom Code

#endregion

#region Form Creation
#Warning: It is recommended that changes inside this region be handled using the ScriptForm Designer.
#When working with the ScriptForm designer this region and any changes within may be overwritten.
#~~< Form1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Form1 = New-Object System.Windows.Forms.Form
$Form1.ClientSize = New-Object System.Drawing.Size(1072, 681)
$Form1.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen
$Form1.Text = "Form1"
#~~< Ausgabe >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Ausgabe = New-Object System.Windows.Forms.Label
$Ausgabe.Location = New-Object System.Drawing.Point(15, 69)
$Ausgabe.Size = New-Object System.Drawing.Size(1045, 564)
$Ausgabe.TabIndex = 4
$Ausgabe.Text = "Ausgabe"
#~~< Eingabe >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Eingabe = New-Object System.Windows.Forms.TextBox
$Eingabe.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 9.75, [System.Drawing.FontStyle]::Regular, [System.Drawing.GraphicsUnit]::Point, ([System.Byte](0)))
$Eingabe.Location = New-Object System.Drawing.Point(12, 35)
$Eingabe.Size = New-Object System.Drawing.Size(264, 22)
$Eingabe.TabIndex = 3
$Eingabe.Text = ""
#~~< Label1 >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Label1 = New-Object System.Windows.Forms.Label
$Label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 12.0, [System.Drawing.FontStyle]::Bold, [System.Drawing.GraphicsUnit]::Point, ([System.Byte](0)))
$Label1.Location = New-Object System.Drawing.Point(12, 9)
$Label1.Size = New-Object System.Drawing.Size(243, 23)
$Label1.TabIndex = 2
$Label1.Text = "Welchen User Suchen Sie :"
#~~< Cancel >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$Cancel = New-Object System.Windows.Forms.Button
$Cancel.Location = New-Object System.Drawing.Point(106, 646)
$Cancel.Size = New-Object System.Drawing.Size(75, 23)
$Cancel.TabIndex = 1
$Cancel.Text = "Cancel"
$Cancel.UseVisualStyleBackColor = $true
$Cancel.add_MouseClick({CancelMouseClick($Cancel)})
#~~< OK >~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$OK = New-Object System.Windows.Forms.Button
$OK.Location = New-Object System.Drawing.Point(12, 646)
$OK.Size = New-Object System.Drawing.Size(75, 23)
$OK.TabIndex = 0
$OK.Text = "OK"
$OK.UseVisualStyleBackColor = $true
$OK.add_MouseClick({OKMouseClick($OK)})
$Form1.Controls.Add($Ausgabe)
$Form1.Controls.Add($Eingabe)
$Form1.Controls.Add($Label1)
$Form1.Controls.Add($Cancel)
$Form1.Controls.Add($OK)

#endregion

#region Custom Code

#endregion

#region Event Loop

function Main{
[System.Windows.Forms.Application]::EnableVisualStyles()
[System.Windows.Forms.Application]::Run($Form1)
}

#endregion

#endregion

#region Event Handlers

function CancelMouseClick( $object ){
$Form1.Close()
}

function OKMouseClick( $object ){
$top=$Eingabe.Text
#Read-Host "Eingabe" $top
$suche = "*" + $top + "*"
$all = Get-Content "Z:\Datensicherung\TS-User-Suche\Server.txt" | ForEach-Object {Get-TSSession -State Active -ComputerName $_ | Where-Object { $_.UserName -like $suche }} | ft -AutoSize
$Ausgabe.Text=$all

}

Main #This call must remain below all other event functions

#endregion
Bitte warten ..
Mitglied: colinardo
31.01.2014, aktualisiert um 14:50 Uhr
Ahhh, alles klar, das hättest du erwähnen müssen, dass du die Ausgabe in ein Steuerelement übergeben willst.
Dazu musst du das ganze in einen String wandeln:
01.
$all = Get-Content "Z:\Datensicherung\TS-User-Suche\Server.txt" | ForEach-Object {Get-TSSession -State Active -ComputerName $_ | Where-Object { $_.UserName -like $suche }} | ft -AutoSize | out-string 
02.
$Ausgabe.Text=$all
Bitte warten ..
Mitglied: clever38
31.01.2014 um 15:01 Uhr
Hallo Uwe,
Super hat Funktioniert, Danke noch mal für die Hilfe

GELÖST !

G.
Clever 38
Bitte warten ..
Mitglied: colinardo
31.01.2014, aktualisiert um 15:46 Uhr
p.s. wenn du sowieso schon eine Form benutzt würde ich für die Darstellung der Daten ein Datagridview anstatt eines Labels hernehmen. Sieht meines Erachtens übersichtlicher aus

Beispiel wie man Objekte in ein DataGridView lädt (Zeile 10 -23):
01.
function GenerateForm { 
02.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
03.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
04.
 
05.
$form1 = New-Object System.Windows.Forms.Form 
06.
$dg1 = New-Object System.Windows.Forms.DataGridView 
07.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
08.
 
09.
 
10.
$handler_form1_Load=  
11.
12.
   # Liste der Dienste holen 
13.
   $data = get-service 
14.
 
15.
   # ArrayList erstellen 
16.
   $arrList = New-Object System.Collections.ArrayList 
17.
 
18.
   # der Array-Liste das Objekt hinzufügen 
19.
   $arrList.AddRange($data) 
20.
 
21.
   # Die ArrayList der DataSource-Eigenschaft des DataGridView zuweisen 
22.
   $dg1.DataSource = $arrList 
23.
24.
 
25.
 
26.
$OnLoadForm_StateCorrection= 
27.
{#Correct the initial state of the form to prevent the .Net maximized form issue 
28.
	$form1.WindowState = $InitialFormWindowState 
29.
30.
 
31.
#---------------------------------------------- 
32.
#region Generated Form Code 
33.
$System_Drawing_Size = New-Object System.Drawing.Size 
34.
$System_Drawing_Size.Height = 315 
35.
$System_Drawing_Size.Width = 412 
36.
$form1.ClientSize = $System_Drawing_Size 
37.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0 
38.
$form1.Name = "form1" 
39.
$form1.Text = "Primal Form" 
40.
$form1.add_Load($handler_form1_Load) 
41.
 
42.
$dg1.Anchor = 15 
43.
$dg1.DataBindings.DefaultDataSourceUpdateMode = 0 
44.
$System_Drawing_Point = New-Object System.Drawing.Point 
45.
$System_Drawing_Point.X = 12 
46.
$System_Drawing_Point.Y = 12 
47.
$dg1.Location = $System_Drawing_Point 
48.
$dg1.Name = "dg1" 
49.
$System_Drawing_Size = New-Object System.Drawing.Size 
50.
$System_Drawing_Size.Height = 291 
51.
$System_Drawing_Size.Width = 388 
52.
$dg1.Size = $System_Drawing_Size 
53.
$dg1.TabIndex = 0 
54.
 
55.
$form1.Controls.Add($dg1) 
56.
$InitialFormWindowState = $form1.WindowState 
57.
$form1.add_Load($OnLoadForm_StateCorrection) 
58.
$form1.ShowDialog()| Out-Null 
59.
60.
#Call the Function 
61.
GenerateForm
Grüße Uwe
Bitte warten ..
Mitglied: clever38
03.02.2014 um 15:53 Uhr
Hallo Uwe,

Danke für den Tipp, habe auch schon daran gedacht es über eine DataGridView zu machen, sieht halt besser aus.

G.
Clever38
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

PowerShell - Teile eines Pfads in eine Variabel schreiben

gelöst Frage von ImmerKindBatch & Shell1 Kommentar

Hallo Leute:) Ich habe eine kleine Frage. Ist es möglich einem Pfad (Beispiel: \\Server\c$\Skripte\Powershell\Skrip.ps1) nur das File zu entziehen ...

Entwicklung

Powershell in Listbox ausgabe anpassen

gelöst Frage von LyonADEntwicklung3 Kommentare

Guten Tag zusammen Ich möchte das bei der Listboxausgabe nur die IP und der Ordner(\\XX.X.XX.X\Ordner) angezeigt wird. Jedoch werden ...

Batch & Shell

Powershell: Vernüftige Ausgabe der Daten

gelöst Frage von ralfkauskBatch & Shell2 Kommentare

Hallo zusammen Ich brauche mal ein wenig Unterstützung. Ich muss Daten aus dem AD Abgreifen, und das mache ich ...

Windows Server

Powershell Ausgabe formatieren

gelöst Frage von makaroniWindows Server16 Kommentare

Guten Morgen zusammen, ich lesen aus einer Active Directory via Powershell User aus einer Gruppe aus und speicher diese ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 14 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 22 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk12 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...