Listando unidades mapeadas e nome de usuário Powershell Script

2

Faz um tempinho desde que eu toquei no PowerShell, então me esforcei para fazer isso funcionar 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

Por isso, espero que ele cole a letra da unidade, o local e o nome de usuário e, em seguida, exiba o 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 estiver no fórum errado não sabia ao certo qual seria o melhor.

Obrigado

    
por CharlesH 14.07.2014 / 11:04

2 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, usar o Add-Content.
  3. Você está adicionando seus resultados fora do loop, o que significa que você só receberá 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" $_}
}
    
por 14.07.2014 / 16:29
-1

Para contornar o scripting remoto do powershell, existem 2 formas que encontrei.

  1. Se você criar um arquivo de lote 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.
por 29.11.2016 / 17:01