AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1438183
Accepted
fstab2323234
fstab2323234
Asked: 2019-05-18 10:44:47 +0800 CST2019-05-18 10:44:47 +0800 CST 2019-05-18 10:44:47 +0800 CST

powershell exclui pastas sem assumir a propriedade?

  • 772

Estou tentando criar um script que procura todos os perfis de usuário. Os perfis que não são acessados ​​há 90 dias ou mais são excluídos. Também quero excluir suas pastas de C:\Users para liberar espaço no disco rígido.

cd C:\Users\
foreach ($dir in $OlderDays) {
    Get-CimInstance -ComputerName $ComputerName -Class Win32_UserProfile -ErrorAction Stop | Where-Object {$_.Special -eq $false}

    Get-CimInstance -ComputerName $profile.ComputerName -ClassName Win32_UserProfile -ErrorAction Stop | Where-Object {$_.SID -eq $profile.RegKey.SID -and $_.LocalPath -eq $profile.RegKey.LocalPath} | Remove-CimInstance -ErrorAction Stop 

    Remove-item -force -Path $dir -recurse
}

Recebo acesso negado em todas as pastas que tentam ser excluídas de C:\Users.

Estou usando a conta admin. A única solução que encontrei até agora é remover, mas algumas estações de trabalho têm mais de 50 contas que precisam ser excluídas e isso não é muito eficiente quando clicar com o botão direito do mouse na pasta e clicar em excluir leva 10 segundos. Takeown levou cerca de 10 minutos por conta.

remove-item : Access to the path 'C:\Users\test5456\AppData\Local\Application Data' is denied.
At line:59 char:5
+     remove-item -force -Path C:\Users\$dir -recurse
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (C:\Users\test5456:String) [Remove-Item], UnauthorizedAccessExcepti 
   on
    + FullyQualifiedErrorId : RemoveItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.RemoveItemCommand

Executando como administrador

powershell windows-8
  • 4 4 respostas
  • 4889 Views

4 respostas

  • Voted
  1. Best Answer
    Ƭᴇcʜιᴇ007
    2019-05-18T11:08:41+08:002019-05-18T11:08:41+08:00

    Mesmo que você o esteja executando como administrador, você ainda terá que se apropriar da pasta (e de seu conteúdo) antes de poder excluí-la.

    Takeown levou cerca de 10 minutos por conta.

    TakeOwn é notoriamente lento, usar Get-ACL e Set-ACL do PowerShell é mais rápido.

    Para definir o proprietário da pasta e todo o seu conteúdo para o grupo Administradores integrado, seria algo assim (não testado):

    $Group = New-Object System.Security.Principal.NTAccount("Builtin", "Administrators")
    $ACL = Get-ACL $dir
    $ACL.SetOwner($Group)
    
    Get-ChildItem $dir -Recurse -Force | % {
        Set-ACL -AclObject $ACL -Path $_.fullname
    }
    

    Coloque isso dentro do loop Foreach, antes do comando Remove-Item.

    • 1
  2. Appleoddity
    2019-05-18T12:01:35+08:002019-05-18T12:01:35+08:00

    Você não precisa fazer isso. O Windows fará isso por você com a política de grupo chamada:

    Exclua perfis de usuário após um número especificado de dias.

    Além disso, já existe uma ferramenta fornecida para fazer isso chamada delprofe delprof2, se você quiser, faça manualmente. Ele também pode ser executado em um computador remoto.

    • 1
  3. Daniel Cogny
    2020-12-22T06:40:29+08:002020-12-22T06:40:29+08:00

    A solução recomendada funcionou principalmente para mim, mas:

    • Principalmente, o que significa que cerca de 50% dos perfis ainda não conseguiriam obter as permissões, portanto, não seriam excluídos.
    • O tempo gasto por item foi bastante alto em comparação com a seguinte solução:

    O que funcionou para mim foi usar cmd /c "rmdir $dir /s /q"como comando deletar, então no seu caso seria:

    cd C:\Users\
    foreach ($dir in $OlderDays) {
        Get-CimInstance -ComputerName $ComputerName -Class Win32_UserProfile -ErrorAction Stop | Where-Object {$_.Special -eq $false}
    
        Get-CimInstance -ComputerName $profile.ComputerName -ClassName Win32_UserProfile -ErrorAction Stop | Where-Object {$_.SID -eq $profile.RegKey.SID -and $_.LocalPath -eq $profile.RegKey.LocalPath} | Remove-CimInstance -ErrorAction Stop 
    
        cmd /c "rmdir $dir /s /q"
    }
    
    

    Essa solução é muito mais rápida e, até agora, excluiu mais de cem perfis em um computador sem uma única falha. Com o quão poderoso é o PowerShell, é uma pena que tenhamos que recorrer a chamar o cmd para fazer o trabalho, mas...

    A solução foi encontrada aqui: https://forums.ivanti.com/s/article/Folder-delete-actions-fail-when-the-folder-contains-a-Junction-soft-link?language=en_US

    • 1
  4. Christopher Hostage
    2019-05-18T11:32:01+08:002019-05-18T11:32:01+08:00

    Conforme comentado por @Ramhound, se o que você está tentando fazer é remover perfis de usuário antigos, não faça isso excluindo C:\Users\username . Primeiro, remova os perfis do PC e aguarde alguns minutos. Se funcionar corretamente, remover o perfil removerá a estrutura de pastas automaticamente. Se o perfil ainda existir, tentar excluir a pasta como você está tentando fazer gerará vários erros de permissão.

    Consulte o conteúdo relacionado em

    https://www.business.com/articles/powershell-manage-user-profiles/

    https://community.spiceworks.com/how_to/124316-delete-user-profiles-with-powershell

    Script Power Shell para excluir os perfis de usuário do servidor Windows 2008 r2 para a máquina local (Windows 7)

    • 0

relate perguntas

  • Como colocar string variável em array no powershell?

  • Powershell e regex: lista de arquivos "backup ao salvar" do Notepad ++. Editar nome, classificar por lastwritetime

  • Adicionando cor de primeiro plano ao perfil do Powershell?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Posso fazer com que este script do PowerShell aceite vírgulas?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve