我正在尝试设置目录中具有特定修改日期的许多文件夹的所有权,这要求我使用Foreach-Object。我能够获得我想要的所有文件夹的名称,但是,我无法在文件夹上使用命令提示符命令“takeown”和“icacls”。
继承我尝试的内容:
Get-ChildItem D:\2008_Profile |
?{$_.LastWriteTime -lt (Get-Date).AddDays(-163)} |
ForEach-Object {
echo $_.Name
takeown /f $_.Name /R
icacls $_.Name /grant administrators:F
}
以下是我得到的:
aan.V2
takeown : ERROR: The system cannot find the file specified.
At line:4 char:1
+ takeown /f $_.Name /R
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (ERROR: The syst...file specified.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Successfully processed 0 files; Failed processing 1 files
icacls : aan.V2: The system cannot find the file specified.
At line:5 char:1
+ icacls $_.Name /grant administrators:F
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (aan.V2: The sys...file
specified.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
注意:aan.V2是文件夹名称
答案 0 :(得分:3)
在评论中回答的问题:
将
$_.Name
替换为$_.FullName
以完整引用内容 路径。或者将当前目录更改为引用的目录 宾语。 - TheMadTechnician