PowerShell: Obtenha variáveis ​​da máquina remota e armazene-as em um arquivo do Excel na máquina local


0

Eu fiz essa pergunta antes, mas acho que não a expliquei bem: estou trabalhando em um projeto que usa scripts do PowerShell: gostaria de executar em uma máquina remota, um arquivo chamado “Remote” (existia no segundo imagem abaixo), que contém algumas variáveis, estou procurando obter o conteúdo dessas variáveis ​​quando o arquivo "Remoto" é executado na máquina remota, para que eu possa armazená-las em um arquivo excel na máquina local. faça isso por favor?

A primeira figura representa o comando que executará o arquivo chamado Remote

A segunda figura representa o arquivo remoto, que contém variáveis


@Ramhound Tentei armazenar os resultados do arquivo que quero executar em uma variável usando: $ result = invoke-command -computername (hostname) -filepath (o caminho do arquivo que eu quero que seja executado na máquina remota ) o resultado $ é armazenado na máquina local, mas não consigo obter o conteúdo da variável executada nesse arquivo!
Hkm Mahjoub 10/16/16

Como não somos um serviço de escrita de script, você precisará fornecer o que tentou (dentro da própria pergunta), se quiser que alguém olhe seriamente para sua pergunta.
Ramhound

Respostas:


1

Capturando dados de uma sessão remota:

New-PSSession -ComputerName localhost -Credential (Get-Credential) | Out-Null
$a = Invoke-Command -Session (Get-PSSession) -ScriptBlock {
    $env:PROCESSOR_ARCHITECTURE | Out-String
}
$b = Invoke-Command -Session (Get-PSSession) -ScriptBlock {
    "Test Data"
}
Get-PSSession | Remove-PSSession

Como você pode ver na captura de tela abaixo ... as variáveis $ae $bsão preenchidas com informações da PSSession remota (que pode ser em qualquer máquina com o PowerShell Remoting ativado )

insira a descrição da imagem aqui

Isso deve lhe dar o que você precisa - então você pode exportar qualquer conteúdo que você gostaria de arquivos de texto, arquivos CSV etc usando o Set-Content, Export-CSVe vários outros cmdlets / funções.


Senhor, editei meu pedido, por favor, você pode lê-lo e me dizer sua opinião novamente?
Hkm Mahjoub 14/03

Oi, eu acho que você tem mais de complicar as coisas ... com base na sua pergunta atualizado, você precisa fazer várias Invoke-comandos para obter múltiplas variáveis e não tentar distribuir um script para uma máquina para execução remota
Fazer87

: senhor, usei sua ideia e pude obter todas as variáveis ​​armazenadas no arquivo "Remoto" e depois armazená-las no arquivo do Excel, New-PSSession -ComputerName $ IP -Credential (Get-Credential) | Comando de Invocação Fora-Nulo - Sessão (Get-PSSession) - caminho de arquivo C: \ Usuários \ Hkm \ Desktop \ Script \ Remote.ps1 $ a = @ (Comando de Invocação - Sessão (Get-PSSession) -ScriptBlock {$ variable1, $ variável2, $ variável3, $ variável4}) Get-PSSession | Remove-PSSession $ a [0] #aqui você pode ver, eu posso mostrar o conteúdo de $ variable1
Hkm Mahjoub 14/16

Brilhante, lembre-se de que você pode colocar quantos comandos de chamada quiser e recuperar quantas variáveis ​​separadas desejar. Se isso ajudou - aceite-o como sua resposta ou faça um voto positivo para que possa ser identificado e também para ajudar outras pessoas. Obrigado.
Fazer87

! eu gostaria de agradece-lhe um senhor muito por me ajudar eu realmente aprecio sua ajuda
Hkm Mahjoub

0

No seu comentário, você diz que já obteve os resultados em uma variável local $ result, portanto, basta usar as funções de saída do arquivo PowerShell para obtê-lo em um arquivo legível pelo Excel.

Um arquivo .xlsx real levaria um pouco de trabalho para criar, mas você pode usar um arquivo de valor separado por vírgula .csv. Existem exemplos em https://superuser.com/a/404096/1571 de uma exportação csv ou canalizando o comando para um arquivo externo


Senhor, editei meu pedido, por favor, você pode lê-lo e me dizer sua opinião novamente?
Hkm Mahjoub 14/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.