Bitlocker über Package aktivieren

Antworten
HaKp
Beiträge: 33
Registriert: 02. Jul 2014, 08:29
Kontaktdaten:

Bitlocker über Package aktivieren

Beitrag von HaKp » 28. Feb 2018, 11:26

Hallo zusammen,

hat schon jemand Erfahrung mit dem Rollout von Bitlocker sammeln können?

Werde es wohl in den nächsten Wochen so paketieren müssen, sodass die Verschlüsselung auf allen Clients automatisch aktiviert wird.
Empirum V18.0 / Windows Server 2012 R2 / SQL Server 2012 Standard

PetCh01

Re: Bitlocker über Package aktivieren

Beitrag von PetCh01 » 06. Mär 2018, 10:06

Haben es mit einem Mix aus VBS (Technet),GPO und Paket (Powershell) ausgerollt.
Wollte es erst rein über Powershell machen, aber die MUI Fähigkeit Werte auszulesen funktioniert nicht korrekt.

HaKp
Beiträge: 33
Registriert: 02. Jul 2014, 08:29
Kontaktdaten:

Re: Bitlocker über Package aktivieren

Beitrag von HaKp » 16. Mär 2018, 10:35

Moin,

vielen Dank für die Rückinfo.

Kannst du mir hierzu nähere Informationen nennen oder eventuell sogar deine Setup.inf posten? :) Wäre super hilfreich.
Empirum V18.0 / Windows Server 2012 R2 / SQL Server 2012 Standard

f48614
Beiträge: 223
Registriert: 24. Apr 2007, 14:38
Kontaktdaten:

Re: Bitlocker über Package aktivieren

Beitrag von f48614 » 16. Mär 2018, 13:10

Hallo,

bei mir läuft die Installation in zwei Schritten. Vielleicht kann man mit dem richtigen OS-Template sich den ersten Schritt sparen.

[Step1]
call bdehdcfg.exe -target default -quiet
cmd.exe /c shutdown -r -f
abort Bitlocker Partition created or check AC power.
[Step2]
call cmd.exe /c manage-bde.exe -tpm -TakeOwnership %langezufallzahl% > "%Temp%\TPM.txt"
call cmd.exe /c manage-bde.exe -on C: -TPMAndPIN %defaultPIN% -RecoveryPassword -SkipHardwaretest -UsedSpaceOnly

Gruß
Thomas
Empirum v18.0 + EPE 4.7.1
Testsystem Empirum v18.0

SRO
Beiträge: 17
Registriert: 23. Jan 2018, 13:38
Kontaktdaten:

Re: Bitlocker über Package aktivieren

Beitrag von SRO » 22. Mär 2018, 12:04

Bei uns werden die Geräte direkt nach der OS und Softwareinstallation verschlüsselt und der Wiederherstellungskey im ADObjekt abgelegt. Das läuft wie folgt:

Du benötigst Das Bitlocker Swiss Army Knife von Stéphane vg
https://gallery.technet.microsoft.com/s ... s-a4777303

Eine GPO mit den benötigten Einstellungen für Bitlocker:
Bei uns:
BitLocker-Wiederherstellungsinformationen in Active Directory-Domänendiensten speichern
Verschlüsselungsmethode und Verschlüsselungsstärke für Laufwerke
Festlegen, wie BitLocker-geschützte Betriebssystemlaufwerke wiederhergestellt werden können
Minimale PIN-Länge für Systemstart konfigurieren
Sicheren Start für Integritätsüberprüfung zulassen
TPM-Plattformvalidierungsprofile

Das Feature Bitlocker-Wiederherstellungskennwort-Viewer muss dann auf dem jeweiligen AD Server noch aktiviert werden.

Nach der Verschlüsselung findet der Anwender im Startmenü einen Link zum Ändern der Pin.

Bei der Setup.inf musst dann halt noch die Sektion [Ecryption] mit dem verschlüsselten Startpin hinterlegen, die habe ich entfernt.

Code: Alles auswählen

[Product]
; ReplaceEnv <Variable>

#Set:Product, DONTDELETE 
#Set:DeleteProduct, DELETE

[Set:Product]
; 1:, %App%, CREATE DIRECTORY CASCADED, 0
MkDir "%temp%\Bitlocker\"

; Prüft ob das System entschlüsselt ist
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {(&'BitLockerSAK' -GetEncryptionState).EncryptionState} > %temp%\Bitlocker\CurrentEncryptionState.txt"
WaitUntilFileExists  "%temp%\Bitlocker\CurrentEncryptionState.txt" ,5
Set EncryptionState=ReadTextFile ("%temp%\Bitlocker\CurrentEncryptionState.txt")
Set EncryptionState=Uppercase(%EncryptionState%)
If  %EncryptionState%<>FULLYDECRYPTED Then EncryptionState Else StartDriveEncryption EndIf

[StartDriveEncryption]

; Prüfe ob ein TPM-Module vorhanden ist.
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'BitlockerSAK' -IsTPMEnabled} > %temp%\Bitlocker\IsTPMEnabled.txt"
WaitUntilFileExists  "%temp%\Bitlocker\IsTPMEnabled.txt" ,5
Set IsTPMEnabled=ReadTextFile ("%temp%\Bitlocker\IsTPMEnabled.txt")
Set IsTPMEnabled=Uppercase(%IsTPMEnabled%)
If  %IsTPMEnabled%<>TRUE Then TPMNotEnabled EndIf
ErrorLogMsg [Info] Ein TPM ist vorhanden

; Prüfe ob das TPM-Module aktiv ist
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'BitlockerSAK' -IsTPMActivated} > %temp%\Bitlocker\IsTPMActivated.txt"
WaitUntilFileExists  "%temp%\Bitlocker\IsTPMActivated.txt" ,5
Set IsTPMActivated=ReadTextFile ("%temp%\Bitlocker\IsTPMActivated.txt")
Set IsTPMActivated=Uppercase(%IsTPMActivated%)
If  %IsTPMActivated%<>TRUE Then TPMNotActivated EndIf
ErrorLogMsg [Info] Das TPM ist aktiviert

; Prüfe den Besitz des TPM-Modules
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'BitlockerSAK' -IsTPMOwned} > %temp%\Bitlocker\IsTPMOwned.txt"
WaitUntilFileExists  "%temp%\Bitlocker\IsTPMOwned.txt" ,5
Set IsTPMOwned=ReadTextFile ("%temp%\Bitlocker\IsTPMOwned.txt")
Set IsTPMOwned=Uppercase(%IsTPMOwned%)
If  %IsTPMOwned%<>TRUE Then TPMNotOwned EndIf
ErrorLogMsg [Info] Das TPM ist im Besitz

; Prüft ob das System entschlüsselt ist
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {(&'BitLockerSAK' -GetEncryptionState).EncryptionState} > %temp%\Bitlocker\CurrentEncryptionState.txt"
WaitUntilFileExists  "%temp%\Bitlocker\CurrentEncryptionState.txt" ,5
Set EncryptionState=ReadTextFile ("%temp%\Bitlocker\CurrentEncryptionState.txt")
Set EncryptionState=Uppercase(%EncryptionState%)
If  %EncryptionState%<>FULLYDECRYPTED Then EncryptionState EndIf
ErrorLogMsg [Info] Das System ist entschlüsselt

; Prüft ob Schlüsselschutzvorrichtungen vorhanden sind
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'BitLockerSAK' -GetKeyProtectorIds} > %temp%\Bitlocker\GetKeyProtectorIds.txt"
WaitUntilFileExists  "%temp%\Bitlocker\GetKeyProtectorIds.txt" ,5
Set GetKeyProtectorIds=ReadTextFile ("%temp%\Bitlocker\GetKeyProtectorIds.txt")
If  %GetKeyProtectorIds%<>"" Then ResetKeyProtectors EndIf
If  %GetKeyProtectorIds%<>"" Then ResetKeyProtectorsFailed EndIf
ErrorLogMsg [Info] Es ist keine Schlüsselschutzvorrichtungen vorhanden

