Confira esta resposta em StackOverflow :
Enquanto a resposta atual está correta na maioria dos casos, há certas situações em que ela não fornecerá a resposta correta. Se você usar dentro de suas funções de script, então:
$MyInvocation.MyCommand.Name
Retorna o nome da função em vez do nome do nome do script.
function test {
$MyInvocation.MyCommand.Name
}
Irá dar-lhe "teste", independentemente do nome do seu script. O comando certo para obter o nome do script é sempre
$MyInvocation.ScriptName
isso retorna o caminho completo do script que você está executando. Se você precisar apenas do nome do arquivo de script, este código deve ajudá-lo:
split-path $MyInvocation.PSCommandPath -Leaf