Verwenden von UEFI-Assemblys & Configuration Manager zum Verwalten von Geräten mit SEMM

Mit dem Feature Surface Enterprise Management Mode (SEMM) von Surface UEFI-Geräten können Administratoren die Konfiguration der Surface UEFI-Einstellungen verwalten und schützen. In den meisten Organisationen wird dieser Prozess durch Erstellen von Windows Installer-Paketen (.msi) mit dem UEFI Configurator-Tool im Surface IT Toolkit erreicht. Diese Pakete werden dann auf den Surface-Clientgeräten ausgeführt oder bereitgestellt, um die Geräte in SEMM zu registrieren und die Konfiguration der Surface UEFI-Einstellungen zu aktualisieren.

Für Organisationen mit Endpoint Configuration Manager gibt es eine Alternative zur Verwendung des Surface UEFI Configurator .msi Prozesses zum Bereitstellen und Verwalten von SEMM. Surface UEFI Manager ist ein einfaches Installationsprogramm, das erforderliche Assemblys für die SEMM-Verwaltung auf einem Gerät verfügbar macht. Wenn Sie diese Assemblys mit Surface UEFI Manager auf einem verwalteten Client installieren, können Sie SEMM über Configuration Manager mit PowerShell-Skripts verwalten, die als Anwendungen bereitgestellt werden. Dadurch entfällt die Notwendigkeit des externen Surface UEFI Configurator-Tools.

Hinweis

Obwohl der in diesem Artikel beschriebene Prozess mit früheren Versionen von Configuration Manager oder anderen Verwaltungslösungen von Drittanbietern funktioniert, wird die Verwaltung von SEMM mit Surface UEFI Manager und PowerShell nur mit current branch of Configuration Manager unterstützt.

Voraussetzungen

Bevor Sie mit dem in diesem Artikel beschriebenen Prozess beginnen, machen Sie sich mit den folgenden Technologien und Tools vertraut:

Wichtig

Außerdem benötigen Sie Zugriff auf das Zertifikat, das Sie zum Sichern von SEMM verwenden möchten. Ausführliche Informationen zu den Anforderungen für dieses Zertifikat finden Sie unter SEMM-Zertifikatanforderungen.

Es ist sehr wichtig, dass dieses Zertifikat an einem sicheren Ort aufbewahrt und ordnungsgemäß gesichert wird. Wenn dieses Zertifikat verloren geht oder nicht mehr verwendet werden kann, ist es nicht möglich, Surface UEFI zurückzusetzen, verwaltete Surface UEFI-Einstellungen zu ändern oder SEMM von einem registrierten Surface-Gerät zu entfernen.

Surface UEFI Manager herunterladen

Die Verwaltung von SEMM mit Configuration Manager erfordert die Installation von Surface UEFI Manager auf jedem Surface-Clientgerät. Sie können Surface UEFI Manager aus der Surface IT-Toolkit-Toolbibliothek herunterladen.

Herunterladen von SEMM-Skripts für Configuration Manager

Nachdem der UEFI-Manager auf dem Surface-Clientgerät installiert wurde, kann SEMM mit PowerShell-Skripts bereitgestellt und verwaltet werden. Rufen Sie Skriptbeispiele aus dem Surface IT Toolkit ab.

Bereitstellen von Surface UEFI Manager

Die Bereitstellung von Surface UEFI Manager ist eine typische Anwendungsbereitstellung. Die Surface UEFI Manager-Installationsdatei ist eine Standardmäßige Windows Installer-Datei, die Sie mit der Option "Standard Quiet" installieren können.

Der Befehl zum Installieren von Surface UEFI Manager lautet wie folgt.

msiexec /i "SurfaceUEFIManagerSetup.msi" /q

Der Befehl zum Deinstallieren von Surface UEFI Manager lautet wie folgt.

msiexec /x {541DA890-1AEB-446D-B3FD-D5B3BB18F9AF} /q

Führen Sie die folgenden Schritte aus, um eine neue Anwendung zu erstellen und in einer Sammlung bereitzustellen, die Ihre Surface-Geräte enthält:

  1. Öffnen Sie Configuration Manager Konsole über den Startbildschirm oder das Startmenü.

  2. Wählen Sie in der unteren linken Ecke des Fensters Softwarebibliothek aus.

  3. Erweitern Sie den Knoten Anwendungsverwaltung der Softwarebibliothek, und wählen Sie dann Anwendungen aus.

  4. Wählen Sie die Schaltfläche Create Anwendung auf der Registerkarte Start am oberen Rand des Fensters aus. Dadurch wird der Create-Anwendungs-Assistent gestartet.

  5. Der Create-Anwendungs-Assistent stellt eine Reihe von Schritten vor:

    • Allgemein : Die Option Informationen zu dieser Anwendung aus Installationsdateien automatisch erkennen ist standardmäßig aktiviert. Im Feld Typ ist windows Installer (.msi Datei) ebenfalls standardmäßig ausgewählt. Wählen Sie Durchsuchen aus, um zu zu navigieren, wählen Sie SurfaceUEFIManagerSetup.msiaus, und wählen Sie dann Weiter aus.

      Hinweis

      Der Speicherort von SurfaceUEFIManagerSetup.msi muss sich auf einer Netzwerkfreigabe befinden und sich in einem Ordner befinden, der keine anderen Dateien enthält. Ein lokaler Dateispeicherort kann nicht verwendet werden.

    • Informationen importieren: Der Create-Anwendungs-Assistent analysiert die .msi-Datei und liest den Anwendungsnamen und den Produktcode. SurfaceUEFIManagerSetup.msi sollte als einzige Datei unter der Zeile Inhaltsdateien aufgeführt werden, wie in Abbildung 1 dargestellt. Wählen Sie Weiter aus, um fortzufahren.

      Informationen aus dem Surface UEFI Manager-Setup werden automatisch analysiert.

      Abbildung 1. Informationen aus dem Surface UEFI Manager-Setup werden automatisch analysiert.

    • Allgemeine Informationen : Sie können den Namen der Anwendung und Informationen zum Herausgeber und der Version ändern oder kommentare auf dieser Seite hinzufügen. Der Installationsbefehl für Surface UEFI Manager wird im Feld Installationsprogramm angezeigt. Das Standardinstallationsverhalten von Install for System ermöglicht Surface UEFI Manager die Installation der erforderlichen Assemblys für SEMM, auch wenn ein Benutzer nicht am Surface-Gerät angemeldet ist. Wählen Sie Weiter aus, um fortzufahren.

    • Zusammenfassung : Die Informationen, die im Schritt Informationen importieren analysiert wurden, und Ihre Auswahl aus dem Schritt Allgemeine Informationen werden auf dieser Seite angezeigt. Wählen Sie Weiter aus, um Ihre Auswahl zu bestätigen und die Anwendung zu erstellen.

    • Status: Zeigt eine Statusanzeige und status an, wenn die Anwendung importiert und der Softwarebibliothek hinzugefügt wird.

    • Abschluss : Eine Bestätigung der erfolgreichen Anwendungserstellung wird angezeigt, wenn der Anwendungserstellungsprozess abgeschlossen ist. Wählen Sie Schließen aus, um den Create-Anwendungs-Assistenten abzuschließen.

Nachdem die Anwendung in Configuration Manager erstellt wurde, können Sie sie an Ihre Verteilungspunkte verteilen und für die Sammlungen einschließlich Ihrer Surface-Geräte bereitstellen. Diese Anwendung installiert oder aktiviert SEMM nicht auf dem Surface-Gerät. Es stellt nur die Assemblys bereit, die für die Aktivierung von SEMM mithilfe des PowerShell-Skripts erforderlich sind.

Wenn Sie die Surface UEFI Manager-Assemblys nicht auf Geräten installieren möchten, die nicht mit SEMM verwaltet werden, können Sie Surface UEFI Manager als Abhängigkeit der SEMM-Configuration Manager-Skripts konfigurieren. Dieses Szenario wird im Abschnitt Deploy SEMM Configuration Manager Scripts weiter unten in diesem Artikel behandelt.

Create oder Ändern der SEMM-Configuration Manager-Skripts

Nachdem die erforderlichen Assemblys auf den Geräten installiert wurden, wird der Prozess der Registrierung der Geräte in SEMM und der Konfiguration von Surface UEFI mit PowerShell-Skripts durchgeführt und als Skriptanwendung mit Configuration Manager bereitgestellt. Diese Skripts können an die Anforderungen Ihrer organization und Umgebung angepasst werden. Beispielsweise können Sie mehrere Konfigurationen für verwaltete Surface-Geräte in verschiedenen Abteilungen oder Rollen erstellen. Laden Sie Beispiele der Skripts für SEMM und Configuration Manager aus dem Surface IT Toolkit herunter.

Es gibt zwei primäre Skripts, die Sie benötigen, um eine SEMM-Bereitstellung mit Configuration Manager durchzuführen:

  • ConfigureSEMM.ps1 : Verfügbar unter Surface-Geräteskripts im Surface IT Toolkit. Verwenden Sie dieses Skript, um Konfigurationspakete für Ihre Surface-Geräte mit den gewünschten Surface UEFI-Einstellungen zu erstellen, um die angegebenen Einstellungen auf ein Surface-Gerät anzuwenden, das Gerät bei SEMM zu registrieren und einen Registrierungsschlüssel festzulegen, mit dem die Registrierung des Geräts in SEMM identifiziert wird.
  • ResetSEMM.ps1 : Verfügbar unter Zusätzliche Surface-Geräteskripts im Surface IT Toolkit. Verwenden Sie dieses Skript, um SEMM auf einem Surface-Gerät zurückzusetzen. Dadurch wird die Registrierung bei SEMM aufgehoben und die Steuerung der Surface UEFI-Einstellungen entfernt.

Die Beispielskripts enthalten Beispiele für das Festlegen von Surface UEFI-Einstellungen und das Steuern von Berechtigungen für diese Einstellungen. Diese Einstellungen können geändert werden, um Surface UEFI zu schützen und die Surface UEFI-Einstellungen entsprechend den Anforderungen Ihrer Umgebung festzulegen. In den folgenden Abschnitten dieses Artikels wird das ConfigureSEMM.ps1 Skripts erläutert, und es werden die Änderungen erläutert, die Sie an das Skript vornehmen müssen, um Ihren Anforderungen gerecht zu werden.

Hinweis

Die SEMM-Configuration Manager-Skripts und die exportierte SEMM-Zertifikatdatei (PFX) sollten in demselben Ordner ohne andere Dateien abgelegt werden, bevor sie Configuration Manager hinzugefügt werden.

Verwalten von USB-Anschlüssen auf unterstützten Geräten

Sie können die dynamische USB-C-Deaktivierung mit einer der folgenden Methoden implementieren:

In den folgenden Abschnitten dieses Artikels wird das ConfigureSEMM.ps1 Skripts erläutert, und es werden die Änderungen erläutert, die Sie an das Skript vornehmen müssen, um Ihren Anforderungen gerecht zu werden.

Angeben von Zertifikat- und Paketnamen

Der erste Bereich des Skripts, den Sie ändern müssen, ist der Teil, der das SEMM-Zertifikat angibt und lädt, sowie die SurfaceUEFIManager-Version sowie die Namen für das SEMM-Konfigurationspaket und das SEMM-Zurücksetzungspaket angibt. Der Zertifikatname und die SurfaceUEFIManager-Version werden in den Zeilen 56 bis 73 im ConfigureSEMM.ps1-Skript angegeben.

56	$WorkingDirPath = split-path -parent $MyInvocation.MyCommand.Definition
57	$packageRoot = "$WorkingDirPath\Config"
58	$certName = "FabrikamSEMMSample.pfx"
59  $DllVersion = "2.26.136.0"
60
61  $certNameOnly = [System.IO.Path]::GetFileNameWithoutExtension($certName)
62  $ProvisioningPackage = $certNameOnly + "ProvisioningPackage.pkg"
63  $ResetPackage = $certNameOnly + "ResetPackage.pkg"
64
65	if (-not (Test-Path $packageRoot))  { New-Item -ItemType Directory -Force -Path $packageRoot }
66	Copy-Item "$WorkingDirPath\$certName" $packageRoot
67	
68	$privateOwnerKey = Join-Path -Path $packageRoot -ChildPath $certName
69	$ownerPackageName = Join-Path -Path $packageRoot -ChildPath $ProvisioningPackage
70	$resetPackageName = Join-Path -Path $packageRoot -ChildPath $ResetPackage
71	
72	# If your PFX file requires a password then it can be set here, otherwise use a blank string.
73	$password = "1234" 

Ersetzen Sie den Wert FabrikamSEMMSample.pfx für die variable $certName durch den Namen Ihrer SEMM-Zertifikatdatei in Zeile 58. Das Skript erstellt ein Arbeitsverzeichnis (mit dem Namen Config) in dem Ordner, in dem sich Ihre Skripts befinden, und kopiert dann die Zertifikatdatei in dieses Arbeitsverzeichnis.

Besitzerpaket und Zurücksetzungspaket werden auch im Verzeichnis Config erstellt und enthalten die Konfiguration für Surface UEFI-Einstellungen und Berechtigungen, die vom Skript generiert wurden.

Ersetzen Sie in Zeile 73 den Wert der variablen $password von 1234 in das Kennwort für Ihre Zertifikatdatei. Wenn kein Kennwort erforderlich ist, löschen Sie den Text 1234 .

Hinweis

Die letzten beiden Zeichen des Zertifikatfingerabdrucks sind erforderlich, um ein Gerät bei SEMM zu registrieren. Dieses Skript zeigt dem Benutzer diese Ziffern an, sodass der Benutzer oder Techniker diese Ziffern aufzeichnen kann, bevor das System neu gestartet wird, um das Gerät bei SEMM zu registrieren. Das Skript verwendet dazu den folgenden Code in den Zeilen 150-155.

150	# Device owners will need the last two characters of the thumbprint to accept SEMM ownership.
151	# For convenience we get the thumbprint here and present to the user.
152	$pw = ConvertTo-SecureString $password -AsPlainText -Force
153	$certPrint = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
154	$certPrint.Import($privateOwnerKey, $pw, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::DefaultKeySet)
155	Write-Host "Thumbprint =" $certPrint.Thumbprint

Administratoren mit Zugriff auf die Zertifikatdatei (PFX) können den Fingerabdruck jederzeit lesen, indem sie die PFX-Datei in CertMgr öffnen. Gehen Sie wie folgt vor, um den Fingerabdruck mit CertMgr anzuzeigen:

  1. Klicken Sie mit der rechten Maustaste auf die PFX-Datei, und wählen Sie dann Öffnen aus.
  2. Erweitern Sie den Ordner im Navigationsbereich.
  3. Wählen Sie Zertifikate aus.
  4. Klicken Sie im bereich Standard mit der rechten Maustaste auf Ihr Zertifikat, und wählen Sie dann Öffnen aus.
  5. Wählen Sie die Registerkarte Details aus.
  6. Alle oder Nur Eigenschaften müssen im Dropdownmenü Anzeigen ausgewählt werden.
  7. Wählen Sie das Feld Fingerabdruck aus.

Hinweis

Der Name und das Kennwort des SEMM-Zertifikats müssen ebenfalls in diesem Abschnitt des ResetSEMM.ps1 Skripts eingegeben werden, damit Configuration Manager SEMM mit der Deinstallationsaktion vom Gerät entfernen können.

Konfigurieren von Berechtigungen

Die erste Region des Skripts, in der Sie die Konfiguration für Surface UEFI angeben, ist die Region Berechtigungen konfigurieren . Dieser Bereich beginnt in Zeile 210 im Beispielskript mit dem Kommentar #Berechtigungen konfigurieren und fährt mit Zeile 247 fort. Das folgende Codefragment legt zuerst Berechtigungen für alle Surface UEFI-Einstellungen fest, sodass sie nur von SEMM geändert werden können, und fügt dann explizite Berechtigungen hinzu, damit der lokale Benutzer das Surface UEFI-Kennwort, das TPM sowie die Front- und Rückkameras ändern kann.

210	# Configure Permissions
211	foreach ($uefiV2 IN $surfaceDevices.Values) {
212 if ($uefiV2.SurfaceUefiFamily -eq $Device.Model) {
213 Write-Host "Configuring permissions"
214 Write-Host $Device.Model
215 Write-Host "======================="
216
217	# Here we define which "identities" will be allowed to modify which settings
218	#   PermissionSignerOwner = The primary SEMM enterprise owner identity
219	#   PermissionLocal = The user when booting to the UEFI pre-boot GUI
220	#   PermissionSignerUser, PermissionSignerUser1, PermissionSignerUser2 =
221	#     Additional user identities created so that the signer owner
222	#     can delegate permission control for some settings.
223	$ownerOnly = [Microsoft.Surface.IUefiSetting]::PermissionSignerOwner
224	$ownerAndLocalUser = ([Microsoft.Surface.IUefiSetting]::PermissionSignerOwner -bor [Microsoft.Surface.IUefiSetting]::PermissionLocal)
225	
226	# Make all permissions owner only by default
227	foreach ($setting IN $uefiV2.Settings.Values) {
228	$setting.ConfiguredPermissionFlags = $ownerOnly
229	}
230	
231 # Allow the local user to change their own password
232	$uefiV2.SettingsById[501].ConfiguredPermissionFlags = $ownerAndLocalUser
233
234	Write-Host ""
235	 
236	# Create a unique package name based on family and LSV.
237	# We will choose a name that can be parsed by later scripts.
238	$packageName = $uefiV2.SurfaceUefiFamily + "^Permissions^" + $lsv + ".pkg"
239	$fullPackageName = Join-Path -Path $packageRoot -ChildPath $packageName
240	
241	# Build and sign the Permission package then save it to a file.
242	$permissionPackageStream =  $uefiV2.BuildAndSignPermissionPackage($privateOwnerKey, $password, "", $null, $lsv)
243	$permissionPackage = New-Object System.IO.Filestream($fullPackageName, [System.IO.FileMode]::CreateNew, [System.IO.FileAccess]::Write)
244	$permissionPackageStream.CopyTo($permissionPackage)
245	$permissionPackage.Close()
246	}
247	}

Jede $uefiV 2-Variable identifiziert eine Surface UEFI-Einstellung durch Festlegen des Namens oder der ID und konfiguriert dann die Berechtigungen für einen der folgenden Werte:

  • $ownerOnly : Die Berechtigung zum Ändern dieser Einstellung wird nur semm gewährt.
  • $ownerAndLocalUser : Die Berechtigung zum Ändern dieser Einstellung wird einem lokalen Benutzer erteilt, der auf Surface UEFI startet, sowie semm.

Informationen zu den verfügbaren Einstellungsnamen und IDs für Surface UEFI finden Sie im Abschnitt Einstellungsnamen und IDs dieses Artikels.

Konfigurieren von Einstellungen

Die zweite Region des Skripts, in der Sie die Konfiguration für Surface UEFI angeben, ist der Bereich Einstellungen konfigurieren des ConfigureSEMM.ps1 Skripts, in dem konfiguriert wird, ob jede Einstellung aktiviert oder deaktiviert ist. Das Beispielskript enthält Anweisungen zum Festlegen aller Einstellungen auf ihre Standardwerte. Das Skript enthält dann explizite Anweisungen zum Deaktivieren von IPv6 für den PXE-Start und zum Unveränderten des Kennworts für den Surface UEFI-Administrator. Sie finden diese Region beginnend mit dem Kommentar # Einstellungen konfigurieren in Zeile 291 bis Zeile 335 im Beispielskript. Der Bereich wird wie folgt angezeigt.

291	# Configure Settings
292	foreach ($uefiV2 IN $surfaceDevices.Values) {
293 if ($uefiV2.SurfaceUefiFamily -eq $Device.Model) {
294 Write-Host "Configuring settings"
295 Write-Host $Device.Model
296 Write-Host "===================="
297
298	# In this demo, we will start by setting every setting to the default factory setting.
299	# You may want to start by doing this in your scripts
300	# so that every setting gets set to a known state.
301	foreach ($setting IN $uefiV2.Settings.Values) {
302	$setting.ConfiguredValue = $setting.DefaultValue
303	}
304	
305	$EnabledValue = "Enabled"
306 $DisabledValue = "Disabled"
307
308 # If you want to set something to a different value from the default,
309	# here are examples of how to accomplish this.
310	# This disables IPv6 PXE boot by name:
311 $uefiV2.Settings["IPv6 for PXE Boot"].ConfiguredValue = $DisabledValue
312
313 # This disables IPv6 PXE Boot by ID:
314 $uefiV2.SettingsById[400].ConfiguredValue = $DisabledValue
315
316 Write-Host ""
317
318	# If you want to leave the setting unmodified, set it to $null
319	# PowerShell has issues setting things to $null so ClearConfiguredValue()
320	# is supplied to do this explicitly.
321	# Here is an example of leaving the UEFI administrator password as-is,
322	# even after we initially set it to factory default above.
323	$uefiV2.SettingsById[501].ClearConfiguredValue()
324	
325	# Create a unique package name based on family and LSV.
326	# We will choose a name that can be parsed by later scripts.
327	$packageName = $uefiV2.SurfaceUefiFamily + "^Settings^" + $lsv + ".pkg"
328	$fullPackageName = Join-Path -Path $packageRoot -ChildPath $packageName
329	
330	# Build and sign the Settings package then save it to a file.
331	$settingsPackageStream =  $uefiV2.BuildAndSignSecuredSettingsPackage($privateOwnerKey, $password, "", $null, $lsv)
332	$settingsPackage = New-Object System.IO.Filestream($fullPackageName, [System.IO.FileMode]::CreateNew, [System.IO.FileAccess]::Write)
333	$settingsPackageStream.CopyTo($settingsPackage)
334	$settingsPackage.Close()
335	}

Wie bei den Berechtigungen, die im Abschnitt Berechtigungen konfigurieren des Skripts festgelegt wurden, erfolgt die Konfiguration jeder Surface UEFI-Einstellung durch Definieren der Variablen $uefiV 2 . Für jede Zeile, die die Variable $uefiV 2 definiert, wird eine Surface UEFI-Einstellung durch den Einstellungsnamen oder die ID identifiziert, und der konfigurierte Wert ist auf Aktiviert oder Deaktiviert festgelegt.

Wenn Sie die Konfiguration einer Surface UEFI-Einstellung nicht ändern möchten, z. B. um sicherzustellen, dass das Surface UEFI-Administratorkennwort nicht durch die Aktion gelöscht wird, alle Surface UEFI-Einstellungen auf ihre Standardeinstellungen zurückzusetzen, können Sie ClearConfiguredValue() verwenden, um zu erzwingen, dass diese Einstellung nicht geändert wird. Im Beispielskript wird dies in Zeile 323 verwendet, um das Löschen des Surface UEFI-Administratorkennworts zu verhindern, das im Beispielskript durch die Einstellungs-ID 501 identifiziert wird.

Informationen zu den verfügbaren Einstellungsnamen und IDs für Surface UEFI finden Sie im Abschnitt Einstellungsnamen und IDs weiter unten in diesem Artikel.

Registrierungsschlüssel für Einstellungen

Um registrierte Systeme für Configuration Manager zu identifizieren, schreibt das ConfigureSEMM.ps1-Skript Registrierungsschlüssel, die verwendet werden können, um zu identifizieren, dass registrierte Systeme mit dem SEMM-Konfigurationsskript installiert wurden. Diese Schlüssel finden Sie am folgenden Speicherort.

HKLM\SOFTWARE\Microsoft\Surface\SEMM

Das folgende Codefragment in den Zeilen 380-477 wird verwendet, um diese Registrierungsschlüssel zu schreiben.

380	# For Configuration Manager or other management solutions that wish to know what version is applied, tattoo the LSV and current DateTime (in UTC) to the registry:
381	$UTCDate = (Get-Date).ToUniversalTime().ToString()
382	$certIssuer = $certPrint.Issuer
383	$certSubject = $certPrint.Subject
384	
385	$SurfaceRegKey = "HKLM:\SOFTWARE\Microsoft\Surface\SEMM"
386	New-RegKey $SurfaceRegKey
387	$LSVRegValue = Get-ItemProperty $SurfaceRegKey LSV -ErrorAction SilentlyContinue
388	$DateTimeRegValue = Get-ItemProperty $SurfaceRegKey LastConfiguredUTC -ErrorAction SilentlyContinue
389	$OwnershipSessionIdRegValue = Get-ItemProperty $SurfaceRegKey OwnershipSessionId -ErrorAction SilentlyContinue
390	$PermissionSessionIdRegValue = Get-ItemProperty $SurfaceRegKey PermissionSessionId -ErrorAction SilentlyContinue
391	$SettingsSessionIdRegValue = Get-ItemProperty $SurfaceRegKey SettingsSessionId -ErrorAction SilentlyContinue
392	$IsResetRegValue = Get-ItemProperty $SurfaceRegKey IsReset -ErrorAction SilentlyContinue
393	$certUsedRegValue = Get-ItemProperty $SurfaceRegKey CertName -ErrorAction SilentlyContinue
394	$certIssuerRegValue = Get-ItemProperty $SurfaceRegKey CertIssuer -ErrorAction SilentlyContinue
395	$certSubjectRegValue = Get-ItemProperty $SurfaceRegKey CertSubject -ErrorAction SilentlyContinue
396	
397	
398	If ($LSVRegValue -eq $null)
399	{
400	    New-ItemProperty -Path $SurfaceRegKey -Name LSV -PropertyType DWORD -Value $lsv | Out-Null
401	}
402	Else
403	{
404	    Set-ItemProperty -Path $SurfaceRegKey -Name LSV -Value $lsv
405	}
406	
407	If ($DateTimeRegValue -eq $null)
408	{
409	    New-ItemProperty -Path $SurfaceRegKey -Name LastConfiguredUTC -PropertyType String -Value $UTCDate | Out-Null
410	}
411	Else
412	{
413	    Set-ItemProperty -Path $SurfaceRegKey -Name LastConfiguredUTC -Value $UTCDate
414	}
415	
416	If ($OwnershipSessionIdRegValue -eq $null)
417	{
418	    New-ItemProperty -Path $SurfaceRegKey -Name OwnershipSessionId -PropertyType String -Value $ownerSessionIdValue | Out-Null
419	}
420	Else
421	{
422	    Set-ItemProperty -Path $SurfaceRegKey -Name OwnershipSessionId -Value $ownerSessionIdValue
423	}
424	
425	If ($PermissionSessionIdRegValue -eq $null)
426	{
427	    New-ItemProperty -Path $SurfaceRegKey -Name PermissionSessionId -PropertyType String -Value $permissionSessionIdValue | Out-Null
428	}
429	Else
430	{
431	    Set-ItemProperty -Path $SurfaceRegKey -Name PermissionSessionId -Value $permissionSessionIdValue
432	}
433	
434	If ($SettingsSessionIdRegValue -eq $null)
435	{
436	    New-ItemProperty -Path $SurfaceRegKey -Name SettingsSessionId -PropertyType String -Value $settingsSessionIdValue | Out-Null
437	}
438	Else
439	{
440	    Set-ItemProperty -Path $SurfaceRegKey -Name SettingsSessionId -Value $settingsSessionIdValue
441	}
442	
443	If ($IsResetRegValue -eq $null)
444	{
445	    New-ItemProperty -Path $SurfaceRegKey -Name IsReset -PropertyType DWORD -Value 0 | Out-Null
446	}
447	Else
448	{
449	    Set-ItemProperty -Path $SurfaceRegKey -Name IsReset -Value 0
450	}
451	
452	If ($certUsedRegValue -eq $null)
453	{
454	    New-ItemProperty -Path $SurfaceRegKey -Name CertName -PropertyType String -Value $certName | Out-Null
455	}
456	Else
457	{
458	    Set-ItemProperty -Path $SurfaceRegKey -Name CertName -Value $certName
459	}
460	
461	If ($certIssuerRegValue -eq $null)
462	{
463	    New-ItemProperty -Path $SurfaceRegKey -Name CertIssuer -PropertyType String -Value $certIssuer | Out-Null
464	}
465	Else
466	{
467	    Set-ItemProperty -Path $SurfaceRegKey -Name CertIssuer -Value $certIssuer
468	}
469	
470	If ($certSubjectRegValue -eq $null)
471	{
472	    New-ItemProperty -Path $SurfaceRegKey -Name CertSubject -PropertyType String -Value $certSubject | Out-Null
473	}
474	Else
475	{
476	    Set-ItemProperty -Path $SurfaceRegKey -Name CertSubject -Value $certSubject
477	}

Einstellungsnamen und IDs

Um Surface UEFI-Einstellungen oder -Berechtigungen für Surface UEFI-Einstellungen zu konfigurieren, müssen Sie auf jede Einstellung entweder anhand des Einstellungsnamens oder der Einstellungs-ID verweisen. Mit jedem neuen Update für Surface UEFI können neue Einstellungen hinzugefügt werden. Das Ausführen ShowSettingsOptions.ps1 Skripts (von SEMM_Powershell.zip in Surface Tools für IT) enthält Details zu den verfügbaren Einstellungen. Auf dem Computer, auf dem ShowSettingsOptions.ps1 ausgeführt wird, muss Surface UEFI Manager installiert sein, aber das Skript erfordert kein Surface-Gerät.

Bereitstellen von SEMM-Configuration Manager-Skripts

Nachdem Ihre Skripts für die Konfiguration und Aktivierung von SEMM auf dem Clientgerät vorbereitet wurden, besteht der nächste Schritt darin, diese Skripts als Anwendung in Configuration Manager hinzuzufügen. Stellen Sie vor dem Öffnen Configuration Manager sicher, dass sich die folgenden Dateien in einem freigegebenen Ordner befinden, der keine anderen Dateien enthält:

  • ConfigureSEMM.ps1
  • ResetSEMM.ps1
  • Ihr SEMM-Zertifikat (z. B. SEMMCertificate.pfx)

Die SEMM-Configuration Manager-Skripts werden Configuration Manager als Skriptanwendung hinzugefügt. Der Befehl zum Installieren von SEMM mit ConfigureSEMM.ps1 lautet wie folgt.

Powershell.exe -file ".\ConfigureSEMM.ps1"

Der Befehl zum Deinstallieren von SEMM mit ResetSEMM.ps1 lautet wie folgt.

Powershell.exe -file ".\ResetSEMM.ps1"

Verwenden Sie den folgenden Prozess, um die SEMM-Configuration Manager Skripts Configuration Manager als Anwendung hinzuzufügen:

  1. Starten Sie den Create-Anwendungs-Assistenten mit Schritt 1 bis Schritt 5 aus dem Abschnitt Bereitstellen von Surface UEFI Manager weiter oben in diesem Artikel.

  2. Fahren Sie wie folgt mit dem Assistenten für Create-Anwendungen fort:

    • Allgemein : Wählen Sie Die Anwendungsinformationen manuell angeben aus, und wählen Sie dann Weiter aus.

    • Allgemeine Informationen : Geben Sie einen Namen für die Anwendung (z. B. SEMM) und alle anderen gewünschten Informationen ein, z. B. Herausgeber, Version oder Kommentare auf dieser Seite. Wählen Sie Weiter aus, um fortzufahren.

    • Anwendungskatalog : Die Felder auf dieser Seite können mit ihren Standardwerten belassen werden. Wählen Sie Weiter aus.

    • Bereitstellungstypen: Wählen Sie Hinzufügen aus, um den Create-Bereitstellungstyp-Assistenten zu starten.

    • Fahren Sie wie folgt mit den Schritten des Assistenten zum Create-Bereitstellungstyp fort:

      • Allgemein: Wählen Sie im Dropdownmenü Typ die Option Skriptinstallationsprogramm aus. Die Option Informationen zum Bereitstellungstyp manuell angeben wird automatisch ausgewählt. Wählen Sie Weiter aus, um fortzufahren.
      • Allgemeine Informationen : Geben Sie einen Namen für den Bereitstellungstyp ein (z. B. SEMM-Konfigurationsskripts), und wählen Sie dann Weiter aus, um fortzufahren.
      • Inhalt: Wählen Sie neben dem Feld Inhaltsspeicherort die Option Durchsuchen aus, und wählen Sie dann den Ordner aus, in dem sich Ihre SEMM-Configuration Manager-Skripts befinden. Geben Sie im Feld Installationsprogramm den Installationsbefehl ein, den Sie weiter oben in diesem Artikel finden. Geben Sie im Feld Programm deinstallieren den Deinstallationsbefehl ein, den Sie weiter oben in diesem Artikel finden (siehe Abbildung 2). Wählen Sie Weiter aus, um zur nächsten Seite zu wechseln.

      Legen Sie die SEMM-Configuration Manager Skripts als Installations- und Deinstallationsbefehle fest.

      Abbildung 2. Festlegen der SEMM-Configuration Manager Skripts als Installations- und Deinstallationsbefehle

      • Erkennungsmethode: Wählen Sie Klausel hinzufügen aus, um die Registrierungsschlüsselerkennungsregel SEMM Configuration Manager Skript hinzuzufügen. Das Fenster Erkennungsregel wird wie in Abbildung 3 dargestellt angezeigt. Verwenden Sie die folgenden Einstellungen:

        • Wählen Sie im Dropdownmenü Einstellungstyp die Option Registrierung aus.
        • Wählen Sie im Dropdownmenü Hivedie Option HKEY_LOCAL_MACHINE aus.
        • Geben Sie software\Microsoft\Surface\SEMM in das Feld Schlüssel ein.
        • Geben Sie CertName in das Feld Wert ein.
        • Wählen Sie im Dropdownmenü Datentyp die Option Zeichenfolge aus.
        • Wählen Sie die Schaltfläche Diese Registrierungseinstellung muss die folgende Regel erfüllen aus, um anzugeben, dass diese Anwendung vorhanden ist .
        • Geben Sie den Namen des Zertifikats ein, das Sie in Zeile 58 des Skripts im Feld Wert eingegeben haben.
        • Wählen Sie OK aus, um das Fenster Erkennungsregel zu schließen.

      Verwenden Sie einen Registrierungsschlüssel, um geräte zu identifizieren, die in SEMM registriert sind.

      Abbildung 3. Verwenden eines Registrierungsschlüssels zum Identifizieren von Geräten, die in SEMM registriert sind

      • Wählen Sie Weiter aus, um mit der nächsten Seite fortzufahren.

      • Benutzererfahrung: Wählen Sie im Dropdownmenü Installationsverhalten die Option Für System installieren aus. Wenn Sie möchten, dass Ihre Benutzer den Zertifikatfingerabdruck selbst aufzeichnen und eingeben, lassen Sie die Anmeldeanforderung auf Nur festgelegt, wenn ein Benutzer angemeldet ist. Wenn Ihre Administratoren den Fingerabdruck für Benutzer eingeben sollen und die Benutzer den Fingerabdruck nicht sehen müssen, wählen Sie im Dropdownmenü Anmeldeanforderung die Option Ob ein Benutzer angemeldet ist oder nicht aus.

      • Anforderungen : Das ConfigureSEMM.ps1-Skript überprüft automatisch, ob es sich bei dem Gerät um ein Surface-Gerät handelt, bevor versucht wird, SEMM zu aktivieren. Wenn Sie jedoch beabsichtigen, diese Skriptanwendung in einer Sammlung mit anderen Geräten als denen bereitzustellen, die mit SEMM verwaltet werden sollen, können Sie hier Anforderungen hinzufügen, um sicherzustellen, dass diese Anwendung nur auf Surface-Geräten oder Geräten ausgeführt wird, die Sie mit SEMM verwalten möchten. Wählen Sie Weiter aus, um fortzufahren.

      • Abhängigkeiten : Wählen Sie Hinzufügen aus, um das Fenster Abhängigkeit hinzufügen zu öffnen.

        • Wählen Sie Hinzufügen aus, um das Fenster Erforderliche Anwendung angeben zu öffnen.

          • Geben Sie im Feld Name der Abhängigkeitsgruppe einen Namen für die SEMM-Abhängigkeiten ein (z. B. SEMM-Assemblys).

          • Wählen Sie surface UEFI Manager aus der Liste Verfügbare Anwendungen und den MSI-Bereitstellungstyp aus, und klicken Sie dann auf OK , um das Fenster Erforderliche Anwendung angeben zu schließen.

          • Lassen Sie das Kontrollkästchen Automatische Installation aktiviert, wenn Surface UEFI Manager automatisch auf Geräten installiert werden soll, wenn Sie versuchen, SEMM mit den Configuration Manager-Skripts zu aktivieren. Wählen Sie OK aus, um das Fenster Abhängigkeit hinzufügen zu schließen.
      • Wählen Sie Weiter aus, um fortzufahren.

      • Zusammenfassung: Die Informationen, die Sie im Create Bereitstellungstyp-Assistenten eingegeben haben, werden auf dieser Seite angezeigt. Wählen Sie Weiter aus, um Ihre Auswahl zu bestätigen.

      • Status: Auf dieser Seite werden eine Statusanzeige und status angezeigt, wenn der Bereitstellungstyp für die SEMM-Skriptanwendung hinzugefügt wird.

      • Abschluss : Die Bestätigung der Erstellung des Bereitstellungstyps wird angezeigt, wenn der Prozess abgeschlossen ist. Wählen Sie Schließen aus, um den Create Bereitstellungstyp-Assistenten abzuschließen.

    • Zusammenfassung: Die Informationen, die Sie im Create-Anwendungs-Assistenten eingegeben haben, werden angezeigt. Wählen Sie Weiter aus, um die Anwendung zu erstellen.

    • Status: Auf dieser Seite wird eine Statusanzeige und status angezeigt, wenn die Anwendung der Softwarebibliothek hinzugefügt wird.

    • Abschluss : Eine Bestätigung der erfolgreichen Anwendungserstellung wird angezeigt, wenn der Anwendungserstellungsprozess abgeschlossen ist. Wählen Sie Schließen aus, um den Create-Anwendungs-Assistenten abzuschließen.

Nachdem die Skriptanwendung in der Softwarebibliothek von Configuration Manager verfügbar ist, können Sie SEMM mithilfe der von Ihnen vorbereiteten Skripts auf Geräten oder Sammlungen verteilen und bereitstellen. Wenn Sie die Surface UEFI Manager-Assemblys als Abhängigkeit konfiguriert haben, die automatisch installiert wird, können Sie SEMM in einem einzigen Schritt bereitstellen. Wenn Sie die Assemblys nicht als Abhängigkeit konfiguriert haben, müssen sie auf den Geräten installiert werden, die Sie verwalten möchten, bevor Sie SEMM aktivieren.

Wenn Sie SEMM mithilfe dieser Skriptanwendung und mit einer Konfiguration bereitstellen, die für den Endbenutzer sichtbar ist, wird das PowerShell-Skript gestartet, und der Fingerabdruck für das Zertifikat wird im PowerShell-Fenster angezeigt. Sie können von Ihren Benutzern diesen Fingerabdruck aufzeichnen und eingeben, wenn sie nach dem Neustart des Geräts von Surface UEFI dazu aufgefordert werden.

Alternativ können Sie die Anwendungsinstallation so konfigurieren, dass sie automatisch neu gestartet wird und unsichtbar für den Benutzer installiert wird. In diesem Szenario muss ein Techniker den Fingerabdruck auf jedem Gerät eingeben, wenn es neu gestartet wird. Jeder Techniker mit Zugriff auf die Zertifikatdatei kann den Fingerabdruck lesen, indem er das Zertifikat mit CertMgr anzeigt. Anweisungen zum Anzeigen des Fingerabdrucks mit CertMgr finden Sie im Abschnitt Create oder Ändern des SEMM-Configuration Manager-Skripts in diesem Artikel.

Das Entfernen von SEMM von einem Gerät, das mit Configuration Manager mithilfe dieser Skripts bereitgestellt wurde, ist so einfach wie das Deinstallieren der Anwendung mit Configuration Manager. Durch diese Aktion wird das ResetSEMM.ps1 Skripts gestartet und die Registrierung des Geräts mit derselben Zertifikatdatei ordnungsgemäß aufgehoben, die bei der Bereitstellung von SEMM verwendet wurde.

Hinweis

Surface empfiehlt die Erstellung von Zurücksetzungspaketen nur, wenn Sie die Registrierung eines Geräts aufheben müssen. Diese Zurücksetzungspakete sind in der Regel nur für ein Gerät gültig, das durch die Seriennummer identifiziert wird. Sie können jedoch ein universelles Zurücksetzungspaket erstellen, das für jedes Gerät funktioniert, das mit diesem Zertifikat bei SEMM registriert ist.

Es wird dringend empfohlen, Ihr Paket für die universelle Zurücksetzung so sorgfältig zu schützen wie das Zertifikat, das Sie zum Registrieren von Geräten in SEMM verwendet haben. Denken Sie daran, dass dieses paket für universelle Zurücksetzung genau wie das Zertifikat selbst verwendet werden kann, um die Registrierung aller Surface-Geräte Ihrer organization bei SEMM aufzuheben.

Wenn Sie ein Zurücksetzungspaket installieren, wird der niedrigste unterstützte Wert (LSV) auf den Wert 1 zurückgesetzt. Sie können ein Gerät erneut registrieren, indem Sie ein vorhandenes Konfigurationspaket verwenden. Das Gerät fordert zur Eingabe des Zertifikatfingerabdrucks auf, bevor der Besitz übernommen wird.

Aus diesem Grund muss für die erneute Registrierung eines Geräts in SEMM ein neues Paket erstellt und auf diesem Gerät installiert werden. Da es sich bei dieser Aktion um eine neue Registrierung und nicht um eine Änderung der Konfiguration auf einem Gerät handelt, das bereits bei SEMM registriert ist, fordert das Gerät zur Eingabe des Zertifikatfingerabdrucks auf, bevor der Besitz übernommen wird.