CIAO
Se eseguo questo script:
param($RemovedSID,$RemAccNameDel)
# Funzione che analizza alcune chiavi numeriche del registro relative al servizio Windows Search ed elimina le chiavi superflue che hanno il valore delle
# loro voci "URL" o "Path" pari ad una directory che include ancora il SID orfano dell'account rimosso o il nome di questo account.
function WindowsSearchKeysDeleted ($StartKey)
{
Get-ChildItem $StartKey -Recurse |
ForEach-Object {
# Verifica URL
$ShouldRemove = @(Get-ItemProperty $_ URL | Where-Object { $_.URL -eq $RemovedSID -or $RemAccNameDel}).Count -gt 0
# Verifica Path
$ShouldRemove = $ShouldRemove -or (@(Get-ItemProperty $_ Path | Where-Object { $_.Path -eq $RemovedSID -or $RemAccNameDel}).Count -gt 0)
# Rimozione chiave corrente e sottochiavi
if ($shouldRemove) {
$_ | Remove-Item -Recurse -WhatIf
}
}
}
WindowsSearchKeysDeleted -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRules'
ottengo, per esempio, la scritta "Impossibile trovare il percorso 'C:\Windows\system32\HKEY_LO
CAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemI
ndex\DefaultRules\1"
Mentre, se eseguo questo script:
param($RemovedSID,$RemAccNameDel)
# Funzione che analizza alcune chiavi numeriche del registro relative al servizio Windows Search ed elimina le chiavi superflue che hanno il valore delle
# loro voci "URL" o "Path" pari ad una directory che include ancora il SID orfano dell'account rimosso o il nome di questo account.
function WindowsSearchKeysDeleted ($StartKey)
{
Get-ChildItem \$StartKey -Recurse |
ForEach-Object {
# Verifica URL
$ShouldRemove = @(Get-ItemProperty $_ URL | Where-Object { $_.URL -eq $RemovedSID -or $RemAccNameDel}).Count -gt 0
# Verifica Path
$ShouldRemove = $ShouldRemove -or (@(Get-ItemProperty $_ Path | Where-Object { $_.Path -eq $RemovedSID -or $RemAccNameDel}).Count -gt 0)
# Rimozione chiave corrente e sottochiavi
if ($shouldRemove) {
$_ | Remove-Item -Recurse -WhatIf
}
}
}
WindowsSearchKeysDeleted -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRules'
ottengo, per esempio, l'errore "Impossibile trovare il percorso 'C:\Windows\system32\HKEY_LO
CAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemI
ndex\DefaultRules\1".
Mentre, se eseguo questo script:
param($RemovedSID,$RemAccNameDel)
# Funzione che analizza alcune chiavi numeriche del registro relative al servizio Windows Search ed elimina le chiavi superflue che hanno il valore delle
# loro voci "URL" o "Path" pari ad una directory che include ancora il SID orfano dell'account rimosso o il nome di questo account.
function WindowsSearchKeysDeleted ($StartKey)
{
Get-ChildItem \$StartKey -Recurse |
ForEach-Object {
# Verifica URL
$ShouldRemove = @(Get-ItemProperty $_ URL | Where-Object { $_.URL -eq $RemovedSID -or $RemAccNameDel}).Count -gt 0
# Verifica Path
$ShouldRemove = $ShouldRemove -or (@(Get-ItemProperty $_ Path | Where-Object { $_.Path -eq $RemovedSID -or $RemAccNameDel}).Count -gt 0)
# Rimozione chiave corrente e sottochiavi
if ($shouldRemove) {
$_ | Remove-Item -Recurse -WhatIf
}
}
}
WindowsSearchKeysDeleted -StartKey 'HKLM:\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRules'
ottengo, per esempio, l'errore "Impossibile trovare l'unita` '\HKLM' .
Come mai?
GRAZIE
CIAO
PS: Tali script vengono eseguiti tramite il comando:
C:\Windows\system32>powershell -ExecutionPolicy Unrestricted -file "D:\Users\xxx\Documents\a.ps1" "S-1-5-21-152799110-1058532297-3105840818-1000" "AccountEliminare"