WESL_UserSetting
이 클래스는 로그인한 사용자의 SID(보안 식별자)에 따라 셸 시작 관리자가 시작하는 애플리케이션을 구성하고, 애플리케이션이 종료되면 셸 시작 관리자 수행하는 반환 작업 및 반환 코드 집합도 구성합니다.
구문
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 | SID에 따라 특정 사용자 또는 그룹에 대한 셸 시작 관리자를 구성합니다. |
WESL_UserSetting.GetCustomShell | SID를 기반으로 특정 사용자 또는 그룹에 대한 Shell Launcher 구성을 검색합니다. |
WESL_UserSetting.RemoveCustomShell | SID를 기반으로 특정 사용자 또는 그룹에 대한 셸 시작 관리자 구성을 제거합니다. |
WESL_UserSetting.GetDefaultShell | 기본 셸 시작 관리자 구성을 검색합니다. |
WESL_UserSetting.SetDefaultShell | 기본 셸 시작 관리자 구성을 설정합니다. |
WESL_UserSetting.IsEnabled | 셸 시작 관리자의 활성화 또는 비활성화 여부를 나타내는 값을 검색합니다. |
WESL_UserSetting.SetEnabled | 셸 시작 관리자를 활성화하거나 비활성화합니다. |
속성
속성 | 데이터 형식 | 한정자 | 설명 |
---|---|---|---|
Sid | string | [read, write, required] | 사용자 또는 그룹 SID입니다. |
shell | string | [read, write, required] | 셸로 시작할 애플리케이션입니다. 셸 속성은 Path 환경 변수의 파일 이름이거나 애플리케이션에 대한 정규화된 경로를 포함할 수 있습니다. 경로에서 환경 변수를 사용할 수도 있습니다. 셸 속성의 모든 공백은 따옴표로 구분된 문자열의 일부여야 합니다. |
CustomReturnCodes | Sint32[] | [읽기/쓰기] | 셸에서 반환할 수 있는 사용자 지정 반환 코드의 배열입니다. |
CustomReturnCodesAction | Sint32[] | [읽기/쓰기] | 셸이 종료되면 셸 시작 관리자가 수행하는 작업을 결정하는 사용자 지정 반환 코드 작업의 배열입니다. 사용자 지정 작업은 CustomReturnCodes 배열 에 매핑됩니다. 가능한 작업은: 0입니다. 셸을 다시 시작합니다. 1 - 디바이스를 다시 시작합니다. 2 - 디바이스를 종료합니다. 3 - 아무것도하지 않습니다. |
DefaultAction | Sint32 | [읽기/쓰기] | 셸이 종료되면 셸 시작 관리자 수행하는 기본 작업입니다. 가능한 작업은 다음과 같이 정의됩니다. 셸을 다시 시작합니다 . 1 - 디바이스를 다시 시작합니다. 2 - 디바이스를 종료합니다. 3 - 아무것도하지 않습니다. |
설명
셸 시작 관리자를 사용하는 디바이스에는 WESL_UserSetting 인스턴스가 하나만 있습니다.
셸 시작 관리자는 현재 로그인한 사용자의 SID에 대해 정의된 사용자 지정 구성(있는 경우)을 사용합니다. 그렇지 않으면 셸 시작 관리자에서 사용자가 멤버로 속한 그룹 SID에 대해 정의된 사용자 지정 구성(있는 경우)을 사용합니다. 사용자에 대한 여러 그룹 사용자 지정 구성이 있는 경우 셸 시작 관리자는 첫 번째로 발견된 유효한 구성을 사용합니다. 검색 순서는 정의되어 있지 않습니다.
사용자의 SID 또는 사용자가 멤버로 속한 그룹 SID에 대한 사용자 지정 구성이 없는 경우 셸 시작 관리자가 기본 구성을 사용합니다.
whoami 명령줄 도구를 사용하여 사용자 및 사용자가 멤버로 속한 모든 그룹에 대한 SID를 찾을 수 있습니다.
예시
다음 Windows PowerShell 스크립트는 셸 시작 관리자용 WMI(Windows Management Instrumentation) 공급자를 사용하여 셸 시작 관리자에 대한 사용자 지정 셸 구성을 추가하고 제거하는 방법을 보여 줍니다.
$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 Home | 아니요 |
Windows Pro | 아니요 |
Windows Enterprise | 예 |
Windows Education | 예 |
Windows IoT Enterprise | 예 |