WESL_UserSetting
Diese Klasse konfiguriert, welche Anwendung shell Launcher basierend auf der Sicherheits-ID (SID) des angemeldeten Benutzers startet, und konfiguriert auch den Satz von Rückgabecodes und Rückgabeaktionen, die das Shell-Startprogramm ausführt, wenn die Anwendung beendet wird.
Anforderungen an die Windows-Edition
Die folgende Liste enthält die Windows-Editionen, die das Shell-Startprogramm unterstützen:
✅ Enterprise/Enterprise LTSC
✅ Education
✅ IoT Enterprise / IoT Enterprise LTSC
Syntax
class WESL_UserSetting {
[read, write, Required] string Sid;
[read, write, Required] string Shell;
[read, write] Sint32 CustomReturnCodes[];
[read, write] Sint32 CustomReturnCodesAction[];
[read, write] sint32 DefaultAction;
[Static] uint32 SetCustomShell(
[In, Required] string Sid,
[In, Required] string Shell,
[In] sint32 CustomReturnCodes[],
[In] sint32 CustomReturnCodesAction[],
[In] sint32 DefaultAction
);
[Static] uint32 GetCustomShell(
[In, Required] string Sid,
[Out, Required] string Shell,
[Out, Required] sint32 CustomReturnCodes[],
[Out, Required] sint32 CustomReturnCodesAction[],
[Out, Required] sint32 DefaultAction
);
[Static] uint32 RemoveCustomShell(
[In, Required] string Sid
);
[Static] uint32 GetDefaultShell(
[Out, Required] string Shell,
[Out, Required] sint32 DefaultAction
);
[Static] uint32 SetDefaultShell(
[In, Required] string Shell,
[In, Required] sint32 DefaultAction
);
[Static] uint32 IsEnabled(
[Out, Required] boolean Enabled
);
[Static] uint32 SetEnabled(
[In, Required] boolean Enabled);
);
};
Member
In den folgenden Tabellen sind alle Methoden und Eigenschaften aufgeführt, die zu dieser Klasse gehören.
Methoden
Methoden | Beschreibung |
---|---|
WESL_UserSetting.SetCustomShell | Konfiguriert das Shell-Startprogramm für einen bestimmten Benutzer oder eine bestimmte Gruppe basierend auf der SID. |
WESL_UserSetting.GetCustomShell | Ruft die Konfiguration des Shell-Startprogramms für einen bestimmten Benutzer oder eine bestimmte Gruppe basierend auf der SID ab. |
WESL_UserSetting.RemoveCustomShell | Entfernt eine Shell-Startprogrammkonfiguration für einen bestimmten Benutzer oder eine bestimmte Gruppe basierend auf der SID. |
WESL_UserSetting.GetDefaultShell | Ruft die Standardkonfiguration des Shell-Startprogramms ab. |
WESL_UserSetting.SetDefaultShell | Legt die Standardkonfiguration des Shell-Startprogramms fest. |
WESL_UserSetting.IsEnabled | Ruft einen Wert ab, der angibt, ob das Shell-Startprogramm aktiviert oder deaktiviert ist. |
WESL_UserSetting.SetEnabled | Aktiviert oder deaktiviert das Shell-Startprogramm. |
Eigenschaften
Eigenschaft | Datentyp | Qualifikation | Beschreibung |
---|---|---|---|
Sid | string | [Lesen, Schreiben, erforderlich] | Benutzer- oder Gruppen-SID. |
Muschel | string | [Lesen, Schreiben, erforderlich] | Die Anwendung, die als Shell gestartet werden soll. Die Shelleigenschaft kann ein Dateiname in der Path-Umgebungsvariable sein oder einen vollqualifizierten Pfad zur Anwendung enthalten. Sie können auch Umgebungsvariablen im Pfad verwenden. Alle Leerzeichen in der Shell-Eigenschaft müssen Teil einer durch Anführungszeichen getrennten Zeichenfolge sein. |
CustomReturnCodes | Sint32[] | [lesen, schreiben] | Ein Array von benutzerdefinierten Rückgabecodes, die von der Shell zurückgegeben werden können. |
CustomReturnCodesAction | Sint32[] | [lesen, schreiben] | Ein Array von benutzerdefinierten Rückgabecodeaktionen, die bestimmen, welche Aktion das Shell-Startprogramm ausführt, wenn die Shell beendet wird. Die benutzerdefinierten Aktionen werden dem Array von CustomReturnCodes zugeordnet. Folgende Aktionen sind möglich: 0 : Starten Sie die Shell neu. 1 : Starten Sie das Gerät neu. 2 – Fahren Sie das Gerät herunter. 3 – Nichts tun. |
DefaultAction | Sint32 | [lesen, schreiben] | Die Standardaktion Shell-Startprogramm wird ausgeführt, wenn die Shell beendet wird. Die möglichen Aktionen sind wie folgt definiert: 0 : Starten Sie die Shell neu. 1 : Starten Sie das Gerät neu. 2 – Fahren Sie das Gerät herunter. 3 – Nichts tun. |
Hinweise
Auf einem Gerät mit Shell-Startprogramm ist nur eine WESL_UserSetting instance vorhanden.
Das Shell-Startprogramm verwendet die benutzerdefinierte Konfiguration, die für die SID des aktuell angemeldeten Benutzers definiert ist, sofern vorhanden. Andernfalls verwendet das Shell-Startprogramm eine benutzerdefinierte Konfiguration, die für eine Gruppen-SID definiert ist, deren Mitglied der Benutzer ist( sofern vorhanden). Wenn mehrere benutzerdefinierte Gruppenkonfigurationen für den Benutzer vorhanden sind, verwendet das Shell-Startprogramm die erste gültige Konfiguration, die es findet. Die Suchreihenfolge ist nicht definiert.
Wenn keine benutzerdefinierte Konfiguration für die SID des Benutzers oder Gruppen-SIDs vorhanden ist, in denen der Benutzer Mitglied ist, verwendet das Shell-Startprogramm die Standardkonfiguration.
Sie finden die SID für einen Benutzer und alle Gruppen, in denen der Benutzer Mitglied ist, mithilfe des whoami-Befehlszeilentools .
Beispiel
Das folgende Windows PowerShell Skript veranschaulicht das Hinzufügen und Entfernen benutzerdefinierter Shellkonfigurationen für shell Launcher mithilfe der WMI-Anbieter (Windows Management Instrumentation) für shell Launcher.
$COMPUTER = "localhost"
$NAMESPACE = "root\standardcimv2\embedded"
# Create a handle to the class instance so we can call the static methods.
$ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting"
# This well-known security identifier (SID) corresponds to the BUILTIN\Administrators group.
$Admins_SID = "S-1-5-32-544"
# Create a function to retrieve the SID for a user account on a machine.
function Get-UsernameSID($AccountName) {
$NTUserObject = New-Object System.Security.Principal.NTAccount($AccountName)
$NTUserSID = $NTUserObject.Translate([System.Security.Principal.SecurityIdentifier])
return $NTUserSID.Value
}
# Get the SID for a user account named "Cashier". Rename "Cashier" to an existing account on your system to test this script.
$Cashier_SID = Get-UsernameSID("Cashier")
# Define actions to take when the shell program exits.
$restart_shell = 0
$restart_device = 1
$shutdown_device = 2
$do_nothing = 3
# Examples
# Set the command prompt as the default shell, and restart the device if it's closed.
$ShellLauncherClass.SetDefaultShell("cmd.exe", $restart_device)
# Display the default shell to verify that it was added correctly.
$DefaultShellObject = $ShellLauncherClass.GetDefaultShell()
"`nDefault Shell is set to " + $DefaultShellObject.Shell + " and the default action is set to " + $DefaultShellObject.defaultaction
# Set Internet Explorer as the shell for "Cashier", and restart the machine if it's closed.
$ShellLauncherClass.SetCustomShell($Cashier_SID, "c:\program files\internet explorer\iexplore.exe www.microsoft.com", ($null), ($null), $restart_shell)
# Set Explorer as the shell for administrators.
$ShellLauncherClass.SetCustomShell($Admins_SID, "explorer.exe")
# View all the custom shells defined.
"`nCurrent settings for custom shells:"
Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting | Select Sid, Shell, DefaultAction
# Remove the new custom shells.
$ShellLauncherClass.RemoveCustomShell($Admins_SID)
$ShellLauncherClass.RemoveCustomShell($Cashier_SID)