O cmdlet Remove-WmiObject exclui uma instância de uma classe WMI (Instrumentação de Gerenciamento do Windows) existente.
Exemplos
Exemplo 1: fechar todas as instâncias de um processo do Win32
notepad
$np = Get-WmiObject -Query "select * from Win32_Process where name='notepad.exe'"
$np | Remove-WmiObject
Este exemplo fecha todas as instâncias de Notepad.exe.
O primeiro comando inicia uma instância do Bloco de Notas.
O segundo comando usa o cmdlet Get-WmiObject para recuperar as instâncias do Win32_Process que correspondem a Notepad.exee, em seguida, armazena-as na variável $np.
O terceiro comando passa o objeto na variável $np para Remove-WmiObject, que exclui todas as instâncias de Notepad.exe.
Exemplo 2: excluir uma pasta
Esse comando exclui a pasta C:\Test.
$a = Get-WmiObject -Query "Select * From Win32_Directory Where Name ='C:\\Test'"
$a | Remove-WmiObject
O primeiro comando usa Get-WmiObject para consultar a pasta C:\Test e armazena o objeto na variável $a.
O segundo comando canaliza a variável $a para Remove-WmiObject, o que exclui a pasta.
Parâmetros
-AsJob
Indica que esse cmdlet é executado como um trabalho em segundo plano. Use esse parâmetro para executar comandos que levam muito tempo para serem concluídos.
Novos cmdlets CIM, introduzidos no Windows PowerShell 3.0, executam as mesmas tarefas que os cmdlets WMI. Os cmdlets CIM estão em conformidade com os padrões do WS-Management (WSMan) e com o padrão CIM (Common Information Model), que permite que os cmdlets usem as mesmas técnicas para gerenciar computadores que executam o sistema operacional Windows e aqueles que executam outros sistemas operacionais. Em vez de usar Remove-WmiObject, considere usar o cmdlet Remove-CimInstance.
Quando você usa o parâmetro AsJob, o comando retorna um objeto que representa o trabalho em segundo plano e exibe o prompt de comando. Você pode continuar a trabalhar na sessão enquanto o trabalho é concluído. Se Remove-WmiObject for usado em um computador remoto, o trabalho será criado no computador local e os resultados de computadores remotos serão retornados automaticamente para o computador local. Para gerenciar o trabalho, use os cmdlets que contêm o substantivo Job (os cmdlets de Trabalho ). Para obter os resultados do trabalho, use o cmdlet Receive-Job.
Para usar esse parâmetro para computadores remotos, os computadores locais e remotos devem ser configurados para comunicação remota. Inicie o Windows PowerShell usando a opção Executar como administrador. Para obter mais informações, confira about_Remote_Requirements.
Para obter mais informações sobre trabalhos em segundo plano do Windows PowerShell, consulte about_Jobs e about_Remote_Jobs.
Especifica a autoridade a ser usada para autenticar a conexão WMI. Você pode especificar a autenticação padrão NTLM ou Kerberos. Para usar o NTLM, defina a configuração de autoridade como ntlmdomain:<DomainName>, em que <DomainName> identifica um nome de domínio NTLM válido. Para usar Kerberos, especifique kerberos:<DomainName>\<ServerName>. Você não pode incluir a configuração de autoridade ao se conectar ao computador local.
Especifica o nome do computador no qual esse cmdlet é executado. O padrão é o computador local.
Digite o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado de um ou mais computadores. Para especificar o computador local, digite o nome do computador, um ponto (.) ou localhost.
Esse parâmetro não depende da comunicação remota do Windows PowerShell. Você pode usar o parâmetro ComputerName mesmo se o computador não estiver configurado para executar comandos remotos.
Especifica uma conta de usuário que tem permissão para executar essa ação. O padrão é o usuário atual.
Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential, como um gerado pelo cmdlet Get-Credential. Se você digitar um nome de usuário, esse cmdlet solicitará uma senha.
Especifica o número máximo de conexões simultâneas que podem ser estabelecidas para executar esse comando.
Esse parâmetro é usado junto com o parâmetro asJob . O limite de limitação se aplica somente ao comando atual, não à sessão ou ao computador.
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.