Показать полную графическую версию : [решено] Вывод имени текущего пользователя
Нужно для резервного копирования, чтобы батник сам копировал личные данные в определённое место, указывая при этом имя пользователя, от которого скопировано добро.
Батник будет запускаться на пользовательской машине из-зпод пользовательской учётки... Батник запустит WinRar с параметрами, в результате получается архив с именем в роде: Backup_%user%[01.01.2001]
Возможно есть такая переменная, которая обозначает это, но я не знаю такой...
Есть.
%username%
Подробнее: cmd, команда set без параметров - выведет список системных переменных ОС.
Спасибо, ShaddyR. Перепробовал кучу разных переменных, и Profile и User и даже узнал значение переменной Userprofile а username не догадался...
Limonica
24-12-2012, 23:15
Как не странно но этой переменной нет в некоторых не русскоязычных ОС, либо вместо имени юзера, выводится имя пк, есть ли альтернативный способ?
Как не странно но этой переменной нет в некоторых не русскоязычных ОС, »
Ложь.
либо вместо имени юзера, выводится имя пк, »
Чушь.
есть ли альтернативный способ? »
Есть много разных способов. Выбор наиболее предпочтительного зависит от предназначения. Опишите, где и как Вы собираетесь использовать имя пользователя.
Limonica
25-12-2012, 11:05
Специально установили испанкую ОС (XP SP3 Home Edition):
C:\WINDOWS\system32>set
ALLUSERSPROFILE=C:\Dokumente und Einstellungen\All Users
CommonProgramFiles=C:\Programme\Gemeinsame Dateien
COMPUTERNAME=YOUR-117A1A6435
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 13 Stepping 8, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0d08
ProgramFiles=C:\Programme
PROMPT=$P$G
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\WINDOWS\TEMP
TMP=C:\WINDOWS\TEMP
USERPROFILE=C:\Dokumente und Einstellungen\LocalService
windir=C:\WINDOWS
Так же на испанской Windows Vista (SP2 64) вместо имени юзера, выводится имя компьютера и в set это было прописано.
Limonica, я не верю в сказки. Что говорит по этому поводу служба поддержки?
Вы не ответили на вопрос:Есть много разных способов. Выбор наиболее предпочтительного зависит от предназначения. Опишите, где и как Вы собираетесь использовать имя пользователя. »
Специально установили испанкую ОС (XP SP3 Home Edition): »
как может папка пользователя называться
USERPROFILE=C:\Dokumente und Einstellungen\LocalService »
а ProgramFiles -
ProgramFiles=C:\Programme »
???
Iska, мы, похоже, еще многого не знаем об этом странном звере - Windows...
При том что в оригинальных вариантах как English, так и локализованных Russian все абсолютно совпадает (а по-другому и быть не может). Или под Испанию M$ отдельно писала ОС, с изменением базовых настроек?
как может папка пользователя называться
USERPROFILE=C:\Dokumente und Einstellungen\LocalService »
» »
Может — Хорошо известные идентификаторы безопасности в операционных системах Windows (http://support.microsoft.com/kb/243330/ru):
wmic.exe Path Win32_Account where "SID='S-1-5-19'" get Name, Caption, Description
reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-19" /v "ProfileImagePath"
Iska, э, нет. Это может значить только то, что запрос переменных сделан из среды PE, которая как раз и имеет подобный путь в качестве профиля пользователя. В полновесной системе у пользователя есть имя, прописанное в т.ч. в этом пути. Что еще раз подтверждает предыдущие выводы: озвученный скрин взят не из под клиентской ОС. Еще ссылка по теме: Переменные среды в Windows XP (http://compedu.org.ru/computers2/Articles/environment.html)
ЗЫ: кстати, по ссылке узнал очередное новое для себя - переменные %cd% и %random%
Limonica
25-12-2012, 19:08
https://www.google.com/search?q=C%3A\Dokumente+und+Einstellungen\All+Users&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a
Вы просто зажирели друзья, а решение уже нашли, без помощи таких теоретиков, с громкими словами, как вы.
Limonica
26-12-2012, 02:39
Microsoft Windows [version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.
C:\Windows\system32>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Windows\system32\config\systemprofile\AppData\Roaming
asl.log=Destination=file;OnFirstLog=command,environment,parent
CLASSPATH=.;C:\Program Files\Java\jre1.6.0_07\lib\ext\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=PC-DE-FRANCOISL
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
LOCALAPPDATA=C:\Windows\system32\config\systemprofile\AppData\Local
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\Common Files\DivX Shared\;C:\Program Files\QuickTime\QTSystem\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Windows Live\Shared
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 6 Stepping 5, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0605
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
QTJAVA=C:\Program Files\Java\jre1.6.0_07\lib\ext\QTJava.zip
RoxioCentral=C:\Program Files\Common Files\Roxio Shared\9.0\Roxio Central33\
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Windows\TEMP
TMP=C:\Windows\TEMP
USERDOMAIN=WORKGROUP
USERNAME=PC-DE-FRANCOISL$
USERPROFILE=C:\Windows\system32\config\systemprofile
windir=C:\Windows
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>set
ALLUSERSPROFILE=C:\Dokumente und Einstellungen\All Users
CommonProgramFiles=C:\Programme\Gemeinsame Dateien
COMPUTERNAME=YOUR-117A1A6435
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 13 Stepping 8, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0d08
ProgramFiles=C:\Programme
PROMPT=$P$G
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\WINDOWS\TEMP
TMP=C:\WINDOWS\TEMP
USERPROFILE=C:\Dokumente und Einstellungen\LocalService
windir=C:\WINDOWS
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
asl.log=Destination=file
CLASSPATH=.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=AUSTENITE
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\cygwin\bin;C:\PROGRA~1\Java\JRE16~3.0_0\bin;C:\PROGRA~1\Java\JRE16~3.0_0\bin;C:\Program Files\Mozilla Firefox;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\;.;C:\Program Files\QuickTime\QTSystem\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f0d
ProgramFiles=C:\Program Files
PROMPT=$P$G
QTJAVA=C:\Program Files\Java\jre6\lib\ext\QTJava.zip
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\WINDOWS\TEMP
TMP=C:\WINDOWS\TEMP
USERPROFILE=C:\Documents and Settings\LocalService
windir=C:\WINDOWS
Вы просто зажирели друзья, а решение уже нашли, без помощи таких теоретиков, с громкими словами, как вы. »
Не могли бы Вы его озвучить на русском языке для таких зажиревших теоретиков с громкими словами, как я, не знакомых с немецким?
Iska, э, нет. Это может значить только то… »
Я имел в виду, что ничего криминального в самой такой папке/пути нет.
Limonica
26-12-2012, 02:44
Вызов системной функции GetUserName.
Limonica, приятно себя чувствовать умнее других? Давать ссылку на гугль, не особо вникая, что в ней? На будущее - К All Users претензий нет, она как раз есть и должна быть в ХР. Еще какой-нибудь полезной ссылкой желаешь поделиться с теоретиками? ;)
Среда CMD отличается у разных ОС семейства Windows, потому и переменные могут отсутствовать или иметь значения, отличные от ожидаемых. В этом ключе надо либо делать проверку на версию системы, в которой делается запрос, либо использовать функции API - озвученная относится к одной из них.
Ох уж эти программисты...
Вызов системной функции GetUserName. »
Понятней не стало.
Limonica, если тебе интересно - в папке
C:\Documents and Settings\LocalService »
обычно содержатся дополнительные сведения о локальных пользователях Windows. И папкой профиля она может быть для для процесса, запущенного от данного имени (напр., сервиса Windows). Второй вариант (в частности, для Vista) - запрос данных среды из CMD, запущенного не от имени администратора, при включенном UAC.
Можно вопрос? Все енто наскриненное из-под пользователя с ограниченными правами? А можешь там же, но из под администратора, желательно запуская cmd из Пуск\Выполнить. И результат - сюда, по каждому случаю, на обзор "жирным". Справишься?
Petya V4sechkin
26-12-2012, 07:52
Это может значить только то, что запрос переменных сделан из среды PE
Или PsExec с опцией -s (тоже от имени LocalService выполняется).
Как будто Limonica "прикинулась шлангом".
Ага. Ну, вот и ответ (и «некоторые не русскоязычные ОС» тут не при чём).
У меня под XP, правда, исполняется именно от имени SYSTEM (NT AUTHORITY\SYSTEM). Профиль по «set» определяется как:
USERPROFILE=C:\Documents and Settings\LocalService
через «WScript.CreateObject("Shell.Application").NameSpace("shell:Profile").self.Path» как:
C:\WINDOWS\system32\config\systemprofile
В то же время, «WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop")» даёт именно:
C:\Documents and Settings\LocalService\Рабочий стол
Осталось увидеть:
либо вместо имени юзера, выводится имя пк,
Хотя, судя по тому, что не риторические вопросы:
Выбор наиболее предпочтительного зависит от предназначения. Опишите, где и как Вы собираетесь использовать имя пользователя. »
Limonica, я не верю в сказки. Что говорит по этому поводу служба поддержки? »
так же были обойдены молчанием, ответа не будет.
Limonica
26-12-2012, 15:55
Я незнаю каким шлангом нужно прикинуться, чтобы такой простой вопрос расписывать на 2 страницы. В службу поддержки я так же не верю и не являюсь лицензионным пользователем.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.