2013-05-21 125 views
0

我試圖通過使用Get-AclSet-Acl來更改文件夾所有者。當我嘗試通過使用.setOwner()來更改Get-Acl對象時,問題在於這是更改對象所有者屬性的正確方法嗎?我目前使用PS 2.0。使用powershell設置文件夾權限

$DomainNameShort = "domain" 
$profileName = "user_name" 
$newProfileLocation = "\\server\folder" 
$objUser = New-Object System.Security.Principal.NTAccount("$DomainNameShort\$profileName") 
$objFile = Get-Acl $newProfileLocation 
$objFile.SetOwner($objUser) 
Set-Acl -aclobject $objFile -path $newProfileLocation 

這是我得到的錯誤:

Exception calling "SetOwner" with "1" argument(s): "Some or all identity references could not be translated 
." 
At line:6 char:18 
+ $objFile.SetOwner <<<< ($objUser) 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : DotNetMethodException 

任何指導,將不勝感激,謝謝。

+1

你確定用戶名和域名在'ntaccount'對象創建時有效嗎?錯誤在於它無法驗證'$ objuser'中指定的帳戶的存在 –

+0

這似乎是做了詭計,因爲我正在測試時使用僞帳戶。謝謝 – Richard

+0

請注意,在SHARE(不是共享下的文件夾,而是共享文件夾)上使用'set-acl'會破壞繼承。剛剛在我的實驗室測試這個時發現了這一點=)提供解決方案作爲答案 –

回答

0

您的域名或用戶名不準確。

SetOwner()可以驗證提供$objuser

注意身份要知道,在分享他們使用Set-Acl(不是共享下的文件夾,但根本/股本身)可以打破權限的繼承。