<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5235&amp;type=atom" />
	<updated>2011-02-07T13:05:42Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5235</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44944#p44944" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>holydiver пишет:</cite><blockquote><p>... идея, вроде бы, ясна. А как реализовать сей сценарий (пункт 3), не совсем понятно...</p></blockquote></div><p>Поищите на форуме темы по ключу <strong><span style="color: blue">__InstanceCreationEvent</span></strong></p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2011-02-07T13:05:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44944#p44944</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44729#p44729" />
			<content type="html"><![CDATA[<p>Вот спасибоньки <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <br />Все получилось!</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-02-02T11:14:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44729#p44729</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44721#p44721" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>поэтому переменной среды присваивается пустое значение, а его ни с чем сравнивать нельзя...</p></blockquote></div><p>Пустое? Можно:<br /></p><div class="codebox"><pre><code>if defined proverka …</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-02-02T09:32:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44721#p44721</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44712#p44712" />
			<content type="html"><![CDATA[<p>Так, но идея, вроде бы, ясна.<br />А как реализовать сей сценарий (пункт 3), не совсем понятно.</p><p>ЗЫ, кстати, по решению что я выше привел - все работает. Вот только одно но... Нужна проверка, если там уже имеются такие данные, то ничего не делать. Я сделал так:</p><div class="codebox"><pre><code>for /F &quot;tokens=2 delims=: &quot; %%A in (&#039;dsquery user -name %username% ^| dsget user -office -L ^| find &quot;%computername:~3,-4%&quot;&#039;) do set proverka=%%A

echo &quot;%proverka% == %computername:~3,-4%&quot;

if %proverka% == %computername:~3,-4% ( 
    goto exit 
    ) else (
    goto dsq
    )
    
:dsq
dsquery user -name %username% | dsmod user -office &quot;%computername:~3,-4% ( %computername% )&quot;
    
:exit
echo exit
pause</code></pre></div><p>Проблема в том, что первоначально в том поле ничего нет, поэтому переменной среды присваивается пустое значение, а его ни с чем сравнивать нельзя...</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-02-02T05:46:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44712#p44712</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44450#p44450" />
			<content type="html"><![CDATA[<p>Судя по предыдущему сообщению, задача решена.<br />Осталось лишь разобраться с &quot;проксированием&quot; (ну, например, на будущее).</p><p><strong>1.</strong> Создаём папку общего доступа, с правами для рядовых пользователей только на запись (значение маски либо &amp;H100116, либо &amp;H40000000).</p><p><strong>2.</strong> Пишем &quot;LogOn&quot;-сценарий, который будет создавать в этой папке некий сигнальный файл. Например, это может быть пустой текстовый файл, имя которого состоит из пары: имя станции + имя пользователя.<br />И включаем этот сценарий в нужным образом в групповую политику.</p><p><strong>3.</strong> Пишем сценарий для регистрации временной или постоянной (с моей точки зрения, временная - практичнее) подписки на событие появления в папке общего доступа сигнальных файлов от пользователей.<br />И запускаем этот сценарий с нужными полномочиями.<br />Сценарий, получив сигнал о наступлении события, делает следующее:<br />- выполняет привязку к соответствующему объекту-пользователю в AD;<br />- вносит изменения в поле описания этого объекта;<br />- удаляет сигнальный файл.</p><p>Таким образом, пользователи, имея лишь свои базовые права, могут инициировать процесс внесения изменений в AD.</p><p>Понятно объяснил?</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2011-01-27T14:04:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44450#p44450</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44445#p44445" />
			<content type="html"><![CDATA[<p>Блин... Почему я нахожу ответ сразу после того как отпишусь на форуме?..</p><p>dsquery user -name %username% | dsmod user -office &quot;%computername:~3,-4% (%competername%)</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-01-27T09:42:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44445#p44445</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44444#p44444" />
			<content type="html"><![CDATA[<p>Теперь иная задача...<br />Раз уж в &quot;Описание&quot; юзер ничего не может добавить, то имя компа надо писать в поле &quot;Комната&quot;, причем в таком формате: номер_комнаты (имя_компьютера).</p><p>Имя компов у нас в формате com123ws01<br />Где com - 3-хбуквенное имя площадки<br />123 - номер комнаты<br />ws - вёркстэйшн <br />01 - номер розетки. </p><p>Собственно, разобрать переменную среды %computername% и выделить номер комнаты не сложно: %COMPUTERNAME:~3,-4%</p><p>Вот только как это в vbs-скрипте сделать?</p><div class="codebox"><pre><code>Function Environ(VarName)
    Dim wss, env
    Set wss = CreateObject(&quot;WScript.Shell&quot;)
    Set env = wss.environment(&quot;process&quot;)
    Environ = env(VarName)
    If Environ = &quot;&quot; Then
        Set env = wss.environment(&quot;system&quot;)
        Environ = env(VarName)
    End If
End Function

asdf = Environ(&quot;COMPUTERNAME:~3,-4&quot;)
msgbox(asdf)

Set WSHShell = WScript.CreateObject(&quot;WScript.Shell&quot;)
usernamevar = WshShell.ExpandEnvironmentStrings(&quot;%COMPUTERNAME:~3,-4%&quot;)
msgbox(usernamevar)</code></pre></div><p>Вот только оба варианта не работают. Как мне регулярные выражения для переменных среды в vbs-скрипте использовать?</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-01-27T09:24:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44444#p44444</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44417#p44417" />
			<content type="html"><![CDATA[<p>Dmitrii, я так ничего с проксированием и не понял <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p><p>А вариант 1 не подошел тем, что в vbs-скрипте не всегда подхватывается пароль.. Поэтому он запускатся-таки от компа.</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-01-26T12:04:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44417#p44417</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44416#p44416" />
			<content type="html"><![CDATA[<p>с cmd все просто ))</p><p>dsquery user -name %username% | dsmod user -desc &quot;%computername%&quot;</p><p>вот только нет прав у юзера редактировать этот пункт...=( как сие обойти?</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-01-26T12:01:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44416#p44416</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44412#p44412" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>holydiver пишет:</cite><blockquote><p>... Пользователь в своей учетке в АД не может править поле &quot;Описание&quot;...</p></blockquote></div><p><strong>Вариант 1</strong> Вы уже применяли для заполнения поля описания объекта-компьютера:<em> &quot;Сделал чтобы при логоне пользователя этот скрипт запускался от учетки, имеющей доступ писать в этой описание компов в АД&quot;</em>.<br /><strong>Вариант 2</strong> предлагал Вам я - это &quot;проксирование&quot;.<br /><strong>Вариант 3</strong> - наблюдение за появлением события о регистрации сеанса пользователя в журнале событий контроллера на стороне самого контроллера и внесение соответствующих изменений в AD (то же самое и при завершении сеанса).</p><div class="quotebox"><cite>holydiver пишет:</cite><blockquote><p>... скрипт сей пробегается по всей OU и редактирует все учетки одним именем компа, от которого запущен...</p></blockquote></div><p>Вы сами позволили ему это делать:<br /></p><div class="codebox"><pre><code>for each objUser in objParent
&#039;...
next</code></pre></div><div class="quotebox"><cite>holydiver пишет:</cite><blockquote><p>... надо чтобы он запускался от юзера и только свою учетку в АД редактировал этим описанием...</p></blockquote></div><p>Ну и выполняйте привязку не к объекту-подразделению, а к объекту-пользователю.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2011-01-26T11:53:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44412#p44412</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44411#p44411" />
			<content type="html"><![CDATA[<p>А теперь обратная задача... Заполнить поле &quot;Описание&quot; у пользователя в АД - именем компа, на котором он залогинен.<br />Написал такой вот незамысловатый скрипт:</p><div class="codebox"><pre><code>Const ADS_PROPERTY_UPDATE = 2 

Function Environ(VarName)
    Dim wss, env
    Set wss = CreateObject(&quot;WScript.Shell&quot;)
    Set env = wss.environment(&quot;process&quot;)
    Environ = env(VarName)
    If Environ = &quot;&quot; Then
        Set env = wss.environment(&quot;system&quot;)
        Environ = env(VarName)
    End If
End Function

Set objWshShell =  WScript.CreateObject(&quot;WScript.Shell&quot;)
strEnv      =  Environ(&quot;COMPUTERNAME&quot;)

On Error Resume Next

set objParent = GetObject(&quot;LDAP://ou=Уволенные,ou=Пользователи,ou=Новосибирск_nov,ou=Площадки,dc=domain,dc=local&quot;)
objParent.Filter = Array(&quot;user&quot;)
for each objUser in objParent

    objUser.PutEx ADS_PROPERTY_UPDATE, &quot;description&quot;, Array(strEnv)

    objUser.SetInfo
    On Error GoTo 0
next</code></pre></div><p>Вот только проблема. Пользователь в своей учетке в АД не может править поле &quot;Описание&quot;. Да и вообще - скрипт сей пробегается по всей OU и редактирует все учетки одним именем компа, от которого запущен.<br />А надо чтобы он запускался от юзера и только свою учетку в АД редактировал этим описанием... </p><p>Смотрю в сторону cmd и dsquery, но что-то пока нет мыслей по реализации.</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-01-26T10:57:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44411#p44411</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43080#p43080" />
			<content type="html"><![CDATA[<p>Что то smaharbA не отвечает, парни подскажите если кто знает про этот скрипт?</p>]]></content>
			<author>
				<name><![CDATA[BANDI-OGA]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26549</uri>
			</author>
			<updated>2010-12-27T05:20:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43080#p43080</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43039#p43039" />
			<content type="html"><![CDATA[<p>Попробуйте за разъяснениями написать коллеге <a href="http://forum.script-coding.com/profile.php?id=2911">smaharbA</a> в личку, сюда он заходит достаточно спорадически.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-12-25T18:46:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43039#p43039</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43015#p43015" />
			<content type="html"><![CDATA[<p>Что имено мне <a href="http://forum.script-coding.com/viewtopic.php?pid=42425#p42425">здесь</a> надо исправить под себя, set domain= set user= это я добавил и все?</p>]]></content>
			<author>
				<name><![CDATA[BANDI-OGA]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26549</uri>
			</author>
			<updated>2010-12-25T13:59:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43015#p43015</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: заполнение "Описание" для компа в АД именем залогиненного юзера]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43014#p43014" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>BANDI-OGA</strong>, объясните на пальцах, что «это»?</p></blockquote></div><p>ну как запускать, в групповую политику совать и накатывать на каждого пользака или это от одного пользователя отрабатывается</p>]]></content>
			<author>
				<name><![CDATA[BANDI-OGA]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26549</uri>
			</author>
			<updated>2010-12-25T13:54:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43014#p43014</id>
		</entry>
</feed>
