2017-04-08 3 views
1

메뉴를 만들고 컴퓨터 이름과 OS 버전을 표시하는 옵션과 디스크 공간을 표시하는 옵션이 있습니다. 로컬 또는 원격 시스템에서 수행 할 옵션이 필요합니다. 그것은 로컬 컴퓨터에서 작동하지만 난 당신이 이미 해당 지역에서 작동하고 있음을 언급 한 이후 옵션은 원격 시스템빈 디스크 공간 표시

'1' { 
     cls 
       Write-Host -NoNewLine "OS Version: " 

    Get-CimInstance Win32_OperatingSystem | Select-Object Caption | ForEach{ $_.Caption } 

    Write-Host "" 
    Write-Host -NoNewLine "Computer Name: " 

    Get-CimInstance Win32_OperatingSystem | Select-Object CSName | ForEach{ $_.CSName } 

    Write-Host "" 
      } '2' { 
       cls 
        gwmi win32_logicaldisk | Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}} 

답변

0

에서 수행 할 수 있도록하는 방법을 확실하지 않다, 나는 그 부분을 접촉하고 있지 않다. 전체 코드를 으로 바꾸고$ ComputerName 매개 변수로 사용하십시오.

도메인 관리자이거나 권한 문제가없는 경우 동일한 자격 증명으로 정보를 원격으로 가져올 수 있습니다. 이 같은

사용 :

function Get-DiskInfo($drive,$computername) 
{ 

##-- Local system Validation 
    if((gwmi win32_computersystem).Name -eq $computername) 
    { 
     $diskReport = Get-WmiObject Win32_logicaldisk 
     $drive = $diskReport | Where-Object { $_.DeviceID -eq $drive} 

     $result = @{ 
      Size = $drive.Size 
      FreeSpace = $drive.Freespace 
     } 
     return $result 
    } 
    else 
    { 

      $diskReport = Get-WmiObject Win32_logicaldisk -ComputerName $ComputerName 
      $drive = $diskReport | Where-Object { $_.DeviceID -eq $drive} 

      $result = @{ 
      Size = $drive.Size 
      FreeSpace = $drive.Freespace 
      } 
      return $result 

    } 



} 

전화 기능 :

Get-DiskInfo C: localhost 

당신이 WMI 호출을 모두 사용하고 있기 때문에, 당신은 필요하지 않습니다는 호출-명령를 사용합니다. 직접 얻을-WmiObject를을 원격으로 모든 세부 사항을 가져 오기 위해 에서 -ComputerName 스위치 선물을 사용할 수 있습니다 당신은 -credential

으로도 특정 자격 증명을 전달할 수 있습니다 당신이 논리를 이해하는 데 도움이 바랍니다.