Powershell Fehleranzeige
Hallo Mädels und Jungs,
ein kleines Script schreibt einen Wert in die Registry.
Dabei leuchtet im Windows Terminal oder Powershellfenster eine gelbe Fehlermeldung, die ich aufgrund der Kürze der Anzeigedauer nicht lesen / auswerten kann.
Das Script läuft jedoch durch und schreibt den Wert.
Ich kann nur etwas mit "implicit" erkennen.
Beim Ausführen in VSCode sehe ich die Meldung gar nicht.
Wie kann ich die Meldung "einfangen"?
Gruß
Peter
ein kleines Script schreibt einen Wert in die Registry.
Dabei leuchtet im Windows Terminal oder Powershellfenster eine gelbe Fehlermeldung, die ich aufgrund der Kürze der Anzeigedauer nicht lesen / auswerten kann.
Das Script läuft jedoch durch und schreibt den Wert.
Ich kann nur etwas mit "implicit" erkennen.
Beim Ausführen in VSCode sehe ich die Meldung gar nicht.
Wie kann ich die Meldung "einfangen"?
$keyName = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
$key2Name = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Screensavers\ssText3d\"
$ValueName = "DisplayString"
$Old_ssText3d = (Get-ItemProperty $key2Name -Name $ValueName).DisplayString
$Version = (Get-ItemProperty $keyName -Name CurrentBuildNumber).CurrentBuildNumber
$DisplayVersion = (Get-ItemProperty $keyName -Name DisplayVersion).DisplayVersion
$PName = (Get-ItemProperty $keyName -Name ProductName).ProductName
$RealPName = (Get-WmiObject win32_operatingsystem).Caption
$UBR = (Get-ItemProperty $keyName -Name UBR).UBR # gleich zu: BaseBuildRevisionNumber
$RealPName = $RealPName.TrimStart("Microsoft Windows ")
$RealPName = $RealPName.TrimEnd(" Pro")
$New_ssText3d = $RealPName + " " + $DisplayVersion + " " + $Version + "." + $UBR
if ( $Old_ssText3d -ne $New_ssText3d )
{
Set-Itemproperty -path $key2Name -Name $ValueName -value $New_ssText3d
}
Gruß
Peter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 670179
Url: https://administrator.de/contentid/670179
Ausgedruckt am: 16.12.2024 um 01:12 Uhr
6 Kommentare
Neuester Kommentar
Moin.
Erst einmal, gelbe Meldungen sind keine echten Fehler, sondern Standardmäßig erst einmal nur Warnungen.
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
Alternativ zu den obigen Möglichkeiten Skript starten mittels -NoExit Parameter,
oder direkt in einer bereits offenen Powershell Konsole starten
Gruß gastric
Erst einmal, gelbe Meldungen sind keine echten Fehler, sondern Standardmäßig erst einmal nur Warnungen.
Ich kann nur etwas mit "implicit" erkennen.
Das war zu 99% das ExecutionPolicy Warning über die implizite Überschreibung der Policy durch den Scope wenn das Skript über das Kontextmenü gestartet wurde.https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...
Alternativ zu den obigen Möglichkeiten Skript starten mittels -NoExit Parameter,
Powershell -NoExit -File "<Pfad zum Skript>"
<Pfad zum Skript>
Gruß gastric
Vielleicht hat jemand eine Idee, wie man sowas umleiten kann.
Powershell.exe -ExecutionPolicy Bypass C:\Scripts\mySceipt.ps1
wäre eine VarianteDie zweite wäre es, das Script zu signieren.
Bei der ersten könnte jemand anderes ja theoretisch die ps1 inhaltlich verändern und damit Schaden anrichten/ Daten abgreifen…
Moin.
Gerade mal probiert und erstaunlicherweise funktioniert es wieder, aber mit aufblitzenden Warnungen, die sofort wieder überschrieben werden. Konnte es auch nicht lesen, aber ich vermute, da steht was davon, dass implizit das
Grüße
Steffen
Get-WmiObject
ist seit v.3 als veraltet markiert und war in PS Core eine ganze Zeit lang nicht mehr verfügbar.Gerade mal probiert und erstaunlicherweise funktioniert es wieder, aber mit aufblitzenden Warnungen, die sofort wieder überschrieben werden. Konnte es auch nicht lesen, aber ich vermute, da steht was davon, dass implizit das
Get-CimInstance
CmdLet genutzt wird. Anders gesagt, wenn du "explizit" das Get-CimInstance
CmdLet nutzt, gibt es vermutlich auch keine Warnung mehr Grüße
Steffen