ConvertFrom-SddlString
将 SDDL 字符串转换为自定义对象。
语法
All
ConvertFrom-SddlString
[-Sddl] <String>
[-Type <AccessRightTypeNames>]
[<CommonParameters>]
说明
此 cmdlet 仅在 Windows 平台上可用。
ConvertFrom-SddlString
cmdlet 使用以下属性将安全描述符定义语言字符串转换为自定义 PSCustomObject 对象:Owner、Group、DiscretionaryAcl、SystemAcl 和 RawDescriptor。
所有者、组、自由裁量权和 SystemAcl 属性包含 SDDL 字符串中指定的访问权限的可读文本表示形式。
PowerShell 5.0 中引入了此 cmdlet。
示例
示例 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
参数,因此显示的访问权限适用于文件系统。
第三个命令将 ConvertFrom-SddlString
cmdlet 与 -Type
参数一起使用,因此返回的访问权限适用于注册表。
参数
-Sddl
指定表示 SDDL 语法中安全描述符的字符串。
参数属性
类型: | String |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
(All)
Position: | 0 |
必需: | True |
来自管道的值: | True |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
-Type
指定 SDDL 字符串表示的权限类型。
此参数的可接受值为:
- FileSystemRights
- RegistryRights
- ActiveDirectoryRights
- MutexRights
- SemaphoreRights
- CryptoKeyRights
- EventWaitHandleRights
默认情况下,cmdlet 使用文件系统权限。
PowerShell v6 及更高版本不支持 CryptoKeyRights 和 ActiveDirectoryRights。
参数属性
类型: | Microsoft.PowerShell.Commands.ConvertFromSddlStringCommand+AccessRightTypeNames |
默认值: | None |
接受的值: | FileSystemRights, RegistryRights, ActiveDirectoryRights, MutexRights, SemaphoreRights, CryptoKeyRights, EventWaitHandleRights |
支持通配符: | False |
不显示: | False |
参数集
(All)
Position: | Named |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | False |
来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
String
可以通过管道将 SDDL 字符串传递给此 cmdlet。
备注
此 cmdlet 仅在 Windows 平台上可用。