ユーザーがActiveDirectoryから削除されると、不明なユーザーとして表示されます。
システムプロパティ->詳細設定->ユーザープロファイル->設定...
常に手動で削除する必要があります。
私のドメインには400台以上のワークステーションがあり、私の会社では離職率が非常に高くなっています。私のシステムにはCドライブしか含まれていません。そのデータが削除されない場合、システムが遅くなりますか?常に実行されている重いソフトウェアがあります。削除した場合、パフォーマンスに違いはありますか?
また、Powershellスクリプトを使用して、特定の期間(30日または90日以上など)にワークステーションにログインしていないユーザーのプロファイルを削除することもできます。
基本的に、あなたは次のようなものを使いたい
#Get user names that have logged onto workstation
$Users = gwmi win32_networkloginprofile | where {$_.name -match "DomainName\\"} | where {$_.name -notmatch "srvtasksched"}
#For each user, delete if they haven't logged into the workstation in over 2 weeks
$Users | foreach{
$Name = $_.Name
$LastLogon = $_.LastLogon
$LogonTime = [System.datetime]::ParseExact($LastLogon.Substring(0, $LastLogon.IndexOf(".")), "yyyyMMddHHmmss", [System.Globalization.DateTimeFormatInfo]::InvariantInfo)
if($(Get-Date).Subtract($LogonTime).TotalDays -ge 14)
{
#User hasn't logged into workstation in over 2 weeks
#Get profile path
$UserSID = $(New-Object System.Security.Principal.NTAccount($Name)).Translate([System.Security.Principal.SecurityIdentifier]).Value
$UserRegKey = GCI 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | where {$_.Name -match $UserSID}
$ProfilePath = $(Get-ItemProperty $UserRegKey.PSPath -Name ProfileImagePath).ProfileImagePath
Write-Host "Deleting User $Name"
gwmi win32_userprofile | where {$_.SID -eq $UserSID} | foreach {$_.Delete()}
}
私は寛大な気持ちだったので、そのスクリプトをドロップしてほとんど実行し、ドメイン名と最後のログオンからの日数を更新することができます。
リモート部分については、PowerShellリモート処理用に環境を設定し、Invoke-Command
コマンドレットを使用して、このスクリプトをスクリプトブロックパラメーターの後に貼り付けます。
-ScriptBlock {script here}
Delprof2の使用を検討してください: http://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/
リモートで実行する必要があるのは「リモートレジストリ」設定だけであり、レジストリ設定を含む、現在使用されていないすべてのプロファイル(または特定の年齢以上のプロファイル)を削除することができます。未知のものでもうまくいくと思いますが、これは確かに私の最初のステップです。リモートレジストリを設定したら、サイト全体でバッチファイルからdelprof2を実行できます。