我尝试使用 net share 命令在 powershell 中共享一个文件夹,我不能使用组或用户名来获得共享权限,因为这个脚本将在具有不同操作系统语言的系统上使用,因此我使用组/用户SID 设置共享权限。
这是我的脚本,我的功能在命令之外工作得很好。但我的功能在“NET SHARE”cmd 中不起作用。
function Get-GroupName {
param ($SID)
$objSID = New-Object System.Security.Principal.SecurityIdentifier($sid)
$objUser = $objSID.Translate([System.Security.Principal.NTAccount])
$objUser.Value
}
# Share Folder + Set Share Permission SID Based
cmd /c net share MSI=C:\MSI /GRANT:(Get-GroupName -SID 'S-1-1-0'),READ
请您参考如下方法:
这会起作用:
cmd /c $( "net share MSI=C:\MSI /GRANT:""$(Get-GroupName -SID 'S-1-1-0')"",READ" )
但如果您使用的是 Windows 8 或更高版本、Windows Server 2012 或更高版本,您可以改用 Set-SmbShare
和 Grant-SmbShareAccess
cmdlet: