[英]Changing share permissions using Powershell
我正在嘗試修改運行 2008 R2 或 2012 的一堆 Windows 服務器上共享驅動器的共享權限。
我編寫了一個腳本,你可以在這里找到:
Import-Module ActiveDirectory
$list = Get-ADComputer -Filter 'SamAccountName -like "*FP*"' | Select -Exp Name
foreach ($Computer in $list)
{
Grant-SmbShareAccess -Name User -CimSession Server -AccountName "username" -AccessRight Full -confirm:$false
$acl = (Get-Item \\$Computer\d$\User ).GetAccessControl('Access')
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule ("Corp\uc4serv","FullControl","ContainerInherit, ObjectInherit","None","Allow")
$acl.AddAccessRule($rule)
Set-Acl \\$Computer\d$\User $acl
Write-Host -ForegroundColor DarkGreen "Permissions granted on $Computer"
}
Write-Host -ForegroundColor DarkBlue "Command Has Completed"
但它在 2008 服務器上可能不起作用,因為它們無法運行 Get-SmbShareAccess cmdlet。
我想要做的與這里的這篇文章非常相似: How to set share permissions on a remote share with Powershell? 但特別是在 Windows 服務器上。
我還在網站 ( http://windowsitpro.com/powershell/managing-file-shares-windows-powershell ) 上找到了此代碼:
$acl = Get-Acl `
\\servername\c$\Users\username\sharetest
$permission = "corp\uc4serv","FullControl","Allow"
$accessRule = New-Object `
System.Security.AccessControl.FileSystemAccessRule `
$permission
$acl.SetAccessRule($accessRule)
$acl |
Set-Acl \\servername\c$\Users\username\sharetest
但這只是在共享上設置安全而不是共享權限。
我還研究了使用 Net Share 命令,但為了更改共享權限,它必須完全刪除並重新創建共享驅動器。
您可以使用“網絡共享”。 使用 Invoke-Command 在每個遠程服務器上運行它。
例子
Source - $server = "MYSRV" ; $user = "username" ; $SrvPath = "E:\Users\$user"
$sb = {
param($User,$SrvPath)
NET SHARE $User$=$SrvPath "/GRANT:Domain Admins,FULL" "/GRANT:$User,CHANGE" /REMARK:"Home folder for $SrvPath"
}
Invoke-Command -Computername "$Server" -ScriptBlock $sb -ArgumentList $user,$SrvPath
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.