Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218

Получить имя WHOAMI, отрезав ненужное

04.02.2019, 13:45. Показов 8461. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа, помогите вопрос такой. Есть задача, но совершенно не понимаю в этом

мне нужно сообразить батник, который бы получал имя пользователя.
т.е не Echo %Username%
а WHOAMI /FQDN
только без остальной части, интересует CN=имя_пользователя,
можно ли какой-нибудь трим сообразить?
погуглил, ничего не нашел. только как обрезать текстовые файлы. Я могу как я понял, сохранить это в текстовый файл, и там обрезать тримом? Или можно как-то проще придумать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2019, 13:45
Ответы с готовыми решениями:

Как в билдере получить с сервера (MySQL 5.1, имя базы "skola", имя table "info") имя столбцов и имя строк
Доброва времены суток Как в билдере получить с сервера (MySQL 5.1, имя базы "skola", имя table "info") имя столбцов и...

Получить имя моего процесса (получить имя меня)
Работает мой код. Мне нужно получить имя моего процесса - ***.exe

Команда whoami
Здравствуйте, есть вопрос по команде whoami. Я работаю на виртуальной машине Oracle, с виртуальной версией Windows XP. При попытке...

40
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
05.02.2019, 13:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Александер2000 Посмотреть сообщение
только еще осталось разобраться как указать в какой папке сохранять
В моём скрипте, поменять значение переменной $root

PowerShell
1
$root = 'c:\USR'
1
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
05.02.2019, 13:44  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
В моём скрипте, поменять значение переменной $root
в вашем скрипте, да я разобрался.
А в КМД? подтоговлю 2 варианта, один как заказывали. а второй, для себя. чтобы знать
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
05.02.2019, 14:05
Цитата Сообщение от Александер2000 Посмотреть сообщение
А в КМД?
Добавить путь к md

Windows Batch file
1
md "c:\USR\%%n"
1
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
05.02.2019, 15:38  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
Добавить путь к md
это потрясающе спасибо

Добавлено через 12 минут
Я рано обрадовался. После того, как отчитался. Мне докинули сверху.. Опять вынужден обратиться к мощным мущинам. спомощью прошлого батника, создалась папка на сетевом диске. следуюащя задача гласит так, та папка которая создалась по имени пользователя, подключается к человеку с таким пользователем как сететвой диск, и переименовывается.
Это вообще реально сделать? Подскажите плиз, или хотябы подскажите где почитать..
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
05.02.2019, 16:13
Цитата Сообщение от Александер2000 Посмотреть сообщение
следуюащя задача гласит так, та папка которая создалась по имени пользователя, подключается к человеку с таким пользователем как сететвой диск
А дальше, дайте угадаю, вам скажут, что доступ к созданной папке нужно оставить только у соответствующего пользователя.

Цитата Сообщение от Александер2000 Посмотреть сообщение
Это вообще реально сделать? Подскажите плиз, или хотябы подскажите где почитать..
И уже в третий раз - всё это решается через простые настройки в ADUC:

https://blogs.technet.microsof... d-folders/

Цитата Сообщение от KDE777 Посмотреть сообщение
Личную папку пользователя (Home Folder) можно создать/задать прямо в свойствах AD-пользователя:
https://blogs.technet.microsof... d-folders/
Цитата Сообщение от KDE777 Посмотреть сообщение
Именно для этого, как я уже и писал, есть "Home Folder" в свойствах AD-пользователя
https://blogs.technet.microsof... d-folders/
Пугает английский, вот на русском (Назначение домашней папки для пользователя домена), а ещё там же есть пример сценария для входа в систему и подключения домашней папки:

https://support.microsoft.com/... -to-a-user

+ Group Policy Preferences вариант:

https://habr.com/ru/post/278659/
0
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
05.02.2019, 16:27  [ТС]
KDE777, я вас понял, значит сегодня я изучаю, те штуки что вы мне дали, почитаю, завтра отпишусь. Что-то мне подсказывает, что я думаю, это не пойдет. НО я ознакомлюсь с тем, что вы мне оставили! Спасибо за помощь, завтра отпишусь
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
05.02.2019, 16:48
Цитата Сообщение от Александер2000 Посмотреть сообщение
Что-то мне подсказывает, что я думаю, это не пойдет.
Что именно здесь не подходит для решения вашей задачи?

1. Создаёте общую папку \\server\share
2. Настраиваете Share и NTFS permissions, как показано в статье.
3. В свойствах AD-пользователя, вкладка "Профиль", раздел "Домашняя папка", выбираете "Подключить", указываете нужную букву и путь \\server\share\%username% (сделать это можно для одного пользователя, для выбранных или всех сразу).
4. Всё - для каждого пользователя будет создана личная папка на сетевом ресурсе, с именем его логина и полным доступом только для него. А при входе в систему (любой доменный компьютер), эта папка будет подключаться, как сетевой диск.

0
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
06.02.2019, 12:14  [ТС]
KDE777,
Цитата Сообщение от KDE777 Посмотреть сообщение
то именно здесь не подходит для решения вашей задачи?
Я правильно Вас понимаю:
(я совсем без опыта, и только сейчас начинаю узнавать все это, потому сразу прошу простить, некоторые моментах я плохо разбираюсь, или могу чего-то не знать. это так предисловие, чтобы вы понимали, примерный уровень моей коментентности и так)
%username% - это не отображаемое имя, а ну в моем случае gaa а не (александр гааг)
а также, если у человека уже создана где-нибудь другая папка, так же подключенная через ваш вариант, свою я впенделить уже не смогу на тот ресурс?
и так же, придеться каждого человека вручную прокликивать, верно? прописывать?
я как понял, мы еще не знаем, кому и когда подключать эту папку и типо потому нужен батник, который бы запускался на сервере и прописывал эти папки кому-то. но я не уверен, поправьте если я не прав
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
06.02.2019, 12:35
Цитата Сообщение от Александер2000 Посмотреть сообщение
%username% - это не отображаемое имя, а ну в моем случае gaa а не (александр гааг)
Да %username% это переменная, которая автоматически заменится на SamAccountName пользователя. Ни разу не встречал, что бы HomeFolder создавали на основе Name или DisplayName (пробелы, кириллица и ещё множество потенциальных проблем...).

Цитата Сообщение от Александер2000 Посмотреть сообщение
а также, если у человека уже создана где-нибудь другая папка, так же подключенная через ваш вариант, свою я впенделить уже не смогу на тот ресурс?
Что значит "где-нибудь"? В AD УЗ только одно свойство HomeFolder. Если нужны личные папки на нескольких шарах (зачем???) тогда см. вариант с Group Policy Preferences - в этом случае можете хоть все свободные буквы алфавита занять личными папками.

Цитата Сообщение от Александер2000 Посмотреть сообщение
и так же, придеться каждого человека вручную прокликивать, верно? прописывать?
Нет. Уже писал - "сделать это можно для одного пользователя, для выбранных или всех сразу", т.е. можно через GUI (в ADUC) выделить тысячи пользователей и сразу всем настроить \\server\share\%username% (ещё лучше/правильней, если \\server\share заменить на DFS-ссылку) или сделать это PS-скриптом отобрав пользователей любым возможным фильтром (только бухгалтеры из Калининграда).

Тем более это касается Group Policy Preferences - политика будет применяться для всех пользователей в AD-контейнере (OU) или только для нужной группы доступа или wmi-фильтра.

Цитата Сообщение от Александер2000 Посмотреть сообщение
я как понял, мы еще не знаем, кому и когда подключать эту папку и типо потому нужен батник, который бы запускался на сервере и прописывал эти папки кому-то.
Вот и сформулируйте сначала внятно все пожелания (ТЗ), а потом уже выбирайте удобную реализацию...
0
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
06.02.2019, 12:39  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
Вот и сформулируйте сначала внятно все пожелания (ТЗ), а потом уже выбирайте удобную реализацию...
понятно, это логично. Тогда, я вернусь через время. возможно вечером или завтра. Попробую уточнить что необходимо.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
06.02.2019, 15:04
Цитата Сообщение от Александер2000 Посмотреть сообщение
%username% - это не отображаемое имя, а ну в моем случае gaa а не (александр гааг)
Кстати, ещё одно замечание по поводу создания папки, у которой название - это отображаемое имя пользователя (CN). У AD пользователей (расположенных в разных OU), в отличие от sAMAccountName, могут быть абсолютно одинаковые имена (CN). И как тогда вы планируете создавать папки?
0
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
06.02.2019, 17:22  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
Кстати, ещё одно замечание по поводу создания папки, у которой название - это отображаемое имя пользователя (CN). У AD пользователей (расположенных в разных OU), в отличие от sAMAccountName, могут быть абсолютно одинаковые имена (CN). И как тогда вы планируете создавать папки?
А ведь и вправду, а ведь точно. могут повторяться. ииииии,, вполне логично.
потому по юсернейму надо делать
0
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
07.02.2019, 14:31  [ТС]
KDE777, уважаемый, я очень долго спорил и спорил и я выбил тз! Готов предоставить ТЗ.

Есть папка на файлопомойке в данном случае, как только я в нее захожу, допустим "аренда", там уже создалась папка с моим именем и фамилией, и она должна подключиться мне как сетевой диск.

такое реально выполнить?

Добавлено через 50 секунд
вариант о которым вы мне говорили, я предложил. мне сказали, нет
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
07.02.2019, 15:09
Цитата Сообщение от Александер2000 Посмотреть сообщение
Есть папка на файлопомойке в данном случае, как только я в нее захожу, допустим "аренда", там уже создалась папка с моим именем и фамилией, и она должна подключиться мне как сетевой диск.
Я правильно понял - клиент открывает, например в проводнике, smb-ссылку \\fileserver\аренда и в этот момент должно происходить следующее:

1. Создаётся папка \\fileserver\аренда\%username%
2. Подключение в сессии этого пользователя сетевого диска (например с буквой X), ссылающегося на \\fileserver\аренда\%username%

Более странного задания я не встречал... И всё равно не понимаю, чем не устраивают варианты с AD HomeFolder или GP Preferences? Ответ "просто нет" меня не устраивает. Что случится, если сетевой диск подключится пользователю при входе в систему, т.е. до того, как он обратится к этой шаре?

Ну, ок допустим вот такое ТЗ, тогда вопросы:

1. Какие ntfs-разрешения устанавливать на вновь созданную папку
2. Диск подключать только до следующей перезагрузки (и подключать снова при следующем обращение) или на постоянной основе?

По поводу реализации - для этого ТЗ необходим какой-то сервис постоянно отслеживающий доступ текущего пользователя к конкретной smb ссылке и это поручили сделать сотруднику heldesk-отдела. Ну, ну... Я например, пас. Тратить время на "сделайте так, потому что просто хочу" не хочется

Добавлено через 15 минут
И кстати, это ТЗ выходит далеко за рамки исходной темы "Получить имя WHOAMI, отрезав ненужное", для которой вам предоставил все возможные решения...
2
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
07.02.2019, 17:30  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
По поводу реализации - для этого ТЗ необходим какой-то сервис постоянно отслеживающий доступ текущего пользователя к конкретной smb ссылке и это поручили сделать сотруднику heldesk-отдела. Ну, ну... Я например, пас. Тратить время на "сделайте так, потому что просто хочу" не хочется
Я как понял, я неверно изъяснился. Извините, еще раз, сначала!
просто, объясняет руководитель, и не хочет писать письменно, потому получается глухой телефон. НО, я обрастаю опытом и понимаю, что нужно заставлять писать.
Итог следующий.
Папки уже созданы. Есть папки сименем пользователя допустим Ирина незнаю Васильева. Я как понял, заходит Ирина Васильева в эту папку и либо сама запускает батник(либо мы) либо групповая политика, и подключает ей эту папку к себе с Х(любой доступная буква) диск и переименовывает в АРЕНДУ.
Во, вроде правильно написал .еще раз извините за корявую попытку донести Вам мыслью

Добавлено через 1 минуту
потому, была канитель с батником по имени пользователя а не %username%
Видимо как-то нужно сравнивать имена. Это реально? какой это ваще язык? асемблер? с++? что это? бачт?

Добавлено через 3 минуты
Цитата Сообщение от KDE777 Посмотреть сообщение
И кстати, это ТЗ выходит далеко за рамки исходной темы "Получить имя WHOAMI, отрезав ненужное", для которой вам предоставил все возможные решения...
вот потому, что
Цитата Сообщение от Александер2000 Посмотреть сообщение
просто, объясняет руководитель, и не хочет писать письменно, потому получается глухой телефон.
вот, из-за этого. изначально давали задание отрезать ненужное, а теперь задача трансформировалась, под натиском вашего опыта, моей решимости и общего изменения климата полагаю)
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
07.02.2019, 17:46
Цитата Сообщение от Александер2000 Посмотреть сообщение
Видимо как-то нужно сравнивать имена. Это реально? какой это ваще язык? асемблер? с++? что это? бачт?
COBOL

Цитата Сообщение от Александер2000 Посмотреть сообщение
Папки уже созданы. Есть папки сименем пользователя допустим Ирина незнаю Васильева. Я как понял, заходит Ирина Васильева в эту папку и либо сама запускает батник(либо мы) либо групповая политика, и подключает ей эту папку к себе с Х(любой доступная буква) диск и переименовывает в АРЕНДУ.
Так и не ответили какой доступ давать на папку, подключать сетевой диск временно или на постоянной основе...

И что мешает вам (администратором) создать/переименовать сетевую папку, установить нужный доступ, положить этому пользователю в автозагрузку (или логон-скрипт) "net use x: \\server\Share\Аренда" и попросить пользователя перезагрузить свой ПК? У вас, как администраторов, есть Get-ADuser, Get/Set-ACL и все прочие средства, чтобы решить задачу максимально на своей стороне...

Ещё раз всё разузнайте, чётко изложите задачу и создавайте новую тему.
0
 Аватар для Александер2000
7 / 7 / 0
Регистрация: 29.06.2013
Сообщений: 218
07.02.2019, 22:55  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
"net use x: \\server\Share\Аренда" и попросить пользователя
вот, что-то подобное и нужно. я читал про него.

Цитата Сообщение от KDE777 Посмотреть сообщение
Какие ntfs-разрешения устанавливать на вновь созданную папку
полный доступ для человека с этим именем. остальные недолжны ее видеть. (я думаю мы сами разберемся как будет ближе дело)

Цитата Сообщение от KDE777 Посмотреть сообщение
Ещё раз всё разузнайте, чётко изложите задачу и создавайте новую тему.
Цитата Сообщение от Александер2000 Посмотреть сообщение
Есть папки сименем пользователя допустим Ирина Васильева, заходит Ирина Васильева в эту папку и либо сама запускает батник(либо мы)и подключает ей эту папку к себе с Х(любой доступная буква) диск и переименовывает в АРЕНДУ.
Вот, это и нужно.

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

Цитата Сообщение от KDE777 Посмотреть сообщение
И что мешает вам (администратором) создать/переименовать сетевую папку
судя по всему, руководитель не хочет заморачиваться, мне он не объяснил.
а что касается, меня, я можно сказать новичок в этих делах, ток познаю.

ВЫ можете с батником помочь? если нет, то я продолжу поиск
0
7 / 7 / 0
Регистрация: 14.03.2013
Сообщений: 231
19.04.2022, 10:21
Поднял старую тему.
Нужно реализовать исключительно на BATH.

Вопрос первый.
Команда:
WHOAMI /FQDN
у меня возвращает:
CN=Name Family,OU=dep1,OU=users,OU=Town1,DC=doma in,DC=ru
А батник:
Windows Batch file
1
2
for /f %%# in ('WHOAMI /FQDN') do set "%%#"
echo %CN%
Возвращает только:
Name
А нужно
Name Family

Второй вопрос.
Подскажите как реализовать получение второго и последующих значений?
Можно ли как то получить более универсальное решение. Например какая либо переменная или префикс, где его индекс это порядковый номер.
Где
%CN%=Name Family
%OU1%=dep1
%OU2%=users
%OU3%=Town1
%DC1%=domain
%DC2%=ru

ИЛИ

%VAR1%=Name Family
%VAR2%=dep1
%VAR3%=users
%VAR4%=Town1
%VAR5%=domain
%VAR6%=ru

Добавлено через 24 минуты
Разобрался как работает For.

Написал цикл:
Windows Batch file
1
2
3
4
5
6
7
8
@ECHO Off
 
FOR /F " tokens=1,2,3,4,5,6 delims=," %%A IN ('WHOAMI /FQDN') DO (
SET dep=%%B
)
 
ECHO %dep%
PAUSE
Вопрос только как из переменной исключить текст типа
OU=dep1
Оставив только
dep1
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,815
19.04.2022, 18:50
oleggy, так:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
for /f "tokens=2,4,6,8,10,12 delims==," %%a in ('WHOAMI /FQDN') do ^
set "CN=%%a" &set "OU1=%%b" &set "OU2=%%c" &set "OU3=%%d" &set "DC1=%%e" &set "DC2=%%f"
 
echo %CN%
echo %OU1%
echo %OU2%
echo %OU3%
echo %DC1%
echo %DC2%
pause>nul
0
7 / 7 / 0
Регистрация: 14.03.2013
Сообщений: 231
20.04.2022, 05:58
Прошу поясните тонкости вашего кода.
Вы в цикле for указали такие параметры:
Bash
1
tokens=2,4,6,8,10,12 delims==,
1. Почему токены с шагом в 2 ?
Ведь токены показывают кол-ко подстрок (разделенных запятыми) а согласно моему выводу команда WHOAMI выводится так:
CN=Name Family,OU=dep1,OU=users,OU=Town1,DC=doma in,DC=ru
Т.е. тут будет 6 подстрок. Поэтому я и указал:
Bash
1
tokens=1,2,3,4,5,6
Поясните в чем фишка вашего кода?

2. Почему "delims==," а не "delims=," ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2022, 05:58

Из строки, содержащей полное имя файла, получить имя файла
Помогите Дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь), собственно имя и расширение. Выделить из...

Выводится ненужное
Здравствуйте, гуру PHP. Я совсем недавно начал изучать html+css и php. Начал создавать форму регистрации\входа. На локальном сервере всё...

Убрать ненужное
Программисты!Подскажите пожалуйста, как убрать в консоли, в Visual Studio 2005, в конце программы фразу "Для продолжения нажмите любую...

Вырезать ненужное
Имеется код <h1 style="font-family: Tahoma, Arial, Helvetica, sans-serif; color: #000000; font-size: 14px; margin: 0px; padding: 8px...

Дана строка вида «Фамилия Имя Отчество». Получить строку вида Имя Отчество
Дана строка вида «Фамилия Имя Отчество». Получить строку вида Имя Отчество


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru