仮想サーバーのごみ箱からすべてのコンテンツを削除するPowershellスクリプトを作成します。何らかの理由で、Windows 2003のごみ箱のパスを見つける際にエラーが発生し、その中のすべてを削除するためにごみ箱を見つけることができません。ここの誰かが私がこのコードスニペットで間違っていることについてアドバイスをくれるかどうか疑問に思っていました:
if($serverVersion.name -like '*2003*'){
$dir = "\\$server" + '\C$\recycled'
}
elseif($serverVersion.name -like '*2008*'){
$dir = "\\$server" + '\C$\$recycle.bin'
}
$recycleArray = @()
foreach ($item in get-childitem -path $dir){
$recycleArray += $item
}
for ($i = 0; $i -le $recycleArray.length; $i++){
$removal = $dir + "\" + $recycleArray[$i]
remove-item $removal -force -recurse
}
W2K8のごみ箱からすべてを正しく削除できるので、ごみ箱へのパスが見つかったら、コードは正しく機能するはずです。これは、見たいと思っている人のために私が受け取るエラーメッセージの写真です。
また、好奇心から、このコードをすべて削減し、2003年と2008年の両方で2つのワンライナーを作成する方法はありますか?私がこれを書いた現在の方法は、Powershellのコマンドレットを利用していないことを認識しており、W2K3ごみ箱の何が問題になっているのかを理解したら、それを改善したいと考えています。