none
Powershell OS 정보 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “Powershell OS 정보에 대한 답변을 드리겠습니다.

     

    Step 1 : OperatingSystem

     

    Win32_OperatingSystem Instance를 이용해서 운영체제의 정보를 제공할 수 있습니다.

     

    아래의 Cmdlet BuildNumber, Serial Number, Version, Caption ,Registered User. Service Pack Version의 정보를 제공을 합니다.

     

    Get-WmiObject Win32_OperatingSystem | fl BuildNumber, BootDevice, Caption, RegisteredUser, SerialNumber, Version, servicepackmajorversion

     

    아래의 Script는 현재 운영체제의 이름과 버전의 정보를 제공을 합니다.

     

    function Get-OSName

    {

        trap [Exception]

        {

            Write-Host $_.Exception.Message

            continue;

        }

     

        $ServerName = 'LocalHost'

     

        $query = "select * from win32_pingstatus where address = '$ServerName'"

     

        $result = Get-WmiObject -query $query

     

     

        if ($result.protocoladdress) {

     

               $build = @{n="Build";e={$_.BuildNumber}}

            $SPNumber = @{n="SPNumber";e={$_.CSDVersion}}

               $sku = @{n="SKU";e={$_.OperatingSystemSKU}}

               $hostname = @{n="HostName";e={$_.CSName}}

     

        $Win32_OS = Get-WmiObject Win32_OperatingSystem -computer $ServerName | select $build,$SPNumber,Caption,$sku,$hostname, servicepackmajorversion

       

        $servicepack = $Win32_OS.servicepackmajorversion

     

       

     

            switch ($Win32_OS.build) {       

                2600 {$os = "XP"; break}

                3790 { if ($Win32_OS.caption -match "XP") { $os = "XPx64" } else { $os = "Server 2003" }; break }

                6000 {$os = "Vista"; break}

                6001 { if ($Win32_OS.caption -match "Vista" ) { $os = "Vista" } else { $os = "Server 2008"}; break }

                7601 { if ($Win32_OS.caption -match "Microsoft Windows 7 Enterprise" ) { $os = "Windows 7" } else { $os = "Server 2008"}; break }

            }

     

            "운영체제: $os 서비스 : $servicepack"

            "운영체제: $os 서비스 Pack: $servicepack" | out-file -filepath $env:temp\temp1.txt 

            Invoke-Item $env:temp\temp1.txt

           

        } else

        {

            "$ServerName 응답이 없습니다."

        }

    }

     

     

    Get-OSName

     

    Step 2 : NetworkAdapterConfiguration

     

    NetworkAdapterConfiguration Instance에서는 NIC에 대한 설정 정보를 제공을 합니다.

     

    Get-WmiObject Win32_NetworkAdapterConfiguration | ft DHCPEnabled,DHCPServer,IPAddress,MACAddress

     

     

     

    Step 3 : LogicalDisk

     

    LocalDisk InstanceDisk Volume 정보를 제공을 합니다.

     

    아래의 Cmdlet은 현재 OS에 존재하는 모든 Volume Device ID, File System의 정보를 제공을 합니다.

     

    Get-WmiObject Win32_logicalDisk |  ft deviceId, FileSystem

     

     

     

    참고 자료

     

    Win32_OperatingSystem class

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa394239(v=vs.85).aspx

     

    Win32_NetworkAdapterConfiguration class

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa394217(v=vs.85).aspx

     

    Win32_LogicalDisk class

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa394173(v=vs.85).aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 11월 23일 수요일 오전 5:02
    2011년 11월 22일 화요일 오전 9:20
    중재자