Listagem de unidades mapeadas e nome de usuário Powershell Script


2

Já faz algum tempo desde que eu toquei no PowerShell, então me esforcei para conseguir esse trabalho como eu esperava.

$computerlist = Get-Content H:\MappedDrive\ListOfMachines.txt

ForEach ($computer in $computerlist)
{

   $Result1 Get-WmiObject Win32_MappedLogicalDisk -computerName $computer | Select Name,ProviderName 
   $Result2 get-wmiobject win32_computersystem -computer $computer | select username 

}

$Result += $Result1, $Result2 | Out-File H:\MappedDrive\$computer.txt

Então, espero tê-lo puxando tanto a letra da unidade, localização e nome de usuário, em seguida, a saída do nome do computador como um arquivo de texto. Eu li muitos outros fóruns, mas simplesmente não consigo obter os Get-WmiObjects para trabalharem juntos.

Desculpas se isso está no fórum errado não tinha certeza qual seria o melhor.

obrigado

Respostas:


4

Há algumas coisas erradas aqui.

  1. $Result1 GetWmiObject Eu suponho que deveria haver um = Aqui?
  2. $Result | Out-File não está jogando bem com a mistura de objetos na matriz. Pode querer For-EachObject em vez disso, usando Add-Content.
  3. Você está adicionando seus resultados fora do loop, o que significa que você só vai conseguir o seu último $computer no $computerlist

Pode querer fazer algo como o seguinte:

$computerlist = Get-Content H:\MappedDrive\ListOfMachines.txt

ForEach ($computer in $computerlist)
{

   $Result1 = Get-WmiObject Win32_MappedLogicalDisk -computerName $computer | Select Name,ProviderName 
   $Result2 = Get-wmiobject Win32_computersystem -computer $computer | select username 
   $Result += $Result1, $Result2 | %{Add-Content "H:\MappedDrive\$computer.txt" $_}
}

Perfeito obrigado Tanner, vergonha todas as minhas tentativas remotas estão sendo bloqueadas pelo Firewall agora GRR .. Script funcionando perfeitamente embora.
CharlesH

Tenho certeza de que não funcionará remotamente.
NetMage

@NetMage Claro que sim. Só precisa configurar o WMI remoto: msdn.microsoft.com/pt-br/library/ee309377(v=vs.85).aspx
Tanner Faulkner

-1

Para contornar scripts remotos do powershell, existem 2 maneiras que encontrei.

  1. Se você criar um arquivo em lotes com os seguintes comandos, ele será executado em um computador remoto.

powershell.exe -executionpolicy bypass -file "CAMINHO DO ARQUIVO AQUI"

  1. Execute seu script no Powershell ISE. Selecione todo o seu script e clique no botão de seleção de execução.

Sua resposta não responde à pergunta do autor, mas é uma resposta sobre como contornar uma política de grupo que impede a execução de scripts do Powershell (ou seja, Restricted de Get-executionpolicy). Isso também provavelmente não funcionará no computador conectado a um domínio ativo.
Ramhound
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.