|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Создание папки "Имя Фамилия" для доменного пользователя |
|
VBS/WSH/JS - [решено] Создание папки "Имя Фамилия" для доменного пользователя
|
Ветеран Сообщения: 992 |
Есть сетевая папка в которой нужно создать папку пользователя от имени пользователя. Хотелось бы сделать это на js (дабы дополнить имеющийся скрипт, а не плодить новые)
На posh у меня получилось приблизительно так: Get-ADUser $env:USERNAME | ForEach { $folder="\\server\Именные\" + $_.Surname + " " + $_.GivenName} if (!(Test-Path "$folder")) {New-Item -Path "$folder" -ItemType "directory"} Несущественная информация, которая мало влияет на суть задачи.
В названии темы случайно указал "Имя Фамилия", на самом деле "Фамилия Имя".
|
|
Отправлено: 16:27, 30-01-2017 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать т.е. js практически не знаю обратился к cmd. вытащил имя и фамилию через wmi, но дальше какая-то лажа. что-то я делаю не так, и понять не могу что.
@echo off SETLOCAL ENABLEDELAYEDEXPANSION for /f "skip=1 delims=" %%i in ('WMIC /Namespace:\\root\directory\LDAP Path DS_user Where "DS_sAMAccountName='%username%'" Get DS_sn ^|findstr .') do ( for /f "skip=1 delims=" %%j in ('WMIC /Namespace:\\root\directory\LDAP Path DS_user Where "DS_sAMAccountName='%username%'" Get DS_givenName ^|findstr .') do ( echo %%i echo %%j set foldername=%%i %%j echo !foldername! )) |
Отправлено: 17:56, 31-01-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Elven, wmic.exe осуществляет вывод в Unicode (UTF-16 LE/1200). Когда for /f осуществляет попытку разбора вывода в такой кодировке, юникодные концы строк 0x000D, 0x000A превращаются в неудобоваримый OEM-ный набор из 0x0D, 0x0D, 0x0A. Это хорошо видно по результатам перенаправления вывода в файл:
Видите выделенные 0x0D: Скрытый текст
![]() ? Вот они-то и мешаются. Самым простым способом компенсировать такое поведение является двойной разбор по for /f. Могу поискать пример, «их тут были». P.S. А почему Вы делаете два запроса, а не один: ? |
Отправлено: 22:50, 02-02-2017 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Iska, если цеплять их одним запросом вне зависимости от очередности запроса вывод идет сначала имени, а потом фамилии. тут или брать значения с ключом /value и обрезать лишнее или двумя for, чтобы запихнуть в отдельные переменные. второй вариант мне как-то больше приглянулся.
С двойным разбором по for можно подробнее? |
Отправлено: 15:08, 08-02-2017 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Цитата Elven:
|
|||
Отправлено: 13:37, 09-02-2017 | #5 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Самое то.
получилось как-то так: @echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq skip=1 delims=" %%i in ( `WMIC /Namespace:\\root\directory\LDAP Path DS_user Where "DS_sAMAccountName='%username%'" Get DS_sn^, DS_givenName` ) do for /f "tokens=1,2" %%j in ("%%~i") do ( echo %%k %%j pushd \\server\Именные\ MD "%%k %%j" popd ) endlocal exit /b 0 |
Отправлено: 14:33, 09-02-2017 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:12, 09-02-2017 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Ошибка - "Неправильное имя папки. Задайте другое имя." при подключении webdav. | R.I.G. | Microsoft Windows 2000/XP | 14 | 26-10-2012 00:58 | |
V. 2010 - Создание структуры папки "Входящие" для клиентов Exchange 2010 | sea707 | Microsoft Exchange Server | 2 | 27-12-2011 21:30 | |
Как изменить имя папки установки системы "WINDOWS" на "Windows" | user-id-4576 | Автоматическая установка Windows 2000/XP/2003 | 17 | 03-07-2011 15:36 | |
Dial-Up - Недоступно "высокоскоростное подключение запрашивающее имя пользователя и пароль" | XaHyMaH | Сетевые технологии | 4 | 19-04-2008 14:31 | |
Изменение "Мой компьютер" на "Имя текущего пользователя на имя компьютера" | shcval | Microsoft Windows 2000/XP | 1 | 15-12-2006 21:01 |
|