Jump to content

ZippiScrippi

Members
  • Gesamte Inhalte

    8
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von ZippiScrippi

  1. Ok, dass hatte ich so noch nicht betrachtet. Bringt mich aber erstmal weiter. Danke.
  2. Hi Leute, ich habe ein neues Thema, Aktivieren von Bit-Locker auf Win10 Geräten mit Powershell 7.5.2 64 Bit. Die Geräte, um die es geht, sind ebenfalls alle 64 Bit Geräte mit Windows 10. Der Code zur Aktivierung, erst TPM auf Vorhanden sein prüfen, wenn ok, dann Enable Bit-Locker: $CheckTPM=(Get-Tpm).TpmPresent Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -TpmProtector Danach erhalte ich "Bit-Locker enabled" - als return code. Später, nach einem Reboot lässt sich auch der TPM Schlüssel abfragen - auch ok. Das funktioniert an einer bestimmten Geräteserie mit Win10 PCs einwandfrei. Allerdings nicht an einigen anderen Geräten nicht, die haben alle Win10 und einen funktionierenden TPM-Chip. Wenn ich hier den Code wie oben beschrieben ausführe, erhalte ich auch "Bit-Locker enabled" - als return code. Frage ich später - auch nach einem Reboot - den Status nochmal ab - ist Bit-Locker nicht aktiv. Das Bios ist richtig eingestellt, Clear-TPM, Reboot hilft nicht. Initialize TPM ebenfalls nicht. Was dann ging, war folgender Aufruf (mit späterer Auswertung): $encryptionMethod = "xts_aes256" manage-bde -on C: -SkipHardwareTest -EncryptionMethod $encryptionMethod -RecoveryPassword Bei einer späteren Abfrage ist es dann auch aktiv: manage-bde -status C: Größe: 238,01 GB BitLocker-Version: 2.0 Konvertierungsstatus: Vollständig verschlüsselt Verschlüsselt (Prozent): 100,0 % Verschlüsselungsmethode: XTS-AES 256 Schutzstatus: Der Schutz ist aktiviert. Sperrungsstatus: Entsperrt ID-Feld: Unbekannt Schlüsselschutzvorrichtungen: Numerisches Kennwort TPM Jetzt die Frage der Fragen: Warum geht das nicht auf allen Geräten mit Enable Bit-Locker?
  3. Hi Leute, shame on me. Ich habe den Fehler gefunden. In einer anderen Ecke, die ich zwar nicht bearbeitet habe, habe ich wohl versehentlich die Datei in der Var $Reboot kaput gemacht. Statt "C:\Test\Reboot.txt" stand dort "C:\Test\Reboot" So geht es natürlich gar nicht. Aber der Fehler ist gefunden. Sorry und Danke.
  4. Ok, aber es ist nichts besonders mit dem Code: $Reboot="C:\Test\Reboot.txt" IF (Test-Path -Path $Reboot) { Write-Log "INSTALLATION FINISHED - REBOOT ALREADY DONE" Do something with the file Reboot.txt... } Das Problem ist, dass nach dem ersten Start der ISE unter Windows 11 die Abfrage true ergibt und dann die Funktion ausgeführt wird - was so nicht sein soll. Es wird dann eine Meldung wegen der Exception eingeblendet, hier kann ich z.B. nein wählen - was ich dann mache. Dann starte ich das Skript in ISE erneut, dieses Mal erfolgt die Abfrage ohne Fehler, die Funktion wird nicht aufgerufen. Wenn ich das Skript in der endgültigen Umgebung laufen lasse, tritt der oben genannte Fehler immer auf...
  5. Hallo Leute, gestern habe ich meinem PC, auf dem ich mit Powershell Skripte erstelle, auf Windows 11 umgestellt. Seit dem habe ich folgendes Problem: Ich habe ein Skript, das ein Pfad zu einer Datei prüft, mittels IF (Test-Path -Path $Datei) ... Das Skript bearbeite ich aktuell und führe es mit ISE als Administrator aus. Das war bisher kein Problem, nur wenn die Datei vorhanden war, wurde die Funktion aufgerufen - so wie es sein soll. Seit ich mit Win 11 und PS 5.1 arbeite, wird an dieser Stelle nicht mehr die Datei geprüft, sondern nur der Pfad. Damit geht das Skript in die Funktion und scheitert, weil die Datei zu Bearbeitung nicht gefunden werden kann. Und jetzt wird es richtig Kurios: Wenn der Fehler nach dem Start der ISE Umgebung auftritt und ich es dann ein zweites Mal ausführe, geht es. Ich hatte es dann statt -Path auch mal mit -LiteralPath versuche, dies half aber nicht... auch nicht nur Test-Path. Was ist da los? Hat das schon mal jemand anders vorgefunden? Danke vorab für Eure Hilfe. Infos zur Version: 'Name Value ---- ----- PSVersion 5.1.26100.6584 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.26100.6584 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1
  6. Hi Leute, ich habe noch eine weitere Abfrage, bei der eine Änderung durchgeführt werden soll. Das funktioniert auch alles. Aber nun habe ich das Problem, dass die Ausgabedatei entweder wieder wie ein String formatiert ist - alles hintereinander, oder nur Teildaten drin stehen. Das mit dem Hintereinander ist ungünstig, auch dann, wenn es dennoch funktioniert. Andere müssen diese wiedererkennen können... Code - der dazu führt, dass die Ausgabedatei unvollständig ist: $xmlData=[xml](Get-Content -Path $TraceConfigBak -Encoding UTF8) $targetElement=$xmlData.SelectSingleNode("//setting[@name='PlatformNcrLogFiles']") $targetElement.InnerText='C:\Temp\$TODAY$\*.*' $xmlData | Out-File $TraceConfig -Encoding utf8 Gibt dann in der Datei folgendes aus: xml configuration --- ------------- version="1.0" encoding="utf-8" configuration Da das zu wenig ist, habe ich folgende Anweisung verwendet: $xmlData.InnerXml | Out-File $TraceConfig -Encoding utf8 Damit wird die Datei mit allem gewünschten Inhalt erzeugt. Aber eben hintereinander. Muss ich, um die erste Lösung verwenden zu können, noch irgendwas aktualisieren? Danke vorab für Eure Hilfe. Ok, ich habe es. Wenn ich wie folgt speichere, wird die Datei mit dem Umbruch erzeugt: $xmlData.Save($Test) Zwar kann man so nicht speziell UTF8 formatieren, die Datei wird aber dennoch in UTF8 erstellt.
  7. Hi mwiederkehr, das hat geholfen. Vielen Dank. Ich habe leider noch ein Problem, die eingelesene und nun erfolgreich bearbeitete xml, soll am Ende wieder in eine Datei geschrieben werden. Sollte so möglich sein: $xmlData=[xml](Get-Content -Path $TestConfigBak -Encoding UTF8) $xmlData.Save($TestConfigTest) Allerdings wird diese dann, so auch in der Console beim Testen, in einem String, also alles hintereinander und ohne xml Formatierung ausgegeben. Hast Du oder jemand anderes ggf. noch einen Tipp für mich? Vorab vielen Dank für Deine/Eure Hilfe. ---------------------------------------------------- Hi Leute, sorry, nehme ich zurück. Die Datei wird korrekt geschrieben. Habt alle eine coole coding Zeit und nochmal Danke an mwiederkehr - hast mein WE gerettet...
  8. Hi Leute, ich verzweifle gerade an einem xml File. Es soll mittels Powershell mit einem neuen Eintrag erweitert werden. Die Struktur sieht folgendermaßen aus: <userSettings> <Test.Properties.Settings> <setting name="FileParameter" serializeAs="String"> <value>Test</value> </setting> <setting name="AppsToStart" serializeAs="Xml"> <value> <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <string>C:\Test.exe</string> </ArrayOfString> </value> </setting> </Test.Properties.Settings> </userSettings> Die Erweiterung sieht vor, dass eine weitere App unter "setting name=AppsToStart" eingetragen werden soll. Um das "einzuleiten" wird die xml eingelesen, folgend ein neues Element mit Create.Element erstellt - ok so far. Aber wie bekomme ich das nun genau auf die Position? Soll dann so aussehen: <setting name="AppsToStart" serializeAs="Xml"> <value> <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <string>C:\Test.exe</string> <string>C:\Test_II.exe</string> </ArrayOfString> </value> </setting> Es bedarf ja eigentlich nur wenige Zeilen code... $xmlData=[xml](Get-Content -Path $xmlPath -Encoding UTF8) $NewEntry="C:\Test_II.exe" $NewElement=$xmlData.CreateElement("string") $NewElement.InnerText=$NewEntry $targetElement=$xmlData.SelectSingleNode("//userSettings//Test.Properties.Settings//setting[@name='AppsToStart']") $targetElement.AppendChild($NewElement) | Out-Null Ist wohl dicht dran, passt aber noch nicht, weil der Eintrag hinter dem /ArrayOfString und sogar hinter /value eingetragen wird... Was muss ich anders machen, damit der Eintrag an der richtigen Stelle auftaucht? Vorab vielen Dank für Eure Hilfe. Grüße, ZippiScrippi
×
×
  • Neu erstellen...