; Setzen des Wiederherstellungskennwortes für das System
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {((&'Add-BitLockerKeyProtector' -MountPoint %systemdrive% -RecoveryPasswordProtector).KeyProtector | Where-Object {$_.KeyProtectorType -eq 'RecoveryPassword'}).KeyProtectorId} > %temp%\Bitlocker\RecoveryPasswordProtectorId.txt"
WaitUntilFileExists  "%temp%\Bitlocker\RecoveryPasswordProtectorId.txt" ,5
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {(&'Get-Content' -Path '%temp%\Bitlocker\RecoveryPasswordProtectorId.txt') -match '\{[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\}'} > %temp%\Bitlocker\isProtectorIdGUID.txt"
WaitUntilFileExists  "%temp%\Bitlocker\isProtectorIdGUID.txt" ,5
Set RecoveryPasswordProtectorId=ReadTextFile ("%temp%\Bitlocker\RecoveryPasswordProtectorId.txt")
Set RecoveryPasswordProtectorId=Uppercase(%RecoveryPasswordProtectorId%)
Set isProtectorIdGUID=ReadTextFile ("%temp%\Bitlocker\isProtectorIdGUID.txt")
Set isProtectorIdGUID=Uppercase(%isProtectorIdGUID%)
If  %isProtectorIdGUID%<>TRUE Then SetRecoveryPasswordProtectorFailed EndIf
ErrorLogMsg [Info] Das Wiederherstellungskennwort wurde gesetzt

; Sichern des Wiederherstellungskennwortes im AD
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {((&'Backup-BitLockerKeyProtector' -MountPoint %systemdrive% -KeyProtectorId '%RecoveryPasswordProtectorId%').KeyProtector | Where-Object {$_.KeyProtectorType -eq 'RecoveryPassword'}).KeyProtectorId} > %temp%\Bitlocker\BackupRecoveryPasswordProtector.txt"
WaitUntilFileExists  "%temp%\Bitlocker\BackupRecoveryPasswordProtector.txt" ,5
Set BackupRecoveryPasswordProtector=ReadTextFile ("%temp%\Bitlocker\BackupRecoveryPasswordProtector.txt")
Set BackupRecoveryPasswordProtector=Uppercase(%BackupRecoveryPasswordProtector%)
If  %BackupRecoveryPasswordProtector%<>%RecoveryPasswordProtectorId% Then BackupRecoveryPasswordProtectorFailed EndIf
ErrorLogMsg [Info] Das Wiederherstellungskennwort wurde ins AD gesichert

; Setzen des Standard BitLocker-Pin
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {((&'Add-BitLockerKeyProtector' -MountPoint %systemdrive% -Pin (ConvertTo-SecureString '%PIN%' -AsPlainText -Force) -TPMandPinProtector).KeyProtector | Where-Object {$_.KeyProtectorType -eq 'TpmPin'}).KeyProtectorId} > %temp%\Bitlocker\TPMandPinProtector.txt"
WaitUntilFileExists  "%temp%\Bitlocker\TPMandPinProtector.txt" ,5
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {(&'Get-Content' -Path '%temp%\Bitlocker\TPMandPinProtector.txt') -match '\{[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\}'} > %temp%\Bitlocker\isPINProtectorIdGUID.txt"
WaitUntilFileExists  "%temp%\Bitlocker\isPINProtectorIdGUID.txt" ,5
Set TPMandPinProtector=ReadTextFile ("%temp%\Bitlocker\TPMandPinProtector.txt")
Set TPMandPinProtector=Uppercase(%TPMandPinProtector%)
Set isPINProtectorIdGUID=ReadTextFile ("%temp%\Bitlocker\isPINProtectorIdGUID.txt")
Set isPINProtectorIdGUID=Uppercase(%isPINProtectorIdGUID%)
If  %isPINProtectorIdGUID%<>TRUE Then SetTPMandPinProtectorFailed EndIf
ErrorLogMsg [Info] Der PIN wurde gesetzt

; BitLocker aktivieren
CallHidden %systemroot%\System32\manage-bde.exe -protectors -enable %systemdrive%
CallHidden %systemroot%\System32\manage-bde.exe -on %systemdrive%
ErrorLogMsg [Info] Das System ist für die Verschlüsselung vorbereitet und wird nach einen Neustart verschlüsselt
CallHidden shutdown -r -t 10
AbortReboot INFO: Das System ist für die Verschlüsselung vorbereitet und wird nach einen Neustart verschlüsselt

[TPMNotEnabled]
Abort ERROR: Kein TPM vorhanden.

[TPMNotActivatable]
Abort ERROR: TPM konnte nicht aktiviert werden

[TPMcannotTakeOwnerShip]
Abort ERROR: konnte Besitz des TPMs nicht übernehmen

[TPMNotActivated]
If  DoesFileExist("%temp%\Bitlocker\tryTPMActivation.txt") == "1" Then TPMNotActivatable EndIf
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'Initialize-Tpm'} > %temp%\Bitlocker\tryTPMActivation.txt"
CallHidden shutdown -r -t 5
AbortReboot INFO: Versuche das TPM zu aktivieren 

[TPMNotOwned]
If  DoesFileExist("tryTakeTPMOwnership.txt") == "1" Then TPMcannotTakeOwnerShip EndIf
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'Initialize-Tpm'} > %temp%\Bitlocker\tryTakeTPMOwnership.txt"
CallHidden shutdown -r -t 5
AbortReboot INFO: Versuche das TPM zurückzusetzten 

[EncryptionState]
If %EncryptionState% == FULLYENCRYPTED       Then DriveFullyEncrypted       EndIf
If %EncryptionState% == ENCRYPTIONINPROGRESS Then DriveEncryptionInProgress EndIf
If %EncryptionState% == ENCRYPTIONPAUSED     Then DriveEncryptionPaused EndIf
If %EncryptionState% == DECRYPTIONPAUSED     Then DriveDecryptionPaused EndIf
If %EncryptionState% == DECRYPTIONINPROGRESS Then DriveDecryptionInProgress EndIf
If %EncryptionState% == FULLYDECRYPTED       Then DriveFullyDecrypted EndIf

[DriveFullyEncrypted]
ErrorLogMsg [Info] Das Laufwerk wurde erfolgreich verschlüsselt

[DriveEncryptionInProgress]
For Counter,0,100,1,"CheckEncryptionProgress"
If  %EncryptionProgress%<>100 Then DriveEncryptionInProgress Else DriveFullyEncrypted EndIf

[DriveDecryptionInProgress]
If  %EncryptionProgress%<>0 Then DriveDecryptionInProgress Else DriveFullyDecrypted EndIf
For Counter,100,0,-1,"CheckDecryptionProgress"

[CheckEncryptionProgress]
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {(&'BitLockerSAK' -GetEncryptionState).CurrentEncryptionProgress} > %temp%\Bitlocker\CurrentEncryptionProgress.txt"
WaitUntilFileExists  "%temp%\Bitlocker\CurrentEncryptionProgress.txt" ,5
Set EncryptionProgress=ReadTextFile ("%temp%\Bitlocker\CurrentEncryptionProgress.txt")
Set EncryptionProgress=Uppercase(%EncryptionProgress%)
Set Counter=%EncryptionProgress%
ErrorLogMsg [Info] Verschlüsselt (Prozent): %EncryptionProgress%
Sleep 60000

