istike2
Goto Top

In Powershell eine leere Zeile zwischen Variablen ausgeben

Hallo,

ich bastele gerade an einem kurzen PS Code, der PC-Merkmale wie Seriennummer und Bitlocker Key in eine Textdatei schreibt.
(Am Ende soll diese Textdatei in dem default Mailclient geöffnet werden.)
Das Problem ist, dass der Recovery Key die Seriennummer immer überschreibt.

Ich habe versucht mit $OFS die neue Zeile hinzufügen, was aber nicht funktioniert hat.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

$sn = (gwmi win32_bios).SerialNumber

$BitlockerVolumers = Get-BitLockerVolume
$BitlockerVolumers |
ForEach-Object {
$MountPoint = $_.MountPoint
$RecoveryKey = [string]($_.KeyProtector).RecoveryPassword
if ($RecoveryKey.Length -gt 5) 
{
Write-Output ("  
Bitlocker-Key: $RecoveryKey 
Seriennummer: $sn
"   
) | Out-File C:\Users\XXXXX\Desktop\sn.txt
}
}

Vielen Dank!

I.

EDIT: mit einem Schreibvorgang mit allen Variablen hat es dann geklappt. (Siehe Code)

Content-Key: 1403419179

Url: https://administrator.de/contentid/1403419179

Ausgedruckt am: 28.03.2024 um 11:03 Uhr

Mitglied: LarSwarS
LarSwarS 18.10.2021 um 22:49:55 Uhr
Goto Top
Moin,
wäre es nicht leichter eine Variable $Output auszugeben?
$Output = $sn + $recoverykey

Alternativ müsste man mit -Append die 2te Variable unter den String schreiben können, $OFS wäre in beiden Fällen nicht nötig.

Grüße
Lars
Mitglied: istike2
istike2 18.10.2021 um 22:58:05 Uhr
Goto Top
Vielen Dank für den Vorschlag.

$Output = $sn + $recoverykey
Write-Output ("$Output")  

schreibt die beiden Ergebnisse einfach nebeneinander in einer Zeile. Also ein Zeilenbruch muss noch her.
Mitglied: LarSwarS
Lösung LarSwarS 18.10.2021 um 23:06:18 Uhr
Goto Top
Na okay, dann doch mit $Osf ;)

$Output = $sn + $OSF + $recoverykey
Write-Output ("$Output")
Mitglied: istike2
istike2 18.10.2021 um 23:08:01 Uhr
Goto Top
Ok! face-smile Auch das hat am Ende gut funktioniert:

Write-Output ("$sn") | Out-File C:\Users\XXXXX\Desktop\sn.txt  
Add-Content C:\Users\XXXXXX\Desktop\sn.txt $recoverykey
Mitglied: 149569
149569 19.10.2021 aktualisiert um 09:22:32 Uhr
Goto Top
Schau dir als Powershell Anfänger in dem Zusammenhang doch auch mal Here-Strings an
@"  
Bitlocker-Key: $RecoveryKey 
Seriennummer: $sn
"@ | out-file C:\Users\XXXXXX\Desktop\sn.txt  
https://powershell.org/2019/04/hear-hear-for-here-strings/

Genau so gut geht auch
$sn,$recoverykey | set-content C:\Users\XXXXXX\Desktop\sn.txt
oder
$sn + "`r`n" + $recoverykey | set-content C:\Users\XXXXXX\Desktop\sn.txt  
oder
"$sn`r`n$recoverykey" | set-content C:\Users\XXXXXX\Desktop\sn.txt  
oder
$sn + [environment]::Newline + $recoverykey | set-content C:\Users\XXXXXX\Desktop\sn.txt
usw.
Mitglied: istike2
istike2 19.10.2021 um 11:58:59 Uhr
Goto Top
Hallo Hacktor,

herzlichen Dank für deine Zusammenfassung.
Ja, es ist sicherlich möglich und gut den Code zu verbessern. face-smile

Gr. I.