Daftar Drive yang Dipetakan dan Nama Pengguna Skrip Powershell

2

Sudah agak lama sejak saya menyentuh PowerShell begitu berjuang untuk mendapatkan ini berfungsi seperti yang saya harapkan.

$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

Jadi saya berharap untuk menarik huruf drive, lokasi dan nama pengguna kemudian mengeluarkan nama pengguna sebagai file teks. Saya telah membaca banyak forum lain tetapi tidak bisa membuat Get-WmiObjects bekerja sama.

Permintaan maaf jika ini ada di forum yang salah tidak yakin yang mana yang terbaik.

Terima kasih

CharlesH
sumber

Jawaban:

4

Ada beberapa hal yang salah di sini.

  1. $Result1 GetWmiObjectSaya berasumsi seharusnya ada di =sini?
  2. $Result | Out-Filetidak bermain bagus dengan campuran objek dalam array. Mungkin ingin For-EachObjectmengatasinya menggunakan Add-Content.
  3. Anda menambahkan hasil di luar lingkaran, artinya Anda hanya akan mendapatkan yang terakhir $computerdi$computerlist

Mungkin ingin melakukan sesuatu seperti berikut:

$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" $_}
}
Tanner Faulkner
sumber
Sempurna terima kasih Tanner, malu semua upaya jarak jauh saya diblokir oleh Firewall sekarang GRR .. Script bekerja dengan baik.
CharlesH
Cukup yakin itu tidak akan berfungsi dari jarak jauh.
NetMage
@ NetMage Tentu saja. Hanya perlu mengkonfigurasi WMI jarak jauh: msdn.microsoft.com/en-us/library/ee309377(v=vs.85).aspx
Tanner Faulkner
-1

Untuk menyiasati powershell scripting jarak jauh, ada 2 cara yang saya temukan.

  1. Jika Anda membuat file batch dengan perintah berikut, ini akan dijalankan pada komputer jarak jauh.

powershell.exe -executionpolicy memotong -file "FILE PATH HERE"

  1. Jalankan skrip Anda di Powershell ISE. Pilih semua skrip Anda dan klik tombol jalankan seleksi.
Tony
sumber
Jawaban Anda tidak menjawab pertanyaan penulis, tetapi merupakan jawaban, tentang cara menyiasati kebijakan grup yang mencegah skrip Powershell dieksekusi (yaitu Restricteddari Dapatkan-eksekusi kebijakan ). Ini juga kemungkinan tidak akan berfungsi pada komputer yang terhubung ke domain aktif.
Ramhound