从CSV获取数据以从多个服务器中删除用户文件夹

时间:2014-02-04 09:42:22

标签: powershell csv

我是powershell的新手,情况是我有一些不必要的用户文件夹,必须在不同的服务器上删除。所有服务器上的路径都是f.e. “\ server1 \ hiddenshare $ \ username”我的CSV看起来像:

ServerName,FolderName
SERVER1,AAAA
SERVER2,AAA1
SERVER3,AAA2

我正在尝试运行此代码:

$path = "C:\temp\servers_folders.csv"
$ServerName = Import-Csv -Path $path
$FolderName = Import-CSV -Path $path
Import-Csv -Path $path | % {
  Remove-Item -Path \\$ServerName\hiddenshare$\$FolderName -Recurse
    }

毕竟我得到了这个错误:

Remove-Item : Cannot find path '\\  \$\  ' because it does not exist.
At C:\temp\servers_folders.csv.ps1:5 char:3
+   Remove-Item -Path \\$ServerName\hiddenshare$\$FolderName -Recurse
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (\\  \usr$\  :String) [Remove-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

1 个答案:

答案 0 :(得分:0)

你不需要多次导入你的csv。 在foreach块内,您必须通过$_

引用当前项目

试试这个,删除-whatif如果没问题

$servers=import-csv .\servers.csv

$servers | %{
    remove-item -path \\$($_.servername)\users$\$($_.FolderName) -whatif
}