Команда QUSER – отобразить сведения о вошедших в систему пользователях Windows

Как проверить, используется ли файл другим процессом — Powershell

Я пытаюсь найти решение, которое проверяет, используется ли файл другим процессом. Я не хочу читать содержимое файла, как на 7-ГБ документе, это может занять некоторое время. В настоящее время я использую функцию, упомянутую ниже, которая не идеальна, так как script занимает около 5 — 10 минут, чтобы получить значение.

Любая помощь будет принята с благодарностью

SInce вы не хотите читать файл, я бы рекомендовал использовать такую ​​утилиту, как Sysinternals Handle.exe, которая выплюнет все открытые дескрипторы для процесса. Вы можете скачать Handle.exe здесь:

Вы можете запустить Handle.exe без каких-либо аргументов, и он вернет все открытые дескрипторы файлов. Вы можете анализировать вывод, если это необходимо, или просто сопоставлять результат с полным пути к файлу.

Команда QUSER – отобразить сведения о вошедших в систему пользователях Windows

Команда QUSER — аналог команды QUERY USER . Отображает информацию о пользователях, вошедших в систему.

Формат командной строки:

QUERY USER [пользователь | имя сеанса | ID сеанса ] [/SERVER: сервер]

Параметры командной строки:

пользователь — Имя пользователя.

имя сеанса — Имя сеанса.

ID сеанса — Идентификатор сеанса.

/SERVER:сервер — Опрашиваемый сервер (по умолчанию — текущий).

Примеры использования команды QUSER:

QUSER /? — отобразить подсказку по использованию команды.

QUSER — при выполнении команды QUSER без параметров, отображаются сведения о всех пользователях, вошедших в систему на данный момент времени.

Пример отображаемой информации:

Пользователь
user1
user2
Сеанс
console
rdp-tcp#0
ID
1
1
Статус
Активно
Активно
Бездейств.
.
.
Время входа
06.08.2015 6:07
06.08.2015 6:07

Отображаются имена пользователей, тип сеанса, идентификатор, статус, время бездействия и время входа в систему. В примере, пользователь user1 вошел в систему локально ( сеанс console , а пользователь user2 — удаленно (сеанс rdp-tcp#0 )

QUSER /server:win8e — отобразить информацию о пользователях, вошедших в систему на компьютере с именем win8e . Результат выполнения команды зависит от прав пользователя по отношению к удаленной системе и настроек брандмауэра. Настройки безопасности, принятые в Windows по умолчанию не позволяют получить информацию с помощью команды QUSER на удаленном компьютере.

QUSER /server:192.168.0.1 — отобразить информацию о пользователях, вошедших в систему на компьютере с IP-адресом 192.168.0.1

Как проверить, запущен ли скрипт PowerShell от имени администратора?

Если вам нужно запустить сценарий PowerShell с правами администратора, вы можете проверить, имеет ли текущий процесс powershell.exe повышенные права, прямо в вашем коде PS.

Следующий код PowerShell можно использовать для проверки того, работает ли текущий сценарий в режиме «Запуск от имени администратора»:

Сохраните код PowerShell в файле check_process_elevation.ps1 и запустите его в консоли без прав администратора:

Как видите, появилось сообщение, что у вас нет прав администратора, поэтому сценарий PowerShell остановлен.

Теперь запустите сценарий в сеансе PowerShell с повышенными привилегиями. Как видите, скрипт обнаружил, что этот сеанс PowerShell запускается от имени администратора.

Также вы можете запросить повышение прав прямо из сценария PowerShell. Для этого вместо строки:

используйте следующий код:

При запуске скрипта без прав администратора он будет повторно запущен в новом сеансе PowerShell с повышенными привилегиями, и вы увидите запрос на повышение прав UAC. Если вы примете его, ваш сценарий PS1 будет запущен от имени администратора. (Путь к текущему файлу сценария PowerShell передаётся с помощью переменной среды $PSCommandPath).

В PowerShell 4.0 или новее ещё проще проверить, работает ли ваш скрипт с правами администратора. Для этого используйте директиву -RunAsAdministrator.

Если скрипт не запускается под администратором, появится следующая ошибка:

Если вы запустите сценарий на компьютере с PowerShell v2, появится следующее сообщение об ошибке:

Для управления Active Directory вам может потребоваться другая задача: проверить, есть ли у текущего пользователя права администратора домена из сценария PowerShell. Используйте следующий код:

Powershell узнать кто залогинен на компьютере

Имея несколько ферм с терминальными серверами иногда нужно найти сессию пользователя на сервере. Конечно, можно перебирать руками каждый сервер но это не наш метод .

Для этого есть PowerShell, для которого мы напишем скрипт и он уже будет искать юзеров. Итак приступим.

Проверка наличия у пользователя прав администратора через PowerShell

Проверка наличия у пользователя прав администратора через PowerShell

Если по какой-то необходимости нужно проверить наличие у пользователя прав администраторов через PowerShell, то проще всего это сделать проверив его наличие в группе BUILTINАдминистраторы. Причина, по которой это самый простой, и наверное, правильный вариант проста — в случае использования других методов (доступ к файлуветке реестра и т. д.) требуется подтверждение повышения прав через UAC. А вот проверка наличия пользователя в группе как раз исполняется в фоновом режиме и не требует никакого взаимодействия от пользователя.

Windows: Powershell-скрипт для поиска папки с профилем пользователя по всем компам в домене.

Картина маслом — организация компов на 150, домен. Спустя год после увольнения сотрудника выясняется что у него на рабочем столе остался очень важный файлик и его нужно срочно найти. Профили пользователей не перемещаемые, хранятся на компах. Беда в том, что за давностью времен никто не помнит за каким компом сидел сотрудник. Под эту задачу ваш покорный слуга запилил нехитрый скрипт, который проверяет наличие папки с профилем пользователя с помощью скрытой шары доступной для администраторов (папка C$).

Import-Module activedirectory
$name_user = read-host «Введите логин пользователя»
$Comp_s = Get-ADComputer -Filter * -Properties *
ForEach ($name_comp in $Comp_s)
>
pause

В конторе не было компов на Windows XP, поэтому проверяется только наличие папки C:Users, для компов с XP нужно проверять C:Documents & Settings. Скрипт работает на powershell v5.1, если версия ниже желательно обновиться (Windows Server 2008 R2: Обновить версию Powershell.).

Импортируем модуль для работы с AD.

$name_user = read-host «Введите логин пользователя»

сохраняем введенное с клавиатуры имя пользователя в переменную name_user

$Comp_s = Get-ADComputer -Filter * -Properties *

сохраняем список всех компов в домене в переменную Comp_s

для каждого компа из переменной Comp_s проверить существование папки \C$Users, если существует — выводим имя компа.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector