Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/75: Рейтинг темы: голосов - 75, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77

Меняем описание компьютера

30.12.2015, 15:21. Показов 14180. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет
Есть AD
есть компы и на XP и на 7
задача - поменять описание компа взяв полное имя из учетной записи (ФИО) последней залогинившийся
много перепробовал, но вот что вроде ближе всего:
Windows Batch file
1
2
3
4
dsquery user -name "%username%" > %temp%\username.txt 
 
 for /f %%i in (%temp%\username.txt) do dsquery * %%i -scope base -attr displayName > %temp%\dispname.txt
 for /f "skip=1" %%j in (%temp%\dispname.txt)do net config server /srvcomment:"%%j"
проблема в том, что в displayname прописаны русские буквы с пробелами и поэтому берется только фамилия первая, а дальше не хочет
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.12.2015, 15:21
Ответы с готовыми решениями:

AD: Добавление записи в описание компьютера
Здравствуйте, У меня вопрос по Active Directory. Допустим есть некий компьютер test и надо этот компьютер завести в домен на имя...

Меняем интеплетатор (как то так) или просто ассоциация с новым кмд
Нужно сделать так Переименовать Кмд в другое имя -- Готово ассоциировать файлы bat и желательно другой с новым названием кмд --...

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

16
 Аватар для b0gus
741 / 339 / 134
Регистрация: 17.03.2014
Сообщений: 842
30.12.2015, 20:06
TAHKill, может быть, 4-ю строку так записать?
Windows Batch file
4
for /f "skip=1 tokens=*" %%j in (%temp%\dispname.txt) do net config server /srvcomment:"%%j"
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
10.01.2016, 08:56  [ТС]
получилось фио полностью, только получается "фио " почему пробел стоит?
0
 Аватар для b0gus
741 / 339 / 134
Регистрация: 17.03.2014
Сообщений: 842
10.01.2016, 13:02
Цитата Сообщение от TAHKill Посмотреть сообщение
получается "фио " почему пробел стоит?
потому что так записано в %temp%\dispname.txt - с завершающим пробелом, попробуйте так
Windows Batch file
4
for /f "skip=1 tokens=*" %%j in (%temp%\dispname.txt) do set x=%%j&if "!x:~-1!"==" " set x=!x:~0,-1!&net config server /srvcomment:"!x!"
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
10.01.2016, 14:43  [ТС]
ух, чот не пошло, вот что выдает
Windows Batch file
1
C:\Users\admin>set x=Иванов Иван Иванович    & if "!x:~-1!" == " " set x=!x:~0,-1!  & net config server /srvcomment:"!x!"
и не меняет вообще, описание пустым остается
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
10.01.2016, 14:51
Нет желания VBS использовать?:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
*************** Смена имени компа и описания ****************
sub main()
 
        Set objWMIService = GetObject("winmgmts:\\127.0.0.1").InstancesOf("Win32_OperatingSystem")
        For Each x In objWMIService
            x.Description = "Описание компа"
            x.Put_
        Next
 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\127.0.0.1\root\cimv2")
Set colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
 
For Each objComputer in colComputers
 err = objComputer.Rename("Имя компа")
next
 
end sub
0
 Аватар для b0gus
741 / 339 / 134
Регистрация: 17.03.2014
Сообщений: 842
10.01.2016, 19:21
Цитата Сообщение от TAHKill Посмотреть сообщение
вот что выдает
пробуем добавить "кавычки" для set
Windows Batch file
4
for /f "skip=1 tokens=*" %%j in (%temp%\dispname.txt) do set "x=%%j"&if "!x:~-1!"==" " set "x=!x:~0,-1!"&net config server /srvcomment:"!x!"
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
12.01.2016, 10:16  [ТС]
короче заработало вот так:

Windows Batch file
1
2
3
dsquery user -name "%username%" > %temp%\username.txt 
for /f %%i in (%temp%\username.txt) do dsquery * %%i -scope base -attr displayName > %temp%\dispname.txt
for /f "skip=1 tokens=1,2,3 delims= " %%j in (%temp%\dispname.txt) do net config server /srvcomment:"%%j %%k %%l"
Добавлено через 2 часа 56 минут
проблема другая возникла - как это все пропустить на всех компах в домене. просто так батник не отрабатывается ((
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
12.01.2016, 10:26  [ТС]
а при запуске vbs выдает вот что
Миниатюры
Меняем описание компьютера  
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
12.01.2016, 11:53  [ТС]
пофиксил комментарий в vbs обозначается '
после выполнения скрипта не фио а логин учетки вставляется
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.01.2016, 13:31
Так не попроще будет?:
Windows Batch file
1
for /f "delims=" %%i in ('dsquery user -name "%username%"') do for /f "delims=" %%j in ('dsquery * %%i -scope base -attr displayName') do net config server /srvcomment:"%%j"
.
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
12.01.2016, 14:08  [ТС]
тоже работает, но по 2 пробела спереди и сзади от ФИО получается
кстати дополнительно спрошу, а как сделать чтоб к ФИО еще номер телефона оттуда же из учетки писался?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.01.2016, 14:52
TAHKill, Видел где-то:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@echo off
if "%~1"=="" (
 echo Search users in AD by logonname ^(default^) or display name
 echo Usage %0 ^ ^[-name^|-samid^] ^[dsget options^]
 echo ^    - logon name or user display name with mask
 echo                   for example "jon*", "*andr*".
 echo                   see "dsquery user /?" for help
 echo [-name^|-samid]  - query by -name or -samid ^(default -samid^)
 echo                   see "dsquery user /?" for help
 echo [dsget options] - set more info for display ^(such -tel, -email^)
 echo                   default -disabled -display -samid
 echo                   see "dsget user /?" for help
 echo -----------------------------------------------------------------------
 echo Swed Collection                                          Sergey Davydov
 goto quit
)
if "%~2"=="-name" (
 set typeu=-name
) else (
 set typeu=-samid
)
dsquery user %typeu% "%~1" | find "CN">nul
if %errorlevel% EQU 0 (
 dsquery user %typeu% "%~1" | dsget user -disabled -display -samid %3 %4 %5 %6 %7 %8 %9
) else (
 echo.
 echo "%~1" by %typeu% not found
 echo.
)
:quit
это поиск пользователя, думаю сможете выбрать необходимое.

Добавлено через 10 минут
Видел так еще сочетают
Windows Batch file
1
FOR /F "delims=, tokens=1,2" %%A in (add-tel.txt) do dsquery user -samid %%A "OU=Users,OU=Blabla,DC=domain,DC=lan" -limit 0 | dsmod user -tel "%%B"
у меня нет такой утилиты чтобы проверить или самому что-то сделать, она бывает отдельно?
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
15.01.2016, 09:33  [ТС]
alpap, опять этот dsquery! неужели нет аналога и без него никак?

Добавлено через 27 минут
свежие новости - все работает, если дать права локального админа, то все отлично работает
как это сделать не давай права? или давай права только на выполнение этого батника?

Добавлено через 10 минут
через runas он заполняет описание админским ФИО

Добавлено через 17 часов 9 минут
вот крутая штука скрипт vbs только "ДНС_имя_домена" свое не забудьте указать
и еще проблемка - у пользователей пишет разрешение отклонено "get object"

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Dim WSHNetwork, WshShell, strUserName, sComment
 
Set WSHNetwork = WScript.CreateObject("WScript.Network")
 
While strUserName = ""
  WScript.Sleep 100
  strUserName = WSHNetwork.UserName
Wend
 
Set WshShell = CreateObject("WScript.Shell")
sComment = fnGetUserFullName(strUserName, "ДНС_имя_домена")
 
WshShell.Run "%comspec% /c net config server /srvcomment:" & Chr(34) & sComment & Chr(34), 0, True
 
Set WshShell = Nothing
Set WSHNetwork = Nothing
 
Function fnGetUserFullName(sUser, sDomain_FullDNSName)
Set objWMIService = GetObject("winmgmts:" & sDomain_FullDNSName & "\root\directory\LDAP")
Set colItems = objWMIService.ExecQuery("SELECT * FROM ads_user WHERE DS_sAMAccountName='" & sUser & "'", "WQL", &h10 + &h20)
 
For Each objItem In colItems 
  fnGetUserFullName = objitem.DS_displayName
' для телефонного номера objitem.DS_telephoneNumber и т.д. (смотреть атрибуты в AD)
Next
End Function
Добавлено через 7 часов 12 минут
вот последний вариант без всяких прав

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim objADSInfo, WshShell, strUserDN, sComment
 
Set objADSInfo = CreateObject("ADSystemInfo")
strUserDN = objADSInfo.UserName
 
 
Set objUser = GetObject("LDAP://" & strUserDN)
 
sComment = objUser.FullName
' sComment = objUser.telephoneNumber
 
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "%comspec% /c net config server /srvcomment:" & Chr(34) & sComment & Chr(34), 0, True
 
Set objADSInfo = Nothing
Set WshShell = Nothing
Добавлено через 18 часов 27 минут
в XP не работает - переименовывает так - ИМЯКОМПА$
может запускать надо по другому? сейчас у меня так:
Windows Batch file
1
2
xcopy /h /y "\\домен\netlogon\scripts\rename.vbs" "%appdata%"
 "%appdata%\rename.vbs"
Добавлено через 25 минут
короче это все из-за прав! захожу под собой-админом на XP - скрипт работает, под пользователем нет

Добавлено через 22 часа 27 минут
нифига не работает без прав

новая задача - как запускать и отключать групповую политику по расписанию\через батник и т п?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
15.01.2016, 11:48
TAHKill, может сюда?

Добавлено через 9 минут
а отключить групповую политику не так-то и просто, хотя реально здесь.
0
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 77
15.01.2016, 13:05  [ТС]
alpap, там описано как вообще службу гп отключить, а мне надо определенную гп отключить
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
15.01.2016, 13:35
Можно и так:
HTML5
1
2
3
<HTML>
<script language="vbscript">msgbox "А мне побоку групповые политики!"</script>
</HTML>
загнать нужный vbs и сохранить с name.hta

Добавлено через 2 минуты
Вот только с vbs я не знаком, нужный код на vbs кто-то приводил выше или просите кого-то.

Добавлено через 6 минут
Да, забыл, запускать обязательно через ярлык к файлу "name.hta".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.01.2016, 13:35
Помогаю со студенческими работами здесь

меняем IP...
Доброго времени суток!! начал изучать СИ шарп и вот появился вопрос..))) как можно поменять ИП адрес компа и вообще возможно ли...

Меняем SP
Здравствуйте, прочитал пример и пытаюсь разобраться, но не получается. CSEG segment org 100h Begin: mov sp, 10Bh mov...

меняем местами
У нас есть две целые переменные А и В написать программу которая меняет местами значения этих символов тоесть значение переменной А...

меняем цвет формы
Здравствуйте! Помогите кто можит пожалуйста! На форме 3 СкролБара (ргб) Нужно стобы цвет формы менялся от положения слоубаров. ...

Програмно меняем шрифт
Доброго дня всем! Кто разумит, в чем ошибка? Panel1-&gt;Font-&gt;Name= Georgia; Unit1.cpp(453): E2451 Undefined symbol 'Georgia' ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru