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 formatieren

Frage Microsoft Windows Server

Mitglied: makaroni

makaroni (Level 1) - Jetzt verbinden

07.01.2015, aktualisiert 13:06 Uhr, 2948 Aufrufe, 16 Kommentare, 2 Danke

Guten Morgen zusammen,

ich lesen aus einer Active Directory via Powershell User aus einer Gruppe aus und speicher diese in eine .txt Datei.

Dafür nutze ich unter Anderem folgenden Code:

01.
$Output_File = "\\pfad" 
02.
$all = @()  
03.
$all += Get-ADGroupMember -Recursive $AD_Group -Server $Server -Credential $cred 
04.
$all += Get-ADGroupMember $AD_Group -Server $Server -Credential $cred | ?{$_.objectClass -eq "group"} | Get-ADGroupMember -Recursive  
05.
$all = $all | select -Unique  
06.
$all = $all | ft name 
07.
$all = $all | Out-File "$Output_File"  
08.
$all
Nun soll die Textdatei zum Teil mit konstanten Inhalt gefüllt werden wie z.B.

2014-12-22 00:00:01 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png (konstanter Teil) User aus dem AD (dynamischer Teil)

Wie formatiere ich das in Powershell? Bzw. wie bekomme ich die Ausgabe so hin?

Viele Grüße
Mitglied: Doskias
07.01.2015 um 09:50 Uhr
Hallo Sebastian,

verstehe ich dich richtig, dass du als Konstante ein bestimmtes Datum & Uhrzei verwenden möchtest?

Gruß
Doskias
Bitte warten ..
Mitglied: makaroni
07.01.2015 um 09:58 Uhr
Hey Doskias,

nein nicht ganz, vor jedem User soll einfach der konstante Teil stehen
2014-12-22 00:00:01 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png (konstanter Teil) User aus dem AD (dynamischer Teil)


Also dieser Teil wäre in JEDER Zeile identisch, danach würden dann einfach die User kommen mit z.B. Domäne/User...

Grüße
Bitte warten ..
Mitglied: Doskias
07.01.2015, aktualisiert um 10:02 Uhr
Unabhängig von meiner Nachfrage mein Vorschlag:
01.
$fester_teil="2014-12-22 00:00:01 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png " 
02.
$Dynamischer_teil=$all 
03.
 
04.
$fester_Teil + $dynamischer_teil | out-file $Output_File -append
Wenn $all dein dynmaischer Teil ist, dann kannst du auch die entsprechende Variable nehmen.
01.
"2014-12-22 00:00:01 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png " + $all | out-file $Output_File -append
würde auch gehen
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.01.2015, aktualisiert um 10:28 Uhr
Hallo Sebastian,
z.B. so
01.
$Output_File = "\\pfad" 
02.
$all = @()  
03.
$all += Get-ADGroupMember -Recursive $AD_Group -Server $Server -Credential $cred 
04.
$all += Get-ADGroupMember $AD_Group -Server $Server -Credential $cred | ?{$_.objectClass -eq "group"} | Get-ADGroupMember -Recursive  
05.
$all | select -Unique | select Name, @{n='Konstante';e={'2014-12-22 00:00:01 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png'}} | ft Konstante,Name -AutoSize | out-string -width 10000 | Out-File $Output_File
Grüße Uwe
Bitte warten ..
Mitglied: makaroni
07.01.2015 um 10:17 Uhr
Ganz komisch, die Lösung hatte ich auch schon getestet allerdigns kommt dann immer

2014-12-22 00:00:01 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png 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

...

Also er setzt für jeden User Microsoft.PowerShell.Commands.Internal.Format.FormatStartData und nicht den User...

01.
Try { 
02.
$all = @()  
03.
$all += Get-ADGroupMember -Recursive $AD_Group -Server $Server -Credential $cred 
04.
$all += Get-ADGroupMember $AD_Group -Server $Server -Credential $cred | ?{$_.objectClass -eq "group"} | Get-ADGroupMember -Recursive  
05.
$all = $all | select -Unique  
06.
$all = $all | ft name 
07.
$fester_teil="2014-12-22 00:00:01 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png "  
08.
$Dynamischer_teil=$all  
09.
$fester_Teil + $dynamischer_teil | out-file $Output_File -append  
10.
11.
Catch [system.exception] { 
12.
 
13.
	$Server, $AD_Group, $AD_User, $Output_File | out-file -filepath "\\pfad" -Append 
14.
 
15.
16.
	
Bitte warten ..
Mitglied: makaroni
07.01.2015 um 10:20 Uhr
Danke Uwe
Bitte warten ..
Mitglied: makaroni
07.01.2015 um 10:22 Uhr
Hey Uwe,

in der Textdatei schneidet der allerdings nach der 200 ab


2014-12-22 00:00:01 10 10.1.1.1 200 ...

Grüße
Bitte warten ..
Mitglied: colinardo
07.01.2015, aktualisiert um 10:32 Uhr
Zitat von makaroni:
in der Textdatei schneidet der allerdings nach der 200 ab
oh sorry hatte ich auf die schnelle vergessen, ist oben korrigert

zur Info: wenn du die Tabellenüberschriften nicht brauchst, hilft der Parameter -HideTableHeaders bei ft
Bitte warten ..
Mitglied: makaroni
07.01.2015 um 10:53 Uhr
Danke, gut zu wissen. Aber ich benötige noch einmal deine Hilfe. Eigentlich dachte ich, dass ich es dank dem Beispiel nun alleine hinbekommen würde aber naja ;)

Und zwar folgendes, vorne das Datum soll das aktuelle get-date Minus 15 Tage sein. nach dem dynamischen Text, soll ein weiterer Konstanter Text hinzugefügt werden. Und zu guter Letzt, oben im Header soll ein Text stehen. Ich hoffe ich habe es erklären können was ich vorhabe?

Du hast oben mit einem Label gearbeitet oder? Wie füge ich denn in einem Label eine Variable ein? Wie erstelle ich ein zweites Label etc.

Grüße
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.01.2015, aktualisiert um 11:32 Uhr
Das was ich oben gemacht habe nennt sich Calculated Property
D.h. damit fügst du einem Object in der Pipeline eine weitere "richtige" Spalte hinzu. Der Wert dieser Spalte kann natürlich nicht nur konstante Strings enthalten (das e={} bedeutet Expression) sondern eben auch normale Powershell-Befehle, alles was dort ausgegeben wird wird später der Wert der Spalte für jede Zeile, d.h. diese lässt sich auch dynamisch je nach User gestallten.
Von diesen Calculated Properties kannst du auch mehrere hinzufügen, einfach mit Komma voneinander trennen
Die Reihenfolge der Spalten kannst du dann mit ft festlegen. Den Spaltennamen kannst du schon in der Calculated Property festlegen (n="Konstante")
Für dein Beispiel:
01.
$all | select -Unique | select Name, @{n='Konstante';e={"$((get-date (get-date).AddDays(-15) -Format "yyyy-MM-dd HH:mm:ss")) 10 10.1.1.1 200 TCP_HIT 1 1 GET http www.test.de/ 80 /styles/1.png"}}, @{n='Konstante2';e={"Irgendwas anderes"}} | ft Konstante,Name, Konstante2 -AutoSize | out-string -width 10000 | Out-File $Output_File
Grüße Uwe
Bitte warten ..
Mitglied: makaroni
07.01.2015, aktualisiert um 12:45 Uhr
Alles klar, das habe ich verstanden.

Mit Select wähle ich ja die unter Attribute Editor verwendeten Attribute aus. Mit name klappt das, allerdings nicht mit cn oder anderen Attributen...
Oder schaue ich da falsch? Ich möchte jetzt zb nach name, cn, givenName filtern....

Des Weiteren wie kann ich einen Header einbauen. Variable in dem Try catchblock anhängen, dann würde der header ja so oft ausgegeben, soviele Nutzer es gibt..

Grüße S
Bitte warten ..
Mitglied: colinardo
07.01.2015, aktualisiert um 12:08 Uhr
Zitat von makaroni:
Mit Select wähle ich ja die unter Attribute Editor verwendeten Attribute aus.
Du sprichst in Rätseln was für einen Attribut-Editor ? na egal ...

Mit name klappt das, allerdings nicht mit cn oder anderen Attributen...
Oder schaue ich da falsch? Ich möchte jetzt zb nach name, cn, givenName filtern....
Mit Select wählst du die Spalten bzw. Eigenschaften aus welche du erst mal grob haben möchtest. Filtern kannst du indem du einfach noch ein Where-Object vorschaltest
01.
$all | select -Unique | ?{$_.givenName -like '*Meier*'} | select Name,..........
Des Weiteren wie kann ich einen Header einbauen. Variable in dem Try catchblock anhängen, dann würde der header ja so oft ausgegeben, soviele Nutzer es gibt..
Du sprichst wieder in Rätseln...poste doch einfach mal die gewünschte Ausgabe, damit die Rätselstunde hier endlich ein Ende hat!
Bitte warten ..
Mitglied: makaroni
07.01.2015, aktualisiert um 16:25 Uhr
Sorry dafür.

So soll die Ausgabe aussehen....


..
Bitte warten ..
Mitglied: colinardo
07.01.2015, aktualisiert um 12:17 Uhr
Zitat von makaroni:
So soll die Ausgabe aussehen....
bitte in Codetags, so ist das nutzlos... !!

versucht da etwa einer ein Webserver-Log zu fälschen ?? Dann bin ich hier nämlich raus ...
Bitte warten ..
Mitglied: makaroni
07.01.2015 um 12:53 Uhr
Nope, das war gerade ein Beispiel was ich gerade an der Hand hatte. Aber Du hast Recht, das ist ein Webserver-Log.


Ich möchte gerne in der Textdatei stehen haben:

Herzlich Wilkommen.


Uhrzeit: Benutzername test\test test\CN=Internet-TEST hat sich zu dem Zeitpunkt: xx angemeldet...

Und dann halt alles Benutzer aufgezählt. Hat den Nutzen, dass irgendwann die Onlinezeit bzw. PC-Zeit erfasst werden soll. Sprich wie lange der User X angemeldet ist.
Bitte warten ..
Mitglied: colinardo
07.01.2015, aktualisiert um 13:23 Uhr
So letzte Wohltat für heute ...
01.
$Output_File = "\\pfad" 
02.
$all = @()  
03.
$text = @() 
04.
$all += Get-ADGroupMember -Recursive $AD_Group -Server $Server -Credential $cred 
05.
$all += Get-ADGroupMember $AD_Group -Server $Server -Credential $cred | ?{$_.objectClass -eq "group"} | Get-ADGroupMember -Recursive  
06.
 
07.
$text += "Herzlich Willkommen`r`n" 
08.
$all | select -Unique | %{$text += ((get-date (get-date).AddDays(-15) -Format "yyyy-MM-dd HH:mm:ss") + " " + $_.SamAccountName + ' test\test test\CN=Internet-TEST hat sich zu dem Zeitpunkt: ' + (get-aduser $_.SamAccountName -Properties LastLogonDate).LastLogonDate + ' angemeldet')} 
09.
$text | Out-File $Output_File
Viel Erfolg noch... der Thread ist ja ansonsten abgehandelt.
Grüße Uwe

Ansonsten siehe:

Powershell Grundlagen- und Praxisvermittlung:
Bitte warten ..
Ähnliche Inhalte
Python
Python - ausgabe formatieren
Frage von BadFsaadKlPython

Hallo zusammen, ich habe ein kleines Python Script geschrieben, welches als Ziel hat, mir alle Verfügbaren Lunix Updates anzuzeigen, ...

Batch & Shell
Excel mit Powershell formatieren
Frage von TastuserBatch & Shell13 Kommentare

Hallo, ist es möglich eine Excel-Datei mit Powershell zu formatieren? - Bestimmte Zellen bekommen eine bestimmte Größe - Bestimmte ...

Batch & Shell
Powershell String formatieren
gelöst Frage von derhoeppiBatch & Shell1 Kommentar

Hallo, ich habe ein Skript das einen Netzwerkswitch ausliest. Das hat bis dato auch funktioniert, aber mit einem Firmwareupdate ...

Batch & Shell
Excelwerte über Powershell auslesen und formatieren
gelöst Frage von Snakebite2004Batch & Shell4 Kommentare

Hallo zusammen, ich sitze vor folgendem Problem: Ich möchte in einer beliebigen Exceldatei(Auswahl muss durch Benutzer erfolgen können) nach ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 4 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 11 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 13 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 16 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...