루프에서 원격 시스템 정보를 얻기위한 배치 파일


0

제목에 대해 죄송합니다. 한 줄로 설명하려고 애를 썼습니다.

원격 시스템 상태를 가져 와서 총 메모리가 들어있는 줄을 반환하고 파일로 출력하는 간단한 스크립트가 있습니다.

systeminfo /s:HOSTNAME | findstr /C:"Total Physical Memory" >> "D:\All PCs\RAM_LOG.txt"

확인하려는 모든 PC의 모든 호스트 이름이있는 텍스트 파일이 있습니다. 동일한 줄을 반복하는 배치 파일을 만들지 않고 텍스트 파일의 각 PC에서 동일한 명령을 어떻게 실행할 수 있습니까?

또한 가능하면 호스트 이름도 로그에 포함시킬 수 있습니다.

감사

업데이트 : 나는 이것을 생각해 냈습니다. 곧 테스트 할 것입니다.

for /F "tokens=*" %%A in ("D:\All Pcs\pclist.txt") do (
    echo.   
    echo %%A >> "D:\All PCs\RAM_LOG.txt"
    systeminfo /s:%%A | findstr /C:"Total Physical Memory" >> "D:\All PCs\RAM_LOG.txt"
)

답변:


1

총 메모리 사용 wmic 쿼리 만 얻으려면 훨씬 빠릅니다.
예를 들면 다음과 같습니다.

...
wmic /NODE:"%%A" /APPEND:"D:\All PCs\RAM_LOG.txt" MEMPHYSICAL get name, TotalPhysicalMemory

그러나 배치 파일이 필요하지 않습니다. 더 나은 방법은 쉼표로 구분 된 호스트 이름으로 파일을 사용하는 것입니다

wmic /NODE:@"D:\All Pcs\pclist.txt" /APPEND:"D:\All PCs\RAM_LOG.txt" computersystem get name, TotalPhysicalMemory

전역 옵션 / FAILFAST (원격 컴퓨터에 대한 연결 시간 초과)를 추가 할 수도 있습니다.

WMIC /FAILFAST:1000 ...

1

다음을 사용 하여이 작업을 수행했습니다.

for /F "tokens=*" %%A in ("D:\All Pcs\pclist.txt") do (
    echo.   
    echo %%A >> "D:\All PCs\RAM_LOG.txt"
    systeminfo /s:%%A | findstr /C:"Total Physical Memory" >> "D:\All PCs\RAM_LOG.txt"
)

여기서 pclist.txt는 검색 할 모든 호스트 이름의 목록입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.