ConvertFrom-SddlString
将 SDDL 字符串转换为自定义对象。
语法
ConvertFrom-SddlString
[-Sddl] <String>
[-Type <Object>]
[<CommonParameters>]
说明
ConvertFrom-SddlString
cmdlet 使用以下属性将安全描述符定义语言字符串转换为自定义 PSCustomObject 对象:Owner、Group、DiscretionaryAcl、SystemAcl 和 RawDescriptor。
Owner、Group、DiscretionaryAcl 和 SystemAcl 属性包含 SDDL 字符串中指定的访问权限的可读文本表示形式。
此 cmdlet 在 PowerShell 5.0 中引入。
示例
示例 1:将文件系统访问权限 SDDL 转换为 PSCustomObject
$acl = Get-Acl -Path C:\Windows
ConvertFrom-SddlString -Sddl $acl.Sddl
第一个命令使用 Get-Acl
cmdlet 获取 C:\Windows 文件夹的安全描述符,并将其保存在变量中。
第二个命令使用 ConvertFrom-SddlString
cmdlet 获取 SDDL 字符串的文本表示形式,该字符串包含在表示安全描述符的对象 Sddl 属性中。
示例 2:将注册表访问权限 SDDL 转换为 PSCustomObject
$acl = Get-Acl HKLM:\SOFTWARE\Microsoft\
ConvertFrom-SddlString -Sddl $acl.Sddl -Type RegistryRights
第一个命令使用 Get-Acl
cmdlet 获取 HKLM:\SOFTWARE\Microsoft\ 项的安全描述符,并将其保存在变量中。
第二个命令使用 ConvertFrom-SddlString
cmdlet 获取 SDDL 字符串的文本表示形式,该字符串包含在表示安全描述符的对象 Sddl 属性中。
它使用 -Type
参数指定 SDDL 字符串表示注册表安全描述符。
示例 3:使用 ConvertFrom-SddlString(带和不带“-Type”参数)将注册表访问权限 SDDL 转换为 PSCustomObject
$acl = Get-Acl -Path HKLM:\SOFTWARE\Microsoft\
ConvertFrom-SddlString -Sddl $acl.Sddl | Foreach-Object {$_.DiscretionaryAcl[0]}
BUILTIN\Administrators: AccessAllowed (ChangePermissions, CreateDirectories, Delete, ExecuteKey, FullControl, GenericExecute, GenericWrite, ListDirectory, ReadExtendedAttributes, ReadPermissions, TakeOwnership, Traverse, WriteData, WriteExtendedAttributes, WriteKey)
ConvertFrom-SddlString -Sddl $acl.Sddl -Type RegistryRights | Foreach-Object {$_.DiscretionaryAcl[0]}
BUILTIN\Administrators: AccessAllowed (ChangePermissions, CreateLink, CreateSubKey, Delete, EnumerateSubKeys, ExecuteKey, FullControl, GenericExecute, GenericWrite, Notify, QueryValues, ReadPermissions, SetValue, TakeOwnership, WriteKey)
第一个命令使用 Get-Acl
cmdlet 获取 HKLM:\SOFTWARE\Microsoft\ 项的安全描述符,并将其保存在变量中。
第二个命令使用 ConvertFrom-SddlString
cmdlet 获取 SDDL 字符串的文本表示形式,该字符串包含在表示安全描述符的对象 Sddl 属性中。
它不使用 -Type
参数,因此显示的访问权限适用于文件系统。
第三个命令使用具有 -Type
参数的 ConvertFrom-SddlString
cmdlet,因此返回的访问权限适用于注册表。
示例 4:将 Active Directory 访问权限 SDDL 转换为 PSCustomObject
$user = [ADSI]"LDAP://CN=username,CN=Users,DC=domain,DC=com"
ConvertFrom-SddlString $user.psbase.ObjectSecurity.Sddl -Type ActiveDirectoryRights
第一个命令使用 Active Directory 服务接口 (ADSI) 获取用户对象并将其保存在变量中。
第二个命令使用 ConvertFrom-SddlString
cmdlet 获取 SDDL 字符串的文本表示形式,该字符串包含在表示安全描述符的对象 Sddl 属性中。
它使用 -Type
参数指定 SDDL 字符串表示 Active Directory 安全描述符。
参数
-Sddl
指定表示 SDDL 语法中安全描述符的字符串。
类型: | String |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Type
指定 SDDL 字符串表示的权限类型。
此参数的可接受值为:
- FileSystemRights
- RegistryRights
- ActiveDirectoryRights
- MutexRights
- SemaphoreRights
- CryptoKeyRights
- EventWaitHandleRights
默认情况下,cmdlet 使用文件系统权限。
PowerShell v6 及更高版本不支持 CryptoKeyRights 和 ActiveDirectoryRights。
类型: | Object |
接受的值: | FileSystemRights, RegistryRights, ActiveDirectoryRights, MutexRights, SemaphoreRights, CryptoKeyRights, EventWaitHandleRights |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将 SDDL 字符串传递给此 cmdlet。