2016-12-15 1 views
1

와 콘솔에 네트워크 공유 위치 나는 다음과 같은 코드가 있습니다출력 쓰기 호스트

$exclude = 'Remote Admin', 'Remote IPC', 'Default share' 
$shared = Get-WmiObject Win32_Share | 
     Where-Object { $exclude -notcontains $_.Description } | 
     Select-Object -Expand Path 

$FilesToSearch = Get-ChildItem $shared -Filter '*_HELP_instructions*' -Recurse -ErrorAction SilentlyContinue 

If($FilesToSearch -ne $null) 

{ 
Write-Host "System Infected!" 
exit 2015 
} 

else 

{ 
Write-Host "System Clear!" 
exit 0 
} 

는 기본적으로 _HELP_instructions 파일 이름에있는 모든 파일에 대한 로컬 서버의 모든 공유를 통해 스캔입니다. 이이 이름과 일치하는 파일을 발견하면

그것은 "시스템이 감염!"출력 콘솔에 저장하고 특정 코드로 스크립트를 종료합니다. 내가 그것을하고 싶으면 무엇

실제로 세부 감염 및 출력이 콘솔에있는 공유 위치를이다. 출력은 "네트워크 공유 E : \ Data \ Clients is Infected!"와 같은 모양입니다.

이 작업을 수행 할 수 있습니까?

많은 감사합니다.

+0

'$ FilesToSearch'가 null가 아닌 파일을 포함해야합니다. 감염된 파일 경로의 배열이어야하는 변수를 출력 할 수 있습니다. – Nkosi

+0

안녕 코시이 - 코드의 라인이 될 수 있도록 : 는 { 쓰기 호스트 "네트워크 공유"$ FilesToSearch는 "감염!" 종료 2015 } 것이라고 사용할 수 있습니까? –

답변

1

$ FilesToSearch는 파일이있는 배열입니다. 그래서 당신이 원하는 것을 달성하기 위해 :

If($FilesToSearch -ne $null) 
{ 
    foreach ($file in $FilesToSearch){ 
     Write-Host "System Infected! Directory:" $file.DirectoryName 
    } 
    exit 2015 
} 
+0

이것에 대해 많은 감사를 드리며 대접을 받았습니다. 두 솔루션은 나에게 내가이 솔루션은 단지 주식이 아닌 개별 파일을 설명하고 그래서 당신은 환영 –

+0

내 요구에 소폭 더 나은 솔루션 있었지만 후였다 결과를 준 – Boendal