O PowerShell executa programas com argumentos como usuários diferentes

1

Eu estou tentando criar um script simples (ou assim eu pensei) na inicialização para minha máquina de trabalho.

Para isso eu preciso abrir principalmente

IE Firefox como usuário logado Firefox como usuário Admin Outlook como perfil principal

Estou procurando fazer isso com o Powershell - todas as idéias sobre como obter a execução como usuário administrador do Firefox, já que consegui fazer o resto funcionar.

GettingMyHeadAroundPSScripting
fonte
Você precisa mostrar seu código existente se quiser alguma ajuda.
precisa
Eu tenho usado os atalhos da melhor maneira possível, usando o comando Runas. Por exemplo, 'code' "C: \ Arquivos de programas \ Mozilla Firefox \ firefox.exe" -não remoto e C: \ Windows \ System32 \ runas.exe / usuário: Domain \ User2 "C: \ Arquivos de Programas \ Mozilla Firefox \ firefox.exe -no-remote" 'code'
GettingMyHeadAroundPSScripting
Você pode configurar um atalho para usar Runas por padrão nas Propriedades avançadas.
precisa
Eu consegui criar um atalho para fazer isso - estava ok para quando eu precisava abrir apenas 1 item, mas agora estou procurando ter 3 instâncias do Firefox abertas ao mesmo tempo (todos como usuários diferentes), mas não consigo parâmetro -remote para funcionar também
GettingMyHeadAroundPSScripting

Respostas:

1

Você precisa criar um objeto de credenciais com os devidos, e depois executar o aplicativo que deseja com o seguinte:

$username = "username"
$password = "password"
$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

Start-Process filefullpath.exe -WorkingDirectory path_here -Credential ($credentials)

Entendi daqui .

EliadTech
fonte
Tenho vindo a utilizar o acima, mas não pode empurrar o parâmetro "não-remoto" junto com isso também
GettingMyHeadAroundPSScripting
O que é "não remoto"? não consegui encontrar nada sobre isso.
EliadTech
Sem-Remote é o parâmetro Firefox que obriga cada nova instância do firefox para abrir como um processo separado - caso contrário você abrir o Firefox com User1 tente abri-lo com user2 e ele simplesmente abre uma nova janela como User1
GettingMyHeadAroundPSScripting
Em seguida, basta adicioná-lo ao "start-process" com "-ArgumentList". Não posso testar no momento, tentarei hoje mais tarde.
EliadTech
Eu tenho tentado isso ainda Quando eu executá-lo Tudo o que vejo acontecer é que uma nova aba na janela atual aparece - onde este deve forçar uma nova janela para aparecer em vez
GettingMyHeadAroundPSScripting
-1

Meu script é o seguinte

Isso seria executado por DOMAIN \ User1

$username1 = "Domain\user2"
$username2 = "Domain\User1_adm"
$password = "Passw0rd!"
$credentials1 = New-Object System.Management.Automation.PSCredential -ArgumentList    @($username1,(ConvertTo-SecureString -String $password -AsPlainText -Force))
$credentials2 = New-Object System.Management.Automation.PSCredential -ArgumentList @($username2,(ConvertTo-SecureString -String $password -AsPlainText -Force))
$Args1 = "-no-remote"
$Args2 = "no-merge"

Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe" -ArgumentList $Args1 -Credential ($credentials1)
Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe" -ArgumentList $Args1 -Credential ($credentials2)
Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe"
Start-Process "iexplore.exe" -ArgumentList $Args2 -Credential ($credentials1)
Start-Process "iexplore.exe" -ArgumentList $Args2 -Credential ($credentials2)
Start-Process "iexplore.exe" -ArgumentList $Args2
GettingMyHeadAroundPSScripting
fonte