私は、Windows コンピューターから、特定の管理者またはサービス アカウントを無視して、プロファイルが 90 日を超えて休止状態になっているすべてのユーザーのユーザー プロファイル、"C:\Users" 内のユーザー フォルダー、および "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" 内のユーザー レジストリ キーを削除する Powershell スクリプトを作成しようとしています。
これら 3 つすべてが必要な理由は、このスクリプトによって、ローカル アカウントとドメイン アカウントの両方を含む休止状態のプロファイルがコンピューターから削除されるようにするためです。
注: ここで行っていることを実現するために、グループ ポリシーは使用せず、Powershell のみを使用しています。
今のところ動作していないコードは次のとおりです。
Get-CimInstance -Class Win32_UserProfile |
Where-Object {(!$_.Special) -and ($_.LastUseTime -lt (Get-Date).AddDays(-90)) -and ($_.SID -notmatch '-500$')} |
Remove-CimInstance -WhatIf
$profiledirectory="C:\Users\"
Get-ChildItem -Path $profiledirectory | Where-Object {$_.LastAccessTime -lt (Get-Date).AddDays(-90) -and ($_.FullName -notmatch 'Administrator|Public|LocalAdmin') }
ForEach-Object{
Get-ChildItem 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\ProfileList' |
ForEach-Object{
$profilepath=$_.GetValue('ProfileImagePath')
if($profilepath -notmatch 'administrator|NetworkService|Localservice|systemprofile|LocalAdmin'){
Write-Host "Removing item: $profilepath" -ForegroundColor green
Remove-Item $_.PSPath -Whatif
Remove-Item $profilepath -Recurse -Force -Whatif
}else{
Write-Host "Skipping item:$profilepath" -Fore blue -Back white
}
}
}
ご意見やご提案がありましたら、ぜひお聞かせください。ありがとうございます!