WESL_UserSetting

Этот класс настраивает запуск оболочки приложения на основе идентификатора безопасности пользователя, выполнившего вход, а также настраивает набор кодов возврата и возвращает действия, выполняемые командой запуска оболочки при выходе приложения.

Синтаксис

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);
    );
};

Участники

В следующих таблицах перечислены все методы и свойства, принадлежащие этому классу.

Методы

Методы Описание

WESL_UserSetting.SetCustomShell

Настраивает средство запуска оболочки для определенного пользователя или группы на основе идентификатора безопасности.

WESL_UserSetting.GetCustomShell

Извлекает конфигурацию средства запуска оболочки для определенного пользователя или группы на основе идентификатора безопасности.

WESL_UserSetting.RemoveCustomShell

Удаляет конфигурацию средства запуска оболочки для определенного пользователя или группы на основе идентификатора безопасности.

WESL_UserSetting.GetDefaultShell

Извлекает конфигурацию средства запуска оболочки по умолчанию.

WESL_UserSetting.SetDefaultShell

Задает конфигурацию средства запуска оболочки по умолчанию.

WESL_UserSetting.IsEnabled

Извлекает значение, указывающее, включен или отключен средство запуска оболочки.

WESL_UserSetting.SetEnabled

Включает или отключает средство запуска оболочки.

Свойства

Свойство Тип данных Квалификаторы Описание

Sid

строка

[чтение, запись, обязательный параметр]

Идентификатор безопасности пользователя или группы.

Оболочки

строка

[чтение, запись, обязательный параметр]

Приложение, которое запускается в качестве оболочки.

Свойство оболочки может быть именем файла в переменной среды Path или содержать полный путь к приложению. Переменные среды также можно использовать в пути.

Все пробелы в свойстве оболочки должны быть частью строки с разделителями-кавычками.

CustomReturnCodes

Sint32[]

[чтение, запись]

Массив пользовательских кодов возврата, которые могут быть возвращены оболочкой.

CustomReturnCodesAction

Sint32[]

[чтение, запись]

Массив действий пользовательского возвращаемого кода, определяющий, какое действие выполняет средство запуска оболочки при выходе оболочки. Настраиваемые действия сопоставляют с массивом CustomReturnCodes.

Возможные действия определены в следующей таблице:

Значение Описание

0

Перезапустите оболочку.

1

Перезагрузите устройство.

2

Завершите работу устройства.

3

Не делать ничего.

 

DefaultAction

Sint32

[чтение, запись]

Средство запуска оболочки по умолчанию принимается при выходе оболочки.

Возможные действия определены в следующей таблице:

Значение Описание

0

Перезапустите оболочку.

1

Перезагрузите устройство.

2

Завершите работу устройства.

3

Не делать ничего.

 

Комментарии

На устройстве с помощью средства запуска оболочки существует только один экземпляр WESL_UserSetting .

Средство запуска оболочки использует настраиваемую конфигурацию, определенную для идентификатора безопасности пользователя, вошедшего в систему, если она существует. В противном случае средство запуска оболочки использует пользовательскую конфигурацию, определенную для идентификатора безопасности группы, в которую входит пользователь, если таковой существует. Если существует несколько пользовательских конфигураций группы для пользователя, средство запуска оболочки использует первую допустимую конфигурацию, найденную пользователем. Порядок поиска не определен.

Если пользовательской конфигурации для идентификатора безопасности пользователя или идентификаторов групп, в которые входит пользователь, средство запуска оболочки использует конфигурацию по умолчанию.

С помощью программы командной строки whoami можно найти идентификатор безопасности для пользователя и всех групп, членом которых является пользователь.

Пример

В следующем Windows PowerShell скрипте показано, как добавлять и удалять пользовательские конфигурации оболочки для средства запуска оболочки с помощью поставщиков инструментария управления Windows (WMI) для средства запуска оболочки.

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

Требования

Выпуск для Windows Поддерживается
Windows 10 Домашняя нет
Windows 10 Pro Нет
Windows 10 Корпоративная Да
Windows 10 для образовательных учреждений Да

Средство запуска оболочки