2014-04-15 5 views
0

여기 내 문제가 있습니다 ... PowerShell 스크립트를 통해 WOL (Wake on LAN)에 대한 컴퓨터 이름, MAC 주소 및 IP 주소 목록 (CSV 파일)을 내 보냈습니다. 나는 그들이 깨우고 싶은 컴퓨터의 호스트 이름을 묻는 상단에 읽기 호스트 옵션을 갖고 싶습니다. 이 부분은 간단한 읽기 호스트를 사용하면 충분합니다.읽기 호스트 사용자 입력을위한 csv 구문 분석

다음은 내 질문입니다. 사용자가 입력 한 사용자 입력에 대해 내 보낸 CSV를 검색하려면 어떻게해야합니까? 사용자들이 읽기 호스트 변수를 설정 [email protected] 입력하여 1 컴퓨터 깨어하도록 지정

Hostame    MAC    IP Address 

Computer 1  00-15-60-97-5B-8E  192.168.0.1 
etc     etc     etc 

그렇다면, 내가 가진 수있는 방법을 스크립트가 찾기 : 여기

내 CSV의 예 사용자가 컴퓨터를 깨우고 싶을 때 WOLCMD.exe (Wake on LAN 명령 줄 도구)와 함께 사용할 Mac과 IP를 가져옵니다.

+0

Powershell의 버전은 무엇입니까? – mjolinor

답변

0

다음은 테스트를 거친 솔루션입니다. 이것은 매력처럼 작동해야하며 대상이 ARP 테이블에없는 경우 MAC 주소로 브로드 캐스팅됩니다.

$csvpath = <<modify this with the path to the csv file>> 
$comp = read-host -prompt "Enter the target computer name: " 
$dataset = import-csv -path $csvpath 
$row = ($dataset | where{$_.hostname -eq $comp}) 
$mac = $row.mac 
wolcmd $mac 255.255.255.255 255.255.255.255 

하면 사용자가 V3 이상이있는 경우, 당신은 또한 사용자 입력을 얻기 위해 아웃의 GridView를 사용할 수 있습니다

0

사용자가 컴퓨터 이름을 지정하면 사용자가 컴퓨터 이름을 필터링해야합니다 해당 컴퓨터 이름에 대한 CSV 파일을 만들고 MAC 주소 및 IP 주소를 가져옵니다.

$ComputerName = Read-Host -Prompt 'Please enter a computer name.'; 
$Csv = Import-Csv -Path c:\test\test.csv; 
$Record = $Csv | Where-Object -FilterScript { $PSItem.Computer -eq $ComputerName; }; 

Write-Host -Object ("Computer's IP address is: {0} and MAC address is: {1}" -f $Record.'IP Address', $Record.MAC); 
1

을 실행하기 전에 그 첫번째 줄에 csv 파일의 전체 경로를 넣어주십시오 :

Import-Csv c:\somedir\computerlist.csv | sort computername 
Out-GridView -Title 'Select a computer, and press OK to send Wake command:' -OutputMode Single | 
foreach { & "wolcmd $_.mac 255.255.255.255 255.255.255.255" } 

그러면 CSV의 그리드보기가 사용되며 그리드에서 한 컴퓨터를 선택하여 다시 시작할 수 있습니다.

+0

파이프 라인 작업의 일부로 사용자의 목록 구성원을 선택하는 방법으로 Out-GridView를 사용하면 상당히 매끄 럽습니다. – HipCzeck