programing

PowerShell을 사용하여 Windows 서비스 시작 유형 가져오기

minimums 2023. 10. 25. 23:13
반응형

PowerShell을 사용하여 Windows 서비스 시작 유형 가져오기

WMI를 사용하지 않고 PowerShell을 사용하여 Windows 서비스 시작 유형을 가져오려면 어떻게 해야 합니까?

Get-Service 명령어 내부를 살펴보았는데, "시작 유형"을 표시할 수 있는 기능은 제공되지 않습니다.

PowerShell 버전 4의 경우:

다음과 같이 명령을 실행할 수 있습니다.

   Get-Service | select -property name,starttype

WMI가 이를 위한 방법입니다.

Get-WmiObject -Query "Select StartMode From Win32_Service Where Name='winmgmt'"

아니면

Get-WmiObject -Class Win32_Service -Property StartMode -Filter "Name='Winmgmt'"

PowerShell에서는 Set-Service 명령을 사용할 수 있습니다.

Set-Service -Name Winmgmt -StartupType Manual

시작 유형을 볼 수 있는 PowerShell 명령을 찾지 못했습니다.누군가는 Get-Service 명령이 그것을 제공할 것이라고 생각하겠지만, 그렇지 않은 것 같습니다.

다음을 사용할 수도 있습니다.

(Get-Service 'winmgmt').StartType

시작 유형(: 비활성화됨)만 반환합니다.

이러한 정보를 얻을 수 있는 "원본적인" PowerShell 방법은 없는 것으로 알고 있습니다.그리고 아마도 그것은 오히려 그것일 것입니다.PowerShell보다 NET 제한이 있습니다.

다음은 이 기능을 다음 버전에 추가하는 방법입니다.

https://connect.microsoft.com/PowerShell/feedback/details/424948/i-would-like-to-see-the-property-starttype-added-to-get-services

만일의 경우를 대비하여 WMI 해결 방법도 있습니다.이 WMI 솔루션을 내 작업에 사용하면 작동합니다.

PowerShell 버전 5로 업그레이드하면 시작 유형을 확인할 수 있습니다.

실행 중인 PowerShell 버전을 확인하려면 다음을 사용합니다.$PSVersionTable.

다음 예는 Windows 방화벽 서비스에 대한 것입니다.

로컬 시스템의 경우

Get-Service | Select-Object -Property Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto

하나의 원격 시스템의 경우

Get-Service -ComputerName HOSTNAME_OF_SYSTEM | Select-Object -Property MachineName,Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto

여러 시스템의 경우(시스템을 생성해야 함).txt)

Get-Service -ComputerName (Get-content c:\systems.txt) | Select-Object -Property MachineName,Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto

용도:

Get-Service BITS | Select StartType

또는 용도:

(Get-Service -Name BITS).StartType

그리고나서

Set-Service BITS -StartupType xxx

[파워쉘 5.1]

PowerShell 5로 업데이트하면 시스템의 모든 서비스를 쿼리하고 이름과 StartType을 표시한 다음 StartType을 기준으로 정렬하여 쉽게 볼 수 있습니다.

Get-Service |Select-Object -Property Name,StartType |Sort-Object -Property StartType

도구를 사용하여 설정할 수도 있습니다.

또한 PowerShell에서 호출하여 필요한 경우 추가 검사를 추가할 수도 있습니다.이 툴의 장점은 다음과 같습니다.파워쉘은sc도구는 시작 유형을 자동 지연으로 설정할 수도 있습니다.

# Get Service status
$Service = "Wecsvc"
sc.exe qc $Service

# Set Service status
$Service = "Wecsvc"
sc.exe config $Service start= delayed-auto

파워쉘 4로 가능합니다.

Get-Service *spool* | select name,starttype | ft -AutoSize

스크린샷

기본적으로 StartType은 다음과 같이 표시되지 않습니다.Get-Service, 그러나 언제든지 명시적으로 요청할 수 있습니다.

Get-Service | select StartType,DisplayName | sort StartType,DisplayName

사용하다Get-Service | Get-Member사용 가능한 모든 필드를 봅니다.

언급URL : https://stackoverflow.com/questions/4304821/get-startup-type-of-windows-service-using-powershell

반응형