2016-11-29 2 views
0

OS 윈도우 8, Windows 작업 8을 사용하여 CSV 파일로 가져 오기 위해 디스크 공간을 가져 오기 위해 스크립트를 예약하고 있습니다. 스크립트는 수동으로 실행되지만 예약 된 경우 작업 스케줄에 따라 출력되지 않습니다. 사용 된 코드는 다음과 같습니다.Powershell Scheduling Diskspaces 가져 오기

  Set-ExecutionPolicy Unrestricted -Force 

      $filepath = "C:\Users\asdf\Downloads\Powershell\CheckFreeSpaceV3" 
      $servername = "abc" 

      #delete reports older than 7 days 
      $OldReports = (Get-Date).AddDays(-7) 

      #Removing Report older than 7 Days 
      Get-ChildItem $filepath\DiskReport*.* | ` 
      Where-Object { $_.LastWriteTime -le $OldReports} | ` 
      Remove-Item -Recurse -Force -ErrorAction SilentlyContinue 

      #Create variable for log date 
      $LogDate = get-date -f yyyyMMddhhmm 

      $DiskReport = Get-WmiObject win32_logicaldisk ` 
      -ComputerName $servername -Filter "Drivetype=3" ` 
      -ErrorAction SilentlyContinue | 
      #return only disks with free space less than or equal to 0.1 (40%) 
      Where-Object { ($_.freespace/$_.size) -le '0.4'} 

      #Create Reports 
      $DiskReport | 
      Select-Object @{Label = "Server Name";Expression = {$_.SystemName}}, 
      @{Label = "Drive";Expression = {$_.DeviceID}}, 
      @{Label = "Total Space(GB)";Expression = {"{0:N1}" -f($_.Size/1gb)}}, 
      @{Label = "Free Space (GB)";Expression = {"{0:N1}" -f($_.Freespace/1gb) }}, 
      @{Label = 'Free Space (%)'; Expression = {"{0:P0}" -f ($_.freespace/$_.size)}} | 


I put the following arguments in taskschdular arguments 
-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File powershell_Script_path 

답변

0
#Task scheduler Script as discussed 

$jobname = "Powershell_Task" 
$script = "D:\PsScript.ps1" 
$repeat = New-TimeSpan -Hours 1 
$Start_Time= Get-Date 
$action = New-ScheduledTaskAction –Execute "$pshome\powershell.exe" -Argument "$script; quit" 
$duration = ([timeSpan]::maxvalue) 
$trigger = New-ScheduledTaskTrigger -Once -At $Start_Time -RepetitionInterval $repeat -RepetitionDuration $duration 
$settings = New-ScheduledTaskSettingsSet -WakeToRun -DontStopIfGoingOnBatteries -StartWhenAvailable -RunOnlyIfNetworkAvailable -DontStopOnIdleEnd 

Register-ScheduledTask -TaskName $jobname -Action $action -Trigger $trigger -Settings $settings 
0

스크립트는 출력으로 보고서 파일을 만들지 않으며 추가 파이프 라인 예외가 발생합니다.

스크립트로 HTML 파일을 만들었으므로 잘되었습니다.

는 HTML 파일은 D에서 생성 얻을 것이다 : 이름 HTML_Report.html 드라이브 \. Chrome으로 간단히 볼 수 있습니다.

그래서 스크립트가 새 파일을 만들 때마다 파일이 이미 있으면 기존 파일을 덮어 씁니다.

이제 원하는 경로에 스크립트를 놓고 앞서 언급 한 위치에서 출력 파일을 만들고 트리거하는 언급 된 스크립트 경로로 작업 스케줄러에서 작업을 만들 수 있습니다.

참고 : 드라이브가없는 경우 다른 위치를 가리 키십시오. 스크립트가 잘 작동하고 있지만

 Set-ExecutionPolicy Unrestricted -Force 

     $filepath = "C:\Users\farooq.GENIE\Downloads\Powershell\CheckFreeSpaceV3" 
     $servername = "GT030" 

     #delete reports older than 7 days 
     $OldReports = (Get-Date).AddDays(-7) 

     #Removing Report older than 7 Days 
     Get-ChildItem $filepath\DiskReport*.* | ` 
     Where-Object { $_.LastWriteTime -le $OldReports} | ` 
     Remove-Item -Recurse -Force -ErrorAction SilentlyContinue 

     #Create variable for log date 
     $LogDate = get-date -f yyyyMMddhhmm 

     $DiskReport = Get-WmiObject win32_logicaldisk ` 
     -ComputerName $servername -Filter "Drivetype=3" ` 
     -ErrorAction SilentlyContinue | 
     #return only disks with free space less than or equal to 0.1 (40%) 
     Where-Object { ($_.freespace/$_.size) -le '0.4'} 

     #Create Reports 
     $DiskReport | 
     Select-Object @{Label = "Server Name";Expression = {$_.SystemName}}, 
     @{Label = "Drive";Expression = {$_.DeviceID}}, 
     @{Label = "Total Space(GB)";Expression = {"{0:N1}" -f($_.Size/1gb)}}, 
     @{Label = "Free Space (GB)";Expression = {"{0:N1}" -f($_.Freespace/1gb) }}, 
     @{Label = 'Free Space (%)'; Expression = {"{0:P0}" -f ($_.freespace/$_.size)}} |ConvertTo-Html | Out-File D:\HTML_Report.html -Force 
+0

감사 Ranadip, 난, 작업 schedular에서 스크립트를 일정에 문제가 있지만 일정 할 때 작동하지 않습니다. –

+0

@AhmadRaza : powershell을 통해 예약 된 작업을 생성하는 다른 스크립트를 붙여 넣습니다. 요구 사항에 따라 스크립트 경로와 추가 세부 정보를 변경하십시오. Answers에 만족한다면 그것을 좋아하십시오. 그것은 견해를 증가시키고 다른 사람들을 도울 것입니다. –

관련 문제