WESL_UserSetting

Diese Klasse konfiguriert, welche Anwendung Shell-Startprogramm basierend auf dem Sicherheitsbezeichner (SID) des angemeldeten Benutzers beginnt, und konfiguriert auch den Satz von Rückgabecodes und Rückgabeaktionen, die das Shell-Startfeld 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 werden alle Methoden und Eigenschaften aufgeführt, die zu dieser Klasse gehören.

Methoden

Methoden BESCHREIBUNG

WESL_UserSetting.SetCustomShell

Konfiguriert das Shell-Startfeld für einen bestimmten Benutzer oder eine bestimmte Gruppe basierend auf SID.

WESL_UserSetting.GetCustomShell

Ruft die Shell-Startprogrammkonfiguration für einen bestimmten Benutzer oder eine bestimmte Gruppe ab, basierend auf der SID.

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 Standard-Shell-Startprogrammkonfiguration ab.

WESL_UserSetting.SetDefaultShell

Legt die Standard-Shell-Startprogrammkonfiguration fest.

WESL_UserSetting.IsEnabled

Ruft einen Wert ab, der angibt, ob das Shell-Startfeld aktiviert oder deaktiviert ist.

WESL_UserSetting.SetEnabled

Aktiviert oder deaktiviert das Shell-Startfeld.

Eigenschaften

Eigenschaft Datentyp Qualifizierer BESCHREIBUNG

Sid

Zeichenfolge

[Lesen, Schreiben, erforderlich]

Benutzer- oder Gruppen-SID.

Muschel

Zeichenfolge

[Lesen, Schreiben, erforderlich]

Die Anwendung, die als Shell gestartet werden soll.

Die Shelleigenschaft kann ein Dateiname in der Variable " Path " sein, oder es kann 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-Startfeld ausführt, wenn die Shell beendet wird. Die benutzerdefinierten Aktionen entsprechen dem Array von CustomReturnCodes.

Die möglichen Aktionen werden in der folgenden Tabelle definiert:

value BESCHREIBUNG

0

Starten Sie die Shell neu.

1

Starten Sie das Gerät neu.

2

Fahren Sie das Gerät herunter.

3

Sie unternehmen nichts.

 

Defaultaction

Sint32

[lesen, schreiben]

Das Standardaktions-Shell-Startfeld wird ausgeführt, wenn die Shell beendet wird.

Die möglichen Aktionen werden in der folgenden Tabelle definiert:

value BESCHREIBUNG

0

Starten Sie die Shell neu.

1

Starten Sie das Gerät neu.

2

Fahren Sie das Gerät herunter.

3

Sie unternehmen nichts.

 

Hinweise

Nur eine WESL_UserSetting Instanz ist auf einem Gerät mit Shell-Startfeld vorhanden.

Shell-Startfeld verwendet die benutzerdefinierte Konfiguration, die für die SID des aktuell angemeldeten Benutzers definiert ist, sofern vorhanden. Andernfalls verwendet Shell-Startfeld eine benutzerdefinierte Konfiguration, die für eine Gruppen-SID definiert ist, von der der Benutzer mitglied ist, falls vorhanden. Wenn mehrere benutzerdefinierte Gruppenkonfigurationen für den Benutzer vorhanden sind, verwendet Shell-Startfeld die erste gültige Konfiguration, die sie findet. Die Suchreihenfolge ist nicht definiert.

Wenn keine benutzerdefinierte Konfiguration für die SID des Benutzers oder alle Gruppen-SIDs vorhanden ist, die der Benutzer Mitglied ist, verwendet Shell-Startfeld die Standardkonfiguration.

Sie können die SID für einen Benutzer und alle Gruppen finden, die der Benutzer mitglied ist, indem Sie das Whoami-Befehlszeilentool verwenden.

Beispiel

Das folgende skript Windows PowerShell veranschaulicht, wie Benutzerdefinierte Shellkonfigurationen für shell-Startfeld mithilfe der Windows Verwaltungsinstrumentation (WMI)-Anbieter für Shell-Startfeld hinzugefügt und entfernt werden.

$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 10 Home Nein
Windows 10 Pro Nein
Windows 10 Enterprise Ja
Windows 10 Education Yes

Shell-Startprogramm