Como adicionar 'Abrir com o PowerShell' ao menu de contexto do objeto de pasta e carregar o perfil quando o PS for iniciado

0

Quando clico com o botão direito do mouse na pasta ou no espaço em branco dentro da pasta, quero ter uma opção de menu que lance o PowerShell nesse local, então quero executar uma função / alias que execute o trabalho de nivelar o diretório e sobrescrever se existir um arquivo com o mesmo nome.

Atualização: Usando o cmdlet get-help no powershell, consegui hackear esse comando que achata o diretório de trabalho e sobrescreve se o arquivo existe.

gci -r -file | move -force -destination $PWD

Atualização: Eu adicionei "Abrir com o PowerShell" ao menu de contexto por regedit

[HKEY_CLASSES_ROOT\Directory\Background\shell\Open with PowerShell]

[HKEY_CLASSES_ROOT\Directory\Background\shell\Open with PowerShell\command]
@="powershell.exe -noexit -command Set-Location '%V'"

[HKEY_CLASSES_ROOT\Directory\shell\Open with PowerShell]

[HKEY_CLASSES_ROOT\Directory\shell\Open with PowerShell\command]
@="powershell.exe -noexit -command Set-Location '%V'"

em seguida, adicionar um function foi semelhante a muitos outros idiomas:

function flatten { gci -r -file | move -force -destination $PWD }

Mas não consigo fazer isso carregar automaticamente quando abro o powershell. No bash, eu colocaria isso em .bashrc ou .profile e seria carregado.

Eu adicionei o arquivo profile.ps1 com o function em $pshome , agora recebo este erro:

. : File C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 cannot be loaded because running scripts is disabled
on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:3
+ . 'C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Não tenho certeza se a alteração da configuração de segurança é a única maneira de contornar isso.

Como permito carregar o script / alias o mais seguro possível?

Atualização:

Alterar o comando para a entrada abaixo em regedit carrega a função de que preciso:

powershell.exe -noexit -command Set-Location '%V'; function flatten { gci -r -file | move -destination $PWD -force }

Esta é uma solução alternativa. Ainda estou interessado em saber como carregar um perfil sem fazer alterações arriscadas na segurança do SO.

    
por sdkks 26.08.2016 / 04:24

1 resposta

0

Veja se esta implementação de funcionalidade semelhante ajuda.

    
por 27.08.2016 / 20:40