powershell - 非英语系统上的新 SMBShare

标签 powershell internationalization

当我尝试使用以下命令在西类牙语系统上使用 PowerShell 创建共享时:

New-SMBShare -Name 'scripts$' -Path 'c:\scripts' -ChangeAccessEveryone

我收到一个错误,该错误翻译为:

New-SMBShare:帐户名称和安全标识符之间未进行映射。

因为它需要 Todos 组而不是 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

关于powershell - 非英语系统上的新 SMBShare,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60757462/

相关文章:

powershell - 从 XML 中提取 key

powershell - 如何检查在 Windows Server 2008 R2 上启用了哪个 SMB 版本

java - 防止 Struts 转义标签

java - 如何在 Spring Framework 中实现 i18n(带有 gTLD 的子目录)?

ruby-on-rails - 使用 Rails 服务器进行 AngularJS 模板翻译的方法

powershell - 在 Powershell 函数中省略 "return"是否安全?

powershell - 使用-Co​​mObject Word.application而不安装Word

unit-testing - 在 .ps1 脚本中模拟函数

ruby-on-rails - 在 gemified 插件中加载 I18n 文件

java - MessageResources 奇怪的行为