我的PowerShell脚本效率低下吗?

时间:2015-09-24 18:09:38

标签: powershell

我写了一个脚本来删除远程服务器上超过90天的临时文件/文件夹。 server.txt文件加载了Get-Content,我使用'net use'映射到IPC $共享。我担心我没有使用Best Practices来删除旧的临时文件。这是我的剧本的主要内容:

net use \\$server\IPC$ /user:$Authname $pw /persistent:yes
Get-ChildItem -Path "\\$($server)\C$\Temp" -Recurse | Where-Object {!$_.PSIsContainer -and $_.LastAccessTime -lt $cutoffdate} | Remove-Item -Recurse
(Get-ChildItem -Path "\\$($server)\C$\Temp" -recurse | Where-Object {$_.PSIsContainer -eq $True}) | Where-Object {$_.GetFiles().Count -eq 0} | Remove-Item -Recurse
net use \\$Server\IPC$ /delete

第一个gci删除旧文件,第二个删除空文件夹。

我担心的原因是,在我的初始测试中,大约需要半小时才能删除一台服务器大约4 gb。我在一家大商店工作;我的脚本需要针对大约10,000台服务器运行。按照这个速度,我的剧本将不会超过六个月,我希望每季度运行一次。

我是在做一些艰难的事情吗?

1 个答案:

答案 0 :(得分:2)

  1. 获取服务器列表
  2. 遍历列表并使用invoke-command -computername
  3. 您的命令将在远程服务器上执行,而不是通过网络拉动所有非常慢的数据