Anzeige

Am Puls von Microsoft

Anzeige

Kleineres Powershell Problem

Ich krich noch die Krise...
In der Datei Check_for_Updates4.ps1 habe ich im Abschnitt für Grafikkarten und Netzwerkkarten diese Zeilen hier vergessen:
Code:
write-host "Auf der nächsten Seite werden Ihnen Informationen über Grafikkarten und Netzwerk-Adapter angezeigt."
write-host
Write-Host 'Um fortfahren zu können drücken Sie eine beliebige Taste . . . ' -NoNewLine -foregroundcolor darkgreen;[void]($Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'))
clear-host

Deshalb lief das Skript an dieser Stelle immer durch. Tschulligung...

Hier nochmals alle Skripte mit Korrektur
 

Anhänge

  • For_Normal_Users.zip
    610,4 KB · Aufrufe: 9
Anzeige
Ich konnt´s einfach nicht lassen...
Guckst Du hier:
1732579926581.png

Die Logik dafür wurde entsprechend angepasst und erweitert.
Das USB-Diskettenlaufwerk habe ich bestimmt 15 Jahre nicht mehr benutzt, aber funktionieren tut es noch!
Total bescheuert.............;););)

Um 2.12 Uhr waren alle Skripte diesbezüglich nochmals überarbeitet.
Die großen Farbigen Skripte haben jetzt 242 KB auf dem Buckel... LOL
 

Anhänge

  • For_Normal_Users.zip
    610,3 KB · Aufrufe: 10
  • Besondere_Speichermedien_neu.zip
    25,3 KB · Aufrufe: 11
Zuletzt bearbeitet:
So
Ich habe noch was entdeckt bzw. wieder entdeckt.
Verwendet man in Powershell den Befehl $All_Devices = Get CimInstance -ClassName Win32_PnPEntity, dann werden
zunächst einmal alle erkannten Geräte in die Variable $All_Devices eingelesen.
Danach setzt man entsprechende Filter um gewünschte angaben für ein bestimmtes Gerät herauszufiltern.
Was ich mal wieder völlig vergessen hatte ist die Tatsache, dass Disketten-Laufwerke nach wie vor, egal mit welcher Windows Version man auch unterwegs ist, ihre eigene PnPClass (PnP-Klassifizierung) haben.
Diese ist ganz simpel '*Floppy*'. Wenn ich also einen Filter setze ($laufwerk.PnPClass -like "*Floppy*") dann kann ich noch einen weiteren Filter setzen
if ($driveName -like "*USB*") {$medien_typ_intern = "USB" }
if ($driveName -notlike "*USB*") {$medien_typ_intern = "internes" }
und zack bekomme ich aufgebröselt, ob mein besonderes Laufwerk ein USB oder internes Laufwerk ist.
Man sieht also, die Logik dahinter ist eigentlich nicht schwer, wenn man denn die "Vokabeln" kennt.
Und das war die PnPClass, die mir gefehlt hatte.
Lange Rede kurzer Sinn...
Alle Skripte sind angepasst und fertig. Sie werden wie immer hier im Anhang bereit gestellt.
1732603357399.png
 

Anhänge

  • Besondere_Speichermedien_neu.zip
    25,3 KB · Aufrufe: 8
  • For_Normal_Users.zip
    610,4 KB · Aufrufe: 12
Ich hatte ja heute morgen erzählt, dass ich im Bereich Besondere Speichermedien erfassen für die Diskettenlaufwerke noch was rausgefunden habe und die Logik dem entsprechend verbessert habe.
Bei den Bandlaufwerken (Streamern) habe ich dazu heute morgen auch das hier eingefügt und ich hoffe mal, dass mir das nicht noch irgend wann einmal um die Ohren fliegt: Siehe Markierung # neu hinzugefügt
Code:
($laufwerk.Description -like "*Tape*" -or
                  $laufwerk.Description -like "*Band*" -or             
                  $laufwerk.Description -like "*Magnetband*" -or
                  $laufwerk.Description -like "*MagnetTape*" -or
                  $laufwerk.Description -like "*Magnet-Band*" -or
                  $laufwerk.Description -like "*Magnet-Tape*" -or
                  $laufwerk.Description -like "*Stream*" -or           # neu hinzugefügt
                  $laufwerk.Name -like "*Tape*" -or
                  $laufwerk.Name -like "*Band*" -or
                  $laufwerk.Name -like "*MagnetBand*" -or
                  $laufwerk.Name -like "*MagnetTape*" -or
                  $laufwerk.Name -like "*Magnet-Band*" -or
                  $laufwerk.Name -like "*Stream*" -or                     # neu hinzugefügt
                  $laufwerk.Name -like "*Magnet-Tape*") {
            Write-Host "Es wurde ein $medien_typ_intern Streaming-Band-Laufwerk erkannt."
            $foundSpecialMedia = $true
Wenn da Geräte aufschlagen, die irgendwas mit Stream im Namen oder in der Beschreibung haben, dann könnte es heikel werden und ich müsste die Filterlogik noch mal anpassen...
 
Zuletzt bearbeitet:
Wer glaubt, ich habe fertig, der irrt!

Ich bin gerade dabei noch ein paar Hardwarekomponenten mit aufzunehmen.
Die Logik dafür habe ich fertig.
Zunächst werden im Abschnitt Mobiltelefone und USB 3 Controller nun zuerst
Mobiltelefone und Modems erfasst. Danach auf der nächsten Seite dann zuerst PCMCIA-Controller
und zuletzt USB 3 (oder höher) Host-Controller. Es sind also noch zwei Gerätegruppen mit hinzugekommen.
Zum Testen habe ich die Skripte als zip-Datei mal mit im Anhang gespeichert.
Bilder dazu hier:
1732671390429.png

USB 3 Controller mit Treibern von Microsoft.
1732671466845.png

USB 3 Controller mit Original-Treibern vom Hersteller.

1732671530589.png
 

Anhänge

  • USB_3_Mobile_Erfassung_blauweiss.zip
    7,3 KB · Aufrufe: 6
Daran arbeite ich gerade und ich finde es toll so:

Man beachte das Diskettenlaufwerk A:

Die Logik wird so angepasst, dass bis auf´s KB runtergebrochen wird. Total genial.
Und mittlerweile habe ich das auch ohne KI geschafft.
1732674375071.png



So

Die Skripte sind alle fertig und wurden angepasst.
Die großen Skripte nähern sich bei den farbigen Skripten der 250 KB Grenze (246 KB)
und bei den blauweissen Skripten der 200 KB Grenze (193 KB).

Edited by mich um 6.08 Uhr
Die Skripte wurden nochmals verändert.
Es ging nir dabei um Folgendes... Siehe Bild:
Zuerst wurde nur bis auf eine Kapazität von KB (Kilobyte) heruntergebrochen.
Jetzt bin ich bis auf´s Byte genau runtergegangen.
1732684099992.png

Mit USB-Disketten Laufwerk 3,5 Zoll 1,44 MB...

1732690362752.png
 

Anhänge

  • For_Normal_Users.zip
    615,3 KB · Aufrufe: 7
Zuletzt bearbeitet:
Etwas hat mich noch gestört.
Es wurde bei den festinstallierten Laufwerk-Controllern bisher nicht erfasst, ob ein Floppy-Controler vorhanden ist oder nicht. Und ja auch dieses Gerät hat in der PNPEntity seine eigene Class-GUID. Also kann mann danach wunderschön filtern. Ich habe es auf einem Uralt-PC getestet und es funktioniert.
Hier mal ein Bild dazu von meinem Notebook. Das hat natürlich keine Floppy...

1732697711743.png

So .... es ist jetzt 14.15 Uhr......... und immer diese kleinen Flüchtigkeitsfehler...
ich habe die großen Skripte nochmal angefass und Erklärtexte reigepackt mit PNPClass und PNPClass GUID.
Die Texte sind ausgeremt. Das heisst sie sind mit einem # Zeichen versehen.
So kann man im Skript beim Editieren sich die jeweiligen GUIDs und Klassen auch mal anschauen.
Zwar sind die Skripte dadurch auf 250 bzw. 200 KB angewachsen, aber diese Informationen erschienen mir wichtig.
Woran ich noch gearbeitet habe, sind Biometrische Geräte. Diese haben auch eine Klasse und eine GUID
Biometric Device
Class Biometric
Class GUID 53D29EF7-377C-4D14-864B-EB3A85769359

Die Biometrsichen Geräte werden nun nach Ihrer Class GUID erfasst, und wenn sie sowas wie "*biom*" im Namen oder der Beschreibung drin stehen haben. Die Schnelltestskripte sind:
USB_3_Mobile_Erfassung_blauweiss.ps1
USB_3_Mobile_Erfassung_bunt.ps1
Ob das hunderpro funzt, weiss ich aber noch nicht...

1732704769773.png
 

Anhänge

  • For_Normal_Users.zip
    628,8 KB · Aufrufe: 13
Zuletzt bearbeitet:
So
Und mal wieder zur Abwechslung was neues.
Zum einen habe ich die Logik für Biometriegeräte ein wenig angepasst und aufgeweicht.
In dieser Geräteklasse habe ich zuerst -like "Biom" als mögliche Beschreibung bzw. als möglichen Namen drin gehabt.
Das habe ich jetzt auf -like "*Biom*" umgestellt. So kann vor und hinter dem Ausdruck stehen was will.
Des Weiteren habe ich auch bei den erkannten USB-Geräten was hinzugefügt.
Es werden jetzt auch HID-Conforme Game-Controller erfasst. Aber die Infos dazu sind leider nur sehr dürftig.
Funktionieren tut es zwar, es ist aber nicht besonders informativ, wenn da nur HID-Conformer Game-Controller drin steht.
Edited bei mich um 20.50 Uhr
Ich bin gerade echt zwiegespalten, ob ich den HID-Conformen Game-Controller so drin lasse oder nicht.
Wenn ich in die Einstellungen über die Systemsteuerung oder über die joy.cpl gehe,
dann wird mir der Name des Joysticks
angezeigt, aber in Powershell sagt selbst die KI das geht nicht, weil die PNP32Entity das nicht hergibt.
Der Name hier z.B. Cyborg 3D ist mit Powershell nicht zu erfassen.
Die Schnelltestdateien dazu heissen
GRAKA_NETWORK_SOUND_TV_KARTE_Blauweiss.ps1
GRAKA_NETWORK_SOUND_TV_KARTE_Farbe.ps1
 

Anhänge

  • For_Normal_Users.zip
    627,3 KB · Aufrufe: 9
Zuletzt bearbeitet:
So
Ich habe was wichtiges entdeckt.
Schließt man einen Gamecontroller (Joystick oder Ähnliches) an einen Computer an,
dann wird das Gerät ja im Gerätemanager eingetragen.
Wenn es noch nicht parametriert ist (das ist bei einem konventionellen Joystick sehr wichtig,
gerade bei Flusimulatoren), dann gibt es dafür auch noch keine Einträge in der Registry.
Über den Befehl im DOS-Fenster mit administrativen Rechten "joy.cpl" kann man
einen Joystick paramtrieren. Normalerweise ist der Pfad in der Registry dann Folgender:
"HKCU\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM"
Darunter findet sich dann u. U. in einem untergeordneten Pfad auch der Name des Gamecontrollers.
Den liest das Powershellskript mit ein, wenn denn da was gefunden wird.
Natürlich habe ich für mich die Logik angepasst und gesagt:
Wenn gefundener Name des Gamecontrollers CYBORG 3d USB, dann Hersteller = SAITEK.
Ansonsten wird weiterhin in der PNP32Entity von Powershell nach Hersteller und Beschreibung gesucht.
Wa passiert wenn der Gamecontroller unparametriert bleibt sieht man im Bild: 2_Joysticks_bunt_nicht_parametriert.JPG

Alle Bilder dazu hier:
In Blauweiss und Joysticks fertig parametriert:
1732771736844.png

In Farbe und Joysticks fertig parametriert:
1732771796819.png

Und in Farbe ohne Parametrierung der Joysticks:
1732771849049.png




Die Schelltestdateien für die Gamecontroller heissen:
GRAKA_NETWORK_SOUND_TV_KARTE_Blauweiss.ps1 und GRAKA_NETWORK_SOUND_TV_KARTE_Farbe.ps1


Und ja... Ich habe nun mal 2 baugleiche Joysticks von Saitek...

Die Dateien in der For_Normal_Users.zip reiche ich heute im Laufe des Tages nach.
Ich kann mich noch daran erinnern... an die Stift- oder Toucheingabe für die Anzeige.
Da war das nämlich fast genauso. Zuerst wurde nur ein HID-Konformer Stift gefunden.
Wenn man die Treiber für das Tablet installiert hatte,
wurde das "Zeichenbrett" auch mit Namen und Beschreibung angezeigt.
Es ist jetzt 7.30 Uhr und die großen Dateien sind fertig.
Ich habe in die For_Normal_Users.zip noch ein Word-Dokument eingefügt.
Es behinhaltet die GUIDs für die PNP32Entity in Powershell, wenn man danach filtern will.
 

Anhänge

  • For_Normal_Users.zip
    645 KB · Aufrufe: 7
Zuletzt bearbeitet:
Hallo
Ich habe ja glaube ich schon mal erwähnt, dass ich die
Powershellskripte so konsistent, stabil und dennoch flexibel gestalten möchte.
Daher sind oft Anpassungen nötig.
Gerade im Bereich Card Reader, USB und Mobiltelefone wird sich noch
so Einiges ändern. Das heisst aber auch, ich muss laufend die
Filter in den Skripten anpassen und verbessern.
Hier zwei Beispiele:
1. Card Reader
Ein Nachbar hat einen Card Reader in seinem Notebook, der nicht über
einen USB-Controller geht, sondern über einen Standardmässigen
Controller Marke Eigenbau Terra Wortmann.
Um den mit zu erfassen musste der Filter erweitert werden.
1732824018878.png

2. Mobiltelefone
Hier das gleiche Spiel an mehreren Notebooks getestet.
Wenn in der Caption, dem Namen oder der Description sowas wie
Processor oder Chipset drin steht, dann darf sowas natürlich nicht unter der
Gruppe der Mobiltelefone erscheinen. Mobile i5 Processor with Intelchipset
ist ja wohl kein Mobiltelefon.
Also mussten auch hier weitere Filter gesetzt werden.
z.B. if $_.Description -notlike "*Chipset*"
Das sind halt so die kleineren Restriktionen und Probleme, wenn man
so etwas mit in Powershell erfassen möchte.
Fazit:

Nur durch ausgiebiges Testen bekomme ich die Powershellskripte auf ein höheres Niveau.
 

Anhänge

  • For_Normal_Users.zip
    643,1 KB · Aufrufe: 15
Du bist aber fleißig...(y)
Ich komme mit dem Testen gar nicht hinterher, bin jetzt auch über's Wochenende (Freitag bis Sonntag) mal wieder in Bochum.
Rückmeldung folgt...
Ich wünsche allen ein schönes Wochenende.
 
Das Problem mit der Win32PnPEntity bleibt bestehen.
Gibt man darüber eine Suche nach irgendwelchen im Computer verbauten oder an den Computer angeschlossenen Geräte aus, dann muss man nachher jede Menge Filter setzen, um genaueste Angaben über das Gerät zu bekommen.
Powershell nutzt in dem Fall leider keine API´s . Beispiel optische Laufwerke in einem Computer.
Während man im Windows Explorer genauestens angezeigt bekommt, um was für einen Typ optisches Laufwerk es sich handelt (
1732857039716.png
), hat man in Powershell das Problem, dass man den Typ des optischen Laufwerks über die Geräte bzw. Typenbezeichnung, Beschreibung, den Namen, oder die Caption ermitteln muss.
So etwas wie das hier:
1732857275731.png
geht ja noch, aber bei so manch anderem Laufwerk wird das schwieriger genau zu ermitteln was für ein Typ optisches Laufwerk das ist. Mit jedem Filter, den ich setze, werden die Angaben um so präziser. Nur... Bei den .zig Millionen Herstellern und deren Varianten in der Gerätebezeichnung erhöht sich natürlich auch wieder die Fehlerquote. Deshalb habe ich in der Logik zumindest als letzte Möglichkeit CD-ROM Laufwerk angegeben. Denn jedes optische Laufwerk ist zumindest mal in der Lage CDs zu lesen.
Das gleiche ist mit den Card Readern. Die Hersteller und MS konnten sich da wohl auch nicht so ganz auf eine
globale Geräteklassen GUID einigen, was eine Erfassung solcher Geräte in Windows Powershell vereinfachen würde.
 
Etwas hat mich verwundert.
Bei zwei Computern von mir gab es Probleme mit der Erfassung der Grafikkarten.
Der vefügbare Arbeitsspeicher der Grakas wurde nicht korrekt angezeigt.
1. Beispiel mein Uraltnotebook HP620 Pavillon. 3,8 GB VRAM ? Schwachsinn!
2. Beispiel in einem PC ist eine ASUS NVidia Geforce 1060 GTX mit 6GB RAM verbaut. Angezeigt werden nur 4 GB.
Also habe ich die Logik verändert.
Ausschnitt aus der Logik
Code:
Name='Arbeitsspeicher in MB';
    Expression={
        if ($_.AdapterRAM) {
            # Überprüfen, ob es sich um die NVIDIA GeForce GTX 1060 6GB handelt
            if ($_.Name -like "*NVIDIA GeForce GTX 1060 6GB*") {
                # Zeige den tatsächlichen Wert von 6 GB RAM an
                [string]::Format("{0, 12}", 6 * 1024)  # 6 GB in MB
            }
            # Überprüfen, ob es sich um die Mobile Intel(R) 4 Series handelt und die BIOS-Version passt
            elseif ($_.Name -like "*Mobile Intel(R) 4 Series Express Chipset Family*" -and $biosVersion -eq "68PVI Ver. F.06") {
                
                # Setze den Arbeitsspeicher auf 1695 MB
                [string]::Format("{0, 7} (maximal)", 1695)  # 1695 MB mit dem Zusatz "maximal"
            }
            else {
                # Zeige den tatsächlichen AdapterRAM in MB an
                [string]::Format("{0, 12}", [math]::round($_.AdapterRAM / 1MB, 2))
            }
        } else {
            "{0, 12}" -f "N/A"  # Platzhalter, wenn kein AdapterRAM vorhanden ist
        }
    }
Auf alle übrigen Grakas hat das aber keinen Einfluss.
Die Schnelltestskripte dazu heissen:
GRAKA_NETWORK_SOUND_TV_KARTE_Blauweiss.ps1 und
GRAKA_NETWORK_SOUND_TV_KARTE_Farbe.ps1

Edited by mich um Viertel vor Sechs

Die Skripte wurden nochmals angepasst und verändert.
Es ging um die Logik zuer Erfassung für Geräte im Gerätemanager die mit einem Warnsymbol gekennzeichnet sind.
Alle 54 (in Worten vierundfünfzig) mir bekannten Warnhinweise wurden mit in die Logik aufgenommen.
Das habe ich extra bei Microsoft nachgeschlagen.....
Die Schnellskript-Testdateien dazu heissen:
Gerätemanager_Warnsymbole_blauweiss.ps1 und
Gerätemanager_Warnsymbole_bunt.ps1

Die großen Skripte sind ebenfalls fertig...
Da die Fehlermeldungstexte lang sein können, kommen diese in eine separate Zeile.
Die Texte wurden teilweise sinngemäß eingekürzt, damit sie in eine Zeile passen...
Beispiel: Fehlermeldung (errorcode 17)
Die in der Treiber-Inf Datei angegebene Ressource für das Gerät wird vom übergeordneten Gerät nicht erkannt.
Normalerweise ist der Text dazu etwas länger:
Die in der Treiber-Informations Datei angegebene Ressource für das untergeordnete Gerät wird vom übergeordneten Gerät nicht erkannt.
1732907107170.png


Aber ich denke mal, damit kann man gut leben...
Ich hoffe halt nur, dass keiner 15 oder mehr Geräte im Gerätemanager hat, die ´nen Fehler aufweisen.
 

Anhänge

  • For_Normal_Users.zip
    640,6 KB · Aufrufe: 5
Zuletzt bearbeitet:
Bei den PCMCIA Controllern habe ich die Logik noch ein wenig angepasst.
Es wäre schön, wenn mal jemand mit PCMCIA Controller im Notebook (Nur wenn die Schnittstelle verbaut ist)
und im Bereich USB3 und Mobiltelefone ein wenig testen könnte.
Die Resultate bitte hier als Screenshot posten. Die Schnelltestdateien heissen:
USB_3_Mobile_Erfassung_blauweiss.ps1 sowie
Datenträger_Erfassung_blauweiss.ps1
Natürlich gibt es die auch in bunt, aber Blauweiss reicht mir schon...

Danke
 

Anhänge

  • For_Normal_Users.zip
    641,6 KB · Aufrufe: 5
Ich habe in die For_Normal_Users.zip noch ein Word-Dokument eingefügt.
Es behinhaltet die GUIDs für die PNP32Entity in Powershell, wenn man danach filtern will.
In deinem Word-Dokument Device category.docx solltest du vielleicht noch die folgende Quelle angeben:

Es ging um die Logik zuer Erfassung für Geräte im Gerätemanager die mit einem Warnsymbol gekennzeichnet sind.
Alle 54 (in Worten vierundfünfzig) mir bekannten Warnhinweise wurden mit in die Logik aufgenommen.
Das habe ich extra bei Microsoft nachgeschlagen.....
Das war mir übrigens schon etwas länger aufgefallen, bin mir aber immer noch zwischen den beiden folgenden Supportartikel unsicher:
lt. Absatz - ConfigManagerErrorCode - sind es 31 gelistete Code und
sind es 38 gelistete Code.

Bitte veröffentliche einen Link, wo Microsoft alle 54 Code, die du in deinen Scripts verwendest, angibt.

In letzter Zeit fällt mir auf, dass du sehr viel Zeit in die Erkennung alter Geräte steckst und die Scripts teils an deine und die deiner Freunde Hardware anpasst. Dies und deine auskommentierten Hinweise, die teilweise in einem Dokument Readme.txt ausgelagert werden könnten, blähen die Scripts unnötig auf.
 
Das war mein Link dazu!

Wenn mehr Errorcodes drin sind, als die aktuellste Windows 11 Version braucht, was soll´s.
Schaden tut das nicht und nicht jeder ist mit Windows 11 unterwegs!
Quelle für die Device category.docx ist eingefügt..........Zufrieden?
Zu den Erklärtexten sei gesagt.
Teilweise fliegen die ausgeremten Zeilen ja schon wieder raus!
Ich werde sowieso nicht mehr allzuviel an den Skripten machen. Das Meiste ist geschehen.
Ein paar kosmetische Sachen noch, vllt. hier und da ein paar Anpassungen in der Logik.
Aber es ist genug Puffer drin, um die farbigen Skripte auf 250 KB und die blauweissen auf 200 KB zu begrenzen.
So... und ich möchte das nun mal drin haben mit TV-Karten und anderen besonderen Laufwerken, Joysticks usw.
Nochmal... was irgend jemand mit dem Skript macht, ist mir egal.
Des Weiteren sind in der For_Normal_Users.zip auch viele Einzelteile drin.
Wer will und in Powershell bewandert ist, kann sich die Einzelteile ja selbst zusammen basteln
oder die großen Skripte verändern.

Ich überlege, ob ich diese mit roten Pfeilen markierte Zeile mit hinzunehme. Ist ja kein großer Akt...
1732953934395.png
 

Anhänge

  • For_Normal_Users.zip
    650,3 KB · Aufrufe: 7
Zuletzt bearbeitet:
Mit dem neuen Text kann man leben! Auf die Funktion hat das keinen Einfluss, es ist nur Kosmetik.

1732968157223.png
 

Anhänge

  • For_Normal_Users.zip
    642,4 KB · Aufrufe: 7
Ein bisschen Spielerei wird ja wohl noch erlaubt sein oder?
1733078980568.png

Aktiviert sieht es dann so aus:
1733079011496.png
 

Anhänge

  • Navis_Web-Cams_Digital-Cams_Scanner_Erfassung_TEST_blauweiss.zip
    4,2 KB · Aufrufe: 5
  • Danke!
Reaktionen: JCR
So
Ich habe noch etwas in der Kosmetik der Texte für die Datenträgererfassung verändert. So macht es mehr Sinn.
Und ich denke mal... viel besser kann man das nicht formulieren. Denn der Text muss ja auch in eine Zeile passen, soweit dies möglich ist und sinngemäß bleibt. Und mehr als 6 Zeilen wollte ich nicht oben drüber haben!
Wenn man nämlich mal mehr als 18 Datenträger hat, passt das nicht mehr auf eine Seite.
Siehe Bild
1733115778344.png



Im Bereich der WEB-Cams ist es jetzt auch erkennbar ob die WEB-Cam aktiv ist oder nicht.
Dies wird über laufende Prozesse ermittelt.
Des Weiteren habe ich noch eine Sicherheitsbarriere eingebaut.
Bei den Windows Apps if (Test-Path "$SYSTEMDRIVE\Program Files\WindowsApps") {
Wenn das Verzeichnis nicht vorhanden ist werden auch keine Windows Apps angezeigt.
Genauso bei den System Apps, if (Test-Path "$SYSTEMRoot\SystemappsApps") {
Wenn das Verzeichnis nicht vorhanden nicht vorhanden ist, werden
auch keine System Apps angezeigt.
Es wird jeweils eine Meldung dazu ausgegeben.
Es kann also das Skript auch auf Computern mit älteren Windows Versionen bzw. Server Versionen ausgeführt werden.
Genaueres werde ich aber noch mit meiner Server Version antesten.

Die überarbeiteten Schnelltestskripte sind

Alle_Laufwerke_allgemein_blauweiss_gesamt_Erfassung.ps1
Alle_Laufwerke_allgemein_bunt_gesamt_Erfassung.ps1

Navis_Web-Cams_Digital-Cams_Scanner_Erfassung_TEST_blauweiss.ps1
Navis_Web-Cams_Digital-Cams_Scanner_Erfassung_TEST_bunt.ps1

und für die Tests mit den System und Windows Apps gibt es neue Schnelltestskripte
Test_System_Apps_und_Windows_Apps_Blauweiss.ps1 und
Test_System_Apps_und_Windows_Apps_Bunt.ps1

So ein Mistbock:
Wenn die Web-Cam in einem Notebook aktiv ist wird mir auf einmal bei den besonderen Laufwerken ein Bandlaufwerk also Streamer angezeigt. Das passiert deshalb, weil ein Streaming Dienst für WEB-Cams aktiviert wird.
Also habe ich die Logik für Bandlaufwerke nochmals anpassen müssen.
Die Logik sagt jetzt aus...
Code:
} elseif (($laufwerk.Description -like "*Tape*" -or
                  $laufwerk.Description -like "*Band*" -or          
                  $laufwerk.Description -like "*Magnetband*" -or
                  $laufwerk.Description -like "*MagnetTape*" -or
                  $laufwerk.Description -like "*Magnet-Band*" -or
                  $laufwerk.Description -like "*Magnet-Tape*" -or
                  $laufwerk.Description -like "*Stream*" -or
                  $laufwerk.Name -like "*Tape*" -or
                  $laufwerk.Name -like "*Band*" -or
                  $laufwerk.Name -like "*MagnetBand*" -or
                  $laufwerk.Name -like "*MagnetTape*" -or
                  $laufwerk.Name -like "*Magnet-Band*" -or
                  $laufwerk.Name -like "*Stream*") -and
                  $laufwerk.Description -notlike "*Streaming Service*" -and
                  $laufwerk.Name -notlike "*Streaming Service*") {
Was nichts anderes bedeutet, dass im Namen oder in der Beschreibung nichts mit Streaming Service stehen darf.
Ich hoffe das reicht so...

Neue Kosmetik um kurz vor Sechs
 

Anhänge

  • For_Normal_Users.zip
    643,3 KB · Aufrufe: 1
Zuletzt bearbeitet:
Anzeige
Oben