Sobre as regras de cotação artigo descreve regras para usar aspas simples e duplas no PowerShell. Use
…; $driveEject.Namespace(17).ParseName('%~d0').InvokeVerb('Eject')"
ou (você precisa excluir aspas duplas internas para cmd
também)
…; $driveEject.Namespace(17).ParseName("""%~d0""").InvokeVerb("""Eject""")"
No entanto, um Powershell Melhor Prática source deprecia o último: Recomenda-se evitar aspas duplas se não houver variáveis ou seqüências de escape em strings, prefira aspas simples .