powershell - 非英文系统上的New-SMBShare
问题描述
当我尝试使用 PowerShell 在西班牙系统上使用以下命令创建共享时:
New-SMBShare -Name 'scripts$' -Path 'c:\scripts' -ChangeAccess Everyone
我收到一个错误,它转化为:
New-SMBShare: No mapping was made between account names and security identifiers.
因为它期望Todos
group 而不是Everyone
.
有没有办法New-SmbShare
为所有本地化设置一个命令?
解决方案
该Everyone
身份被称为“众所周知的”安全标识符。
您可以像这样构造并将其转换为本地化表示:
$EveryoneWKSID = [System.Security.Principal.SecurityIdentifier]::new([System.Security.Principal.WellKnownSidType]::WorldSid, $null)
$EveryoneLocal = $EveryoneWKSID.Translate([System.Security.Principal.NTAccount]).Value
此时您可以执行以下操作:
New-SMBShare -Name 'scripts$' -Path 'c:\scripts' -ChangeAccess $EveryoneLocal
推荐阅读
- html - 操作系统动画不起作用?
- python - 无法看到 Selenium 异常错误消息
- c# - 如何通过 ssh 向 Linux Shell 发送命令;将输出存储为变量;但不要将输出打印到控制台
- java - 创建仅具有初始起始偏移的动画的问题
- angularjs - 上传任务快照问题
- ios - 有没有办法在不违反任何许可条款的情况下创建 GPL 许可的 iOS 应用程序并将其分发给客户?
- r - R闪亮的observeEvent在模块中的功能中不起作用
- vba - 带有 MailEnvelope 的 VBA 停止工作
- html - Z-index:孩子放在父母的兄弟姐妹后面
- c - 为什么只有在 main 之外使用时才需要链接数学库?