Войти

Показать полную графическую версию : Количество экземпляров именованного канала


jkadaba
24-01-2021, 19:40
Некоторое приложение (portal.exe) при запуске создает именованный канал, имя которого имеет вид portal.PID.filetime, где PID идентификатор процесса, а filtetime время запуска, представленное целочисленным значением полей одноименной структуры. Так вот, помимо того, что мне нужно вытащить filetime в виде привычной даты, хотелось бы получить еще и количество экземпляров данного канала. Просто вывести список каналов можно так:
[IO.Directory]::GetFiles('\\.\pipe\')
Найти нужный можно через Select-String. Но в выводе команды нет упоминания о количестве экземпляров.
P.S. Использовать pipelist Руссиновича не хотелось бы.

Busla
24-01-2021, 19:51
количество экземпляров данного канала »
все каналы существуют в единственном экземпляре

greg zakharov
24-01-2021, 22:37
все каналы существуют в единственном экземпляреЗдесь, коли упомянут pipelist, скорее превратности перевода. Instances можно перевести и как экземпляры, и как инстанции, и как... - в общем, суть понятна. По факту же это - размер канала в байтах.

В десятке чтобы получить размер можно провернуть такой трюк:
($$ = (cmd /c dir \\.\pipe\\ | sls '(\d+)\s+(portal.*)').Matches.Groups[1,2])[0], [DateTime]::FromFileTime(($$[1] -split '\.')[-1])

Foreigner
24-01-2021, 22:43
вытащить filetime в виде привычной даты »
На примере pwsh:


$a = [IO.Directory]::GetFiles('\\.\pipe\') -match 'pwsh'

# $a = \\.\pipe\PSHost.132559056461144875.248.DefaultAppDomain.pwsh

$filetime = ($a -split '(?<=[^\\])\.(?=[^\\])')[1]

# $filetime = 132559056461144875

[datetime]::FromFileTime($filetime)

# 23 января 2021 г. 23:00:46

greg zakharov
24-01-2021, 22:50
На примере pwsh...
А зачем пихать что-то в переменную?
[DateTime]::FromFileTime((([IO.Directory]::GetFiles('\\.\pipe\') -match 'pwsh') -split '\.')[2])

Foreigner
24-01-2021, 22:53
Может лучше через Get-Process?


(Get-Process portal).StartTime

greg zakharov
24-01-2021, 22:55
Конечно лучше. Проблема лишь в росте количества различных вызовов, а также количестве самих процессов. Хм... а может имелось в виду количество пайпов?




© OSzone.net 2001-2012