在PowerShell脚本中运行Net Share命令

时间:2014-05-24 17:20:39

标签: function powershell

我尝试使用net share命令在powershell中共享一个文件夹,我不能使用组或用户名来获得共享权限,因为这个脚本将在具有不同操作系统语言的系统上使用,因此我使用组/ user 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 

1 个答案:

答案 0 :(得分:1)

这将有效:

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