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, 2133 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 ...

Netzwerkmanagement

Cisco port Zuweisung

Frage von Ghost108Netzwerkmanagement8 Kommentare

Hallo zusammen, such nach einer kurzen Syntax um mehrerer Ports eine Einstellung zuzuweisen. Aktuell mach ich dies wie folgt: ...

Windows Server

Hyper-V Prozessor Zuweisung

Frage von manu90Windows Server5 Kommentare

hi zusammen, ich habe einen Xeon E5-2620v3 Prozi. mit 64 GB Ram ich habe gelesen der Host sollte davon ...

Vmware

CPU Zuweisung in ESXi

gelöst Frage von maddigVmware1 Kommentar

Guten Morgen, ich habe eine kurze Frage zu der Zuweisung in Esxi. Angenommen ich habe einen Celeron G1610T mit ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 1 TagDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 2 TagenSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 2 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 3 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Router & Routing
Lancom-VPN-Client
Frage von FM28880Router & Routing15 Kommentare

Hallo zusammen, ich habe heute zwei Rechner mit einem Lancom VPN-Client eingerichtet. Die VPN-Verbindung wird aufgebaut und steht. Jedoch ...

Microsoft Office
Sharepoint 2016 mag keine Umlaute in .docx-Titeln
gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Nutzt hier jemand Sharepoint? Könnt Ihr, unabhängig von der Sharepointversion, bitte einen Test machen? Ladet ein .docx ...

Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V11 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...

Virtualisierung
Physikalischen Linux-Rechner (Debian) in VM umziehen
Frage von fbronkoVirtualisierung10 Kommentare

Moin, ich möchte zu Testzwecken einen physikalisch vorhandenen Linux-Rechner auf Debian-Basis in eine VM umziehen. Ich habe mittlerweile schon ...