[CheckDecryptionProgress]
-Sleep 60000
-ErrorLogMsg [Info] Verschlüsselt (Prozent): %EncryptionProgress%
-Set Counter=%EncryptionProgress%
-Set EncryptionProgress=Uppercase(%EncryptionProgress%)
-Set EncryptionProgress=ReadTextFile ("%temp%\Bitlocker\CurrentEncryptionProgress.txt")
-WaitUntilFileExists  "%temp%\Bitlocker\CurrentEncryptionProgress.txt" ,5
-CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {(&'BitLockerSAK' -GetEncryptionState).CurrentEncryptionProgress} > %temp%\Bitlocker\CurrentEncryptionProgress.txt"

[DriveFullyDecrypted]
-ErrorLogMsg [Info] Das Laufwerk wurde erfolgreich entschlüsselt

[DriveEncryptionPaused]
Abort ERROR: Die Laufwerksverschlüsselung ist gerade pausiert

[DriveDecryptionPaused]
-Abort ERROR: Die Laufwerksentschlüsselung ist gerade pausiert

[ResetKeyProtectors]
ErrorLogMsg [Info] versuche Schlüsselschutzvorrichtungen zurück zu setzten
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'Disable-BitLocker' -MountPoint %systemdrive%} > %temp%\Bitlocker\Disable-BitLocker.txt"
CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {&'BitLockerSAK' -GetKeyProtectorIds} > %temp%\Bitlocker\GetKeyProtectorIds.txt"
Set GetKeyProtectorIds=ReadTextFile ("%temp%\Bitlocker\GetKeyProtectorIds.txt")

[ResetKeyProtectorsFailed]
Abort ERROR: Schlüsselschutzvorrichtungen konnten nicht zurück gesetzt werden

[SetRecoveryPasswordProtectorFailed]
Abort ERROR: Wiederherstellungskennwort konnten nicht gesetzt werden

[BackupRecoveryPasswordProtectorFailed]
Abort ERROR: Sichern des Wiederherstellungskennwort im AD ist gescheitert

[SetTPMandPinProtectorFailed]
Abort ERROR: PIN konnten nicht gesetzt werden

[Set:DeleteProduct]
; Prüft ob das System entschlüsselt ist
If  %EncryptionState%<>FULLYDECRYPTED Then EncryptionState Else DriveFullyDecrypted EndIf
-Set EncryptionState=Uppercase(%EncryptionState%)
-Set EncryptionState=ReadTextFile ("%temp%\Bitlocker\CurrentEncryptionState.txt")
-WaitUntilFileExists  "%temp%\Bitlocker\CurrentEncryptionState.txt" ,5
-CallHidden powershell -ExecutionPolicy Unrestricted -OutputFormat Text -WindowStyle Hidden -command "& {(&'BitLockerSAK' -GetEncryptionState).EncryptionState} > %temp%\Bitlocker\CurrentEncryptionState.txt"
-Call %systemroot%\System32\manage-bde.exe -off %systemdrive%

[Shell:Product]
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Bitlocker Pin ändern.lnk,%windir%\System32\bdechangepin.exe,,%windir%\System32,,"%windir%\System32\bdechangepin.exe",0,-1,0


HaKp
Beiträge: 33
Registriert: 02. Jul 2014, 08:29
Kontaktdaten:

Re: Bitlocker über Package aktivieren

Beitrag von HaKp » 04. Apr 2018, 15:26

Moin zusammen,

habe es leider aus zeitlichen Gründen nicht eher geschafft mich zu melden. Aber vielen Dank für eure detaillierten Posts! :)

Ich setze mich dann mal in den nächsten Tagen mit eurem Input an die nächste Setup.inf :P
Empirum V18.0 / Windows Server 2012 R2 / SQL Server 2012 Standard

PetCh01

Re: Bitlocker über Package aktivieren

Beitrag von PetCh01 » 09. Apr 2018, 12:52

SRO hat geschrieben:Bei uns werden die Geräte direkt nach der OS und Softwareinstallation verschlüsselt und der Wiederherstellungskey im ADObjekt abgelegt. Das läuft wie folgt:

Du benötigst Das Bitlocker Swiss Army Knife von Stéphane vg
https://gallery.technet.microsoft.com/s ... s-a4777303
....
[/code]
Habe ich ähnlich gelöst, jedoch noch mit dem vbs da multilang bei mir und powershell falsche outputs geworfen hat.
Ich werde deinen Code mal prüfen ob das bei uns funktioniert.

(Falscher Output = OS komplettsprache auf zb. CZ, es wirft dann kein "BitlockerEncryptionInProgress" sondern irgendwas in Landessprache, was nicht mit Powershell rückwärts prüfbar war (in meinen Tests) die Abfragen ergaben falsche true and false Ergebnisse.

HaKp
Beiträge: 33
Registriert: 02. Jul 2014, 08:29
Kontaktdaten:

Re: Bitlocker über Package aktivieren

Beitrag von HaKp » 09. Apr 2018, 17:10

Moin,

ich habe mein Package nun auch so gut wie fertig.

Genutzt habe ich aber folgenden Befehl für die Abfrage, ob das Notebook im Akku- oder Netzbetrieb ist (Benötigt für HDD Vorbereitung):

Code: Alles auswählen


Callhidden cmd /c WMIC Path Win32_Battery Get BatteryStatus >"%BatteryStatusLog%"

;## In der Logdatei ist 1 = Akkubetrieb // 2 = Netzteil

If DoesTextInFileExist ("2", "%BatteryStatusLog%") == "1" Then "Start" Else "Abort" EndIf

Empirum V18.0 / Windows Server 2012 R2 / SQL Server 2012 Standard

CMoehlmann
Beiträge: 22
Registriert: 28. Jul 2015, 10:39
Kontaktdaten:

Re: Bitlocker über Package aktivieren

Beitrag von CMoehlmann » 29. Jan 2019, 14:10

Moin, läuft das bei euch unter Windows 10 mit aktiver UAC? Die Powershell-Aufrufe und die manage-bde müssen ja mit erhöhten Rechten ausgeführt werden. Hatte versucht das so zu lösen, in der PS ISE funktioniert das auch wunderbar, nur im Paket bzw. Packageeditor nicht. BSP:

Code: Alles auswählen

callhidden powershell -OutputFormat Text -WindowStyle Hidden -command "& {Start-Process -filepath PowerShell -ArgumentList 'Import-Module C:\bitlocker_tmp\BitLockerSAK.ps1;BitlockerSAK -IsTPMEnabled > C:\Bitlocker_tmp\IsTPMEnabled.txt' -Verb RunAs}"

SRO
Beiträge: 17
Registriert: 23. Jan 2018, 13:38
Kontaktdaten:

Re: Bitlocker über Package aktivieren

Beitrag von SRO » 21. Feb 2019, 15:25

Die Installation wird doch im Systemkontext ausgeführt, also viel höhere Rechte gibbet da net.
Wie hast du denn das Packaging Center gestartet?

...und UAC ist aus

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7599
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Bitlocker über Package aktivieren

Beitrag von Hendrik_Ambrosius » 21. Feb 2019, 23:16

Ich habe neulich mal eine einfache passwortbasierte Bitlocker Verschlüsselung zu gescriptet:

setup.inf-Auszug:
[Set:Installation]
CallHidden Powershell.exe -ExecutionPolicy Unrestricted -Command "%Src%\bitlocker-activation.ps1"

bitlocker-activation.ps1
$SecureString = ConvertTo-SecureString "Matrix42!!!" -AsPlainText -Force
Enable-BitLocker -MountPoint "C:" -EncryptionMethod Aes256 -UsedSpaceOnly -PasswordProtector $SecureString
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

Antworten

Zurück zu „Paketierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 23 Gäste