Как проверить, из cmd, статус профиля локальный или временный, в роуминге или резервном копировании?

7091
DannyBoi

Как проверить, из cmd, статус профиля локальный или временный, в роуминге или резервном копировании?

Есть способ проверить ТИП и СОСТОЯНИЕ профилей на компьютере из командной строки.

Обычно мы получаем это здесь ....

System properties

Я подключусь к компьютеру с помощью psexec \\ipaddress cmd Затем я хочу запустить команду для просмотра этой информации.

Я мог проверить это в реестре, проанализировав ПУТЬ ИЗОБРАЖЕНИЯ ПРОФИЛЯ, но для этого мне нужно сначала найти SID. Но этот метод не идеален, потому что он говорит мне только, локальный он или нет.

Я бы предпочел метод командной строки для проверки размера профиля, типа и статуса. «Статус» является приоритетом в этом вопросе. Я хочу четко различать статус профиля, будь то локальный или перемещаемый, временный или резервный.

Пожалуйста помоги.

3
Этот вопрос SU может предложить некоторую помощь: [Как узнать SID учетной записи пользователя Windows?] (Http://superuser.com/questions/231908/how-to-know-sid-of-windows-user-account) Ƭᴇcʜιᴇ007 7 лет назад 0

2 ответа на вопрос

1
lightwing

Вы можете запросить WMI через Powershell с помощью psexec с помощью этой команды:

powershell.exe -command "gwmi win32_userprofile | select localpath,roamingpath,status" 

localpath с даст вам имя пользователя и статус даст вам тип.

Класс Win32_UserProfile

Значения статуса:

  • Undefined - 0 - статус профиля не установлен.
  • Временный - 1 - Профиль является временным и будет удален после выхода пользователя из системы.
  • Роуминг - 2 - В профиле установлен роуминг. Если этот бит не установлен, профиль устанавливается как локальный.
  • Обязательно - 4 - Профиль является обязательным.
  • Corrupted - 8 - Профиль поврежден и не используется. Пользователь или администратор должен исправить повреждение, чтобы использовать профиль.

Если вы можете использовать psexec, вы можете просто использовать командный ключ powershell gwmi для удаленного подключения к устройству:

gwmi win32_userprofile -computername mypc | select localpath,roamingpath,status 

Кроме того, это может помочь при запросе размера профиля. Hey Scripting Guy Blog: Используйте PowerShell для определения размера профиля пользователя.

`powershell.exe -command" gwmi win32_userprofile | выберите localpath, roamingpath, status "` отображает только список локальных путей DannyBoi 7 лет назад 0
Я не уверен. Я протестировал его на своей собственной системе на сервере, например: `psexec \\ имя_сервера powershell -command" gwmi win32_userprofile | выберите localpath, roamingpath, status "` Он вернул ожидаемые для меня результаты. Возможно ли, что на вашем устройстве нет перемещаемых профилей? Если перемещаемых профилей нет, столбец перемещаемого профиля будет пустым, а статус будет отличаться от 2 (0, если он локальный). lightwing 7 лет назад 0
Попробуй это. Он подтвердит, существуют ли эти поля в классе WMI в тестируемой системе: `psexec \\ servername powershell.exe -command" gwmi win32_userprofile | get-member "'` Get-member возвращает список всех свойств и методы, доступные для команды, которая передана ей. lightwing 7 лет назад 0
Итак, я сделал `get-member` и Localpath, Roaming Path, Status - все там. Я запускал команду кусочно из cmd. `powershell` затем` gwmi` затем `win32_userprofile 'отображает всю информацию, включая` Localpath, Roaming Path, Status`. Путь роуминга не указан, но статус в порядке. DannyBoi 7 лет назад 0
@ ltghtwing ..... Я попробовал `powershell.exe -команду" gwmi win32_userprofile | выберите статус "` Все было пустым. Затем я скопировал его в текстовый файл и обнаружил, что в столбце состояния отображается ** в столбце 445 **. Нам нужен лучший фильтр DannyBoi 7 лет назад 0
1
Pimp Juice IT

Как проверить, из cmd, статус профиля локальный или временный, в роуминге или резервном копировании?

Вот чистый метод WMIC для командной строки, чтобы получить Status на основе значения LocalPath имени пользователя, которое вы хотите проверить.

Убедитесь, что %username%значение проверяемого профиля явно указано вместо того, %username%чтобы не проверять профиль, из которого вы его запускаете, когда запускаете его.

Команда

WMIC PATH win32_UserProfile WHERE LocalPath="c:\\users\\%username%" GET Status 

Пример результата

enter image description here


Значения значения статуса

Статус

Тип данных: uint32

Тип доступа: только для чтения

Получает битовое поле, которое содержит статус профиля.


Это свойство содержит одно или несколько из следующих значений:

  • Значение: 0 не определено
    • Значение: статус профиля не установлен.

  • Значение: 1 временный
    • Значение: профиль является временным и будет удален после выхода пользователя из системы.

  • Значение: 2 роуминга
    • Значение: профиль установлен в роуминге. Если этот бит не установлен, профиль устанавливается как локальный.

  • Значение: 4 обязательно
    • Значение: профиль является обязательным.

  • Значение: 8 испорчено
    • Значение: профиль поврежден и не используется. Пользователь или администратор должен исправить повреждение, чтобы использовать профиль.

источник


Дополнительные ресурсы

Похожие вопросы