TheCracked 13 Geschrieben 5. April 2018 Melden Teilen Geschrieben 5. April 2018 Hallo Zusammen, hier der codeschnipsel: ...... If ($result -notlike '') { Write-Output $result $remotesession = Read-Host "Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein" if ($remotesession -like "ja") { Write-Output BLA ... } Die Ausgabe sieht so aus: Bitte geben Sie den zu suchenden User ein:: XYZ Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein: ja Computername Mitarbeiter ------------ ----------- LAPXYZ HUBERMAIER BLA Warum sieht die Ausgabe nicht so aus? Das " Write-Output $result" kommt ja vor dem "$remotesession = Read-Host "Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein" . Versteh nicht, warum der write-output ganz am ende erst kommt. Ist das normal so? Bitte geben Sie den zu suchenden User ein:: XYZ Computername Mitarbeiter ------------ ----------- LAPXYZ HUBERMAIER Wollen Sie eine Remotesitzung zu diesem PC starten? ja / nein: ja BLA Viele Grüße TC Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 5. April 2018 Melden Teilen Geschrieben 5. April 2018 Write-Output schreibt die Ausgabe in die Pipeline. Write-Host und die Read-Host - Aufforderung schreiben direkt in die Konsole. Das sind verschiedene Streams, die die Powershell unterschiedlich sortiert. Da gewinnt so gut wie immer Write-Host. Wenn die Reihenfolge wichtig ist, musst Du bei so einem Konstrukt wohl Write-Host verwenden. .... oder einen anderen Ansatz für die nötigen Anwender-Eingaben finden. z.B. eine Funktion zu benutzen mit einem "mandatory" Parameter. Zitieren Link zu diesem Kommentar
TheCracked 13 Geschrieben 6. April 2018 Autor Melden Teilen Geschrieben 6. April 2018 Ach ok. Jetzt sieht es fast besser aus.. Die Ausgabe über " Write-host $result " sieht jetzt ein bisschen unschön aus: @{Computername=xyz; Mitarbeiter=BLA} $result hat den Type: TypeName: Selected.Microsoft.ActiveDirectory.Management.ADComputer Wie bekomme ich das ein bisschen formatierter hin so wie es write-host macht.. Computername Mitarbeiter ------------ ----------- xyz BLA Grüße TC Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 6. April 2018 Melden Teilen Geschrieben 6. April 2018 Tjaaaa .... da kannst Du mal sehen, was die Powershell unter der Haube alles implizit für Dich tut. Ohne Deinen Code zu kennen, kannst Du entweder die Ausgabe Deinen Wünschen entsprechend anpassen, oder die Abfrage der nötigen Informationen vom Anwender auf eine andere Methode umstellen. Dann könntest Du die einfache Ausgabe über Write-Output beibehalten. Die Ausgabe anpassen könntest Du vielleicht so: Write-host "ComputerName:`t'$($result.ComputerName)'`nMitarbeiter:`t'$($result.Mitarbeiter)'" Das sollte dann ungefähr so aussehen: Computername: xyz Mitarbeiter: BLA Zitieren Link zu diesem Kommentar
TheCracked 13 Geschrieben 6. April 2018 Autor Melden Teilen Geschrieben 6. April 2018 (bearbeitet) Diese Powershell so mächtig :) jetzt ist es nur so, dass eventuell das Ergebnis mehrere Computernamen zurückgibt.. Das sieht dann derzeit mit deinem Vorschlag so aus: ComputerName: 'XYZ ABC LDF' Mitarbeiter: 'HANS HUBER EINHORN' muss ich da am besten eine foreach bauen, mit der ich das schön ausgebe? edit: so siehts ganz ordentlich aus: $result |Format-Table| Out-String|% {Write-Host $_} bearbeitet 6. April 2018 von TheCracked Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 6. April 2018 Melden Teilen Geschrieben 6. April 2018 vor 20 Minuten schrieb TheCracked: so siehts ganz ordentlich aus: Supi. Zitieren Link zu diesem Kommentar
TheCracked 13 Geschrieben 6. April 2018 Autor Melden Teilen Geschrieben 6. April 2018 (68,97,110,107,101,32,102,117,101,114,32,100,101,105,110,101,32,72,105,108,102,101,32,58,41 |%{[char]$_})-join '' Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.