我尝试使用 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-SmbShareGrant-SmbShareAccess cmdlet:

http://technet.microsoft.com/en-us/library/jj635727

http://technet.microsoft.com/en-us/library/jj635705


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!