Я пытаюсь получить сведения о вводе-выводе из диспетчера задач с помощью PowerShell. Ниже приведен сценарий, который я пытаюсь использовать на данный момент, и у него был частичный успех.
$gc = get-counter -ComputerName $($service.ServerName) "\Process($Tservicename)\IO Other Bytes/sec" -ErrorAction SilentlyContinue
$OtherBytes=$gc.CounterSamples|Select cookedvalue
Здесь $ serviceName & ServerName зациклено через. Ниже приведены проблемы, с которыми я сталкиваюсь.
Я не могу получить IO Другие данные о байтах для всей службы, я запускаю сценарий в режиме администратора, поэтому доступ не должен быть проблемой.
Будет ли приведенный выше сценарий давать кумулятивный результат в случае, если выполняется больше, чем выполняется процесс, например, для chrome .exe будет будет ли запущено несколько служб, даст ли это совокупное значение. Если нет, то как я извлекаю детали для каждого процесса chrome.
введите описание изображения здесь
- Обновленный вопрос -
Мы используем командлет Get-Counter для получения сведений о байтах чтения и записи ввода-вывода. Это возвращает 0 для большей части процесса, это из-за невозможности доступа к системному процессу или из-за проблем с доступом.
- Ответ -
После небольшого исследования я понял, что это значение извлекаемый командлетом основан на этом конкретном экземпляре, поэтому нам необходимо выполнить выборку данных с помощью SampleInterval . Однако моего требования было достаточно при использовании параметра RawValue , поскольку я искал значение после запуска сервера в качестве накопительного значения.
- Элемент списка