1

私はスクリプト作成に比較的慣れていません。以下は、1 日以上経過した一時ファイルを消去するために使用しているスクリプトですが、アクティブな (ログインしている) ユーザーの一時ファイルを削除せず、どのオブジェクトを通知するかをチェックするようにしたいと考えています。スキップされました。

#>
$oldTime = [int]1 # 1 day 
# Create array containing all user profile folders
$colProfiles = Get-ChildItem "C:\Documents and Settings\" -Name
# Remove the "All Users" profile from the array
$colProfiles = $colProfiles -ne "All Users"

# Removes temporary files from each user profile folder
ForEach ( $objProfile in $colProfiles ) {
    # Remove all files and folders in user's Temp folder
    Get-ChildItem "C:\Documents and Settings\$objProfile\Local Settings\Temp\*" -recurse | WHERE {($_.CreationTime -le $(Get-Date).AddDays(-$oldTime))} | remove-item -force -recurse
    # Remove all files and folders in user's Temporary Internet Files. The -force switch on Get-ChildItem gets hidden directories as well.
    Get-ChildItem "C:\Documents and Settings\$objProfile\Local Settings\Temporary Internet Files\*" -recurse -force | WHERE {($_.CreationTime -le $(Get-Date).AddDays(-$oldTime))} | remove-item -force -recurse
4

1 に答える 1

0

ファイルを削除する前にユーザー名をテストできます。

if ($objProfile -neq ( gwmi Win32_ComputerSystem ).username.split('\')[1]))
{ .. can delete ..}

また

if ($objProfile -neq [environment]::UserName)
    { .. can delete ..}
于 2012-05-11T19:38:41.120 に答える