WESL_UserSetting

Diese Klasse konfiguriert, welche Shell-Startprogramm für eine Anwendung basierend auf der Sicherheits-ID (SID) des angemeldeten Benutzers gestartet wird, und sie konfiguriert außerdem die Gruppe der Rückgabecodes und Rückgabeaktionen, die das Shell-Startprogramm ausführt, wenn die Anwendung beendet wird.

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 Shell-Startprogrammkonfiguration 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-Sstartprogramm aktiviert oder deaktiviert ist.
WESL_UserSetting.SetEnabled Aktiviert oder deaktiviert das Shell-Startprogramm.

Eigenschaften

Eigenschaft Datentyp Qualifizierer BESCHREIBUNG
Sid Zeichenfolge [lesen, schreiben, erforderlich] Benutzer- oder Gruppen-SID.
shell Zeichenfolge [lesen, schreiben, erforderlich] Die Anwendung, die als Shell gestartet werden soll.
Die Shelleigenschaft kann ein Dateiname in der Umgebungsvariable Path sein oder einen vollqualifizierten Pfad zur Anwendung enthalten. Sie können auch Umgebungsvariablen im Pfad verwenden.
Alle Leerzeichen in der Shelleigenschaft 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.
Die möglichen Aktionen sind:
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 Launcher 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.

Bemerkungen

Auf einem Gerät mit Shell-Startprogramm ist nur eine WESL_UserSetting-Instanz 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, in der der Benutzer Mitglied ist, sofern vorhanden. Wenn mehrere gruppenspezifische Konfigurationen für den Benutzer vorhanden sind, verwendet das Shell-Startprogramm die erste gültige Konfiguration, die es findet. Die Suchreihenfolge ist nicht definiert.

Ist keine benutzerdefinierte Konfiguration für die SID des Benutzers oder eine der Gruppen-SIDs, deren Mitglied der Benutzer ist, vorhanden, dann verwendet das Shell-Startprogramm die Standardkonfiguration.

Sie finden die SID für einen Benutzer und alle Gruppen, bei denen der Benutzer Mitglied ist, unter Verwendung des Whoami-Befehlszeilentools.

Beispiel

Das folgende Windows PowerShell-Skript veranschaulicht, wie Sie benutzerdefinierte Shell-Konfigurationen für das Shell-Startprogramm mithilfe der Anbieter von Windows-Verwaltungsinstrumentation für das Shell-Startprogramm hinzufügen und entfernen.

$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)

Anforderungen

Windows-Edition Unterstützt
Windows Home Nein
Windows Pro Nein
Windows Enterprise Ja
Windows Education Ja
Windows IoT Enterprise Ja