programing

PowerShell 또는 C#에서 프로세스에 대한 명령줄 정보를 가져오는 방법

powerit 2023. 5. 3. 21:59
반응형

PowerShell 또는 C#에서 프로세스에 대한 명령줄 정보를 가져오는 방법

예: 실행할 경우notepad.exe c:\autoexec.bat,

어떻게 해야 합니까?c:\autoexec.batGet-Process notepadPowerShell에서?

아니면 어떻게 해야 하나요?c:\autoexec.batProcess.GetProcessesByName("notepad");C#에?

PowerShell에서는 WMI를 통해 프로세스의 명령줄을 가져올 수 있습니다.

$process = "notepad.exe"
Get-WmiObject Win32_Process -Filter "name = '$process'" | Select-Object CommandLine

다른 사용자의 컨텍스트에서 실행 중인 프로세스에 대한 정보에 액세스하려면 관리자 권한이 필요합니다.일반 사용자는 자신의 컨텍스트에서 실행되는 프로세스에서만 볼 수 있습니다.

이 대답은 훌륭하지만, 미래의 방어와 미래의 호의를 위해, 당신이 꽤 오래된 파워셸을 사용하지 않는 한(그 경우 업데이트를 추천합니다!)Get-WMIObject가 Get-CimInstanceHey 스크립트 작성자 참조로 대체되었습니다.

사용해 보세요.

$process = "notepad.exe"
Get-CimInstance Win32_Process -Filter "name = '$process'" | select CommandLine 

powershell $profile 파일에 다음 코드를 넣으면 "process" 객체 클래스를 영구적으로 확장하고 "CommandLine" 속성을 사용할 수 있습니다.

예:

get-process notepad.exe | select-object ProcessName, CommandLine

코드:

$TypeData = @{
    TypeName = 'System.Diagnostics.Process'
    MemberType = 'ScriptProperty'
    MemberName = 'CommandLine'
    Value = {(Get-CimInstance Win32_Process -Filter "ProcessId = $($this.Id)").CommandLine}
}
Update-TypeData @TypeData

powershell 7.1을 사용하고 있는데 이제 프로세스 개체에 스크립트 속성으로 내장되어 있는 것 같습니다.

> (Get-Process notepad)[0].CommandLine
"C:\WINDOWS\system32\notepad.exe"

흥미롭게도, 당신은 그것의 구현을 볼 수 있고 그것이 부분적으로 PsychoData의 답을 사용한다는 것을 알 수 있습니다.

($process | Get-Member -Name CommandLine).Definition
System.Object CommandLine {get=
                        if ($IsWindows) {
                            (Get-CimInstance Win32_Process -Filter "ProcessId = $($this.Id)").CommandLine
                        } elseif ($IsLinux) {
                            Get-Content -LiteralPath "/proc/$($this.Id)/cmdline"
                        }
                    ;}

프로세스에서 구성원 가져오기를 실행하면 해당 구성원이 시스템 인스턴스임을 알 수 있습니다.진단.프로세스(스크립트로 작성된 여러 속성이 있음).

다른 속성은 FileVersion, Path, Product 및 ProductVersion입니다.

언급URL : https://stackoverflow.com/questions/17563411/how-to-get-command-line-info-for-a-process-in-powershell-or-c-sharp

반응형