0

Powershell ISE でこのスクリプトを実行すると:

[System.Threading.Thread]::CurrentThread.CurrentCulture = 'en-us'
$folder = Read-Host 'Dove sono le cartelle degli utenti?'
$name = Read-Host 'Specificare la cartella dell utente?'
takeown /f $folder\$name /r /d Y
icacls $folder\$name /t /c /grant T135837TS:F /q
icacls $folder\$name /grant ([String]($name.replace(".V2",""))):F /t /c /q

次のエラーが表示されます。

icacls : Invalid parameter "npac001"
At line:1 char:1
+ icacls $folder\$name /grant ([String]($name.replace(".V2",""))):F /t /c /q
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (Invalid parameter "npac001":String) [],  RemoteException
+ FullyQualifiedErrorId : NativeCommandError

npac001 は、アクセス許可が必要なユーザーです。

4

1 に答える 1

0

問題はicacls、ユーザーとアクセス保護ルール ( :f) が 1 つのパラメーターとして表示されないことです。

次の部分を一重引用符で囲んでみてください。

 icacls $folder\$name /grant '([String]($name.replace(".V2","")))':F /t /c /q

また

icaclsたとえば、次のように指定する前に、アクセス保護ルールを作成してみてください。

$user = ([String]($name.replace(".V2","")))
$rule = "'$user':f"
icacls "C:\folder" /grant $rule /t /c /q

注:与えられたアクセスの種類の前のユーザーを一重引用符で囲みます:f。したがって$rule、icacls に渡される前は、次のようになっているはずです。"'npac001':f"

于 2013-06-10T09:22:10.880 に答える