Eu não entendo muito bem o roteiro que você forneceu, mas acho que isso pode ser útil para você. Não é tão legal quanto usar os gatilhos do WMI, mas deve funcionar.
# The while loop in this script will naturally generate errors until F is mounted.
# This line shuts PowerShell up for awhile.
$ErrorActionPreference = 'SilentlyContinue'
# Loop the script until F is mounted.
while ($FMounted -eq $null)
{
$FMounted = Get-PSDrive F
}
# Reset $ErrorActionPreference to default.
$ErrorActionPreference = 'Continue'
Testado no PS 3.0 no Windows 7 Ultimate x64. Deve ser razoavelmente compatível com versões anteriores.
EDIT: Bem, meus testes acima foram um pouco mais rudimentares e fizeram funcionar. Mas o roteiro completo parece quebrar um pouco, pelo menos no ISE. Veja o que estava trabalhando para mim no console do PowerShell.
$ErrorActionPreference = 'SilentlyContinue'
$x = Get-PSDrive X
while ($x -eq $null) {$x = Get-PSDrive X};echo 'X is mounted'
O comando seria interrompido até que eu montasse uma unidade TrueCrypt em X, depois ele executaria o comando echo e terminaria.
Eu cortei o script um pouco mais no ISE e tentei fazer o loop completo ... while como você tinha, adicionando outro loop while para pendurar o script até que o X fosse desmontado. Ele funcionou uma vez para executar um comando echo quando a unidade foi montada e novamente quando desmontada. No entanto, desde então, Get-PSDrive de dentro do ISE não mostra X, independentemente do seu status atual.
Eu iniciei um novo console do PowerShell no ISE e executei o script completo novamente, desta vez começando com o X já montado. O primeiro loop while foi encerrado com sucesso, mas o loop while condicionado em $x -ne $null
permaneceu preso mesmo depois que meu disco foi desmontado. A eliminação do script e a verificação de Get-PSDrive
mostraram que essa instância do PowerShell ainda mostrava X como disponível, embora não estivesse realmente presente.
Talvez você tenha mais sorte ou encontre uma solução alternativa. Por favor, deixe-me saber se isso ajuda, e se você descobrir uma solução.