<?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=5465&amp;type=atom" />
	<updated>2011-02-08T04:15:20Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5465</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Собирает информацию о компьютере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44970#p44970" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>BANDI-OGA пишет:</cite><blockquote><p>... как сделать чтоб скрипт опрашивал и выдавал залогиненого пользователя на удаленном компьютере.</p></blockquote></div><p>Для Win XP и выше - несложно:<br /></p><div class="codebox"><pre><code>Set objWMI = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)
If Err.Number = 0 Then
    Set objCollection = objWMI.ExecQuery(&quot;SELECT UserName FROM Win32_ComputerSystem&quot;)
    If Err.Number = 0 Then
        For Each objItem In objCollection
            If Err.Number = 0 Then
                strName = objItem.UserName
                If IsNull(strName) Then
                    strName = &quot;Сеанс не обнаружен.&quot;
                End If
            Else
                Err.Clear
                strName = &quot;Не идентифицированный сеанс.&quot;
            End If
        Next
        Set objItem = Nothing
    Else
        Err.Clear
        strName = &quot;Не удалось выполнить запрос.&quot;
    End If
    Set objCollection = Nothing
Else
    Err.Clear
    strName = &quot;Подключение не разрешено.&quot;
End If
Set objWMI = Nothing
WScript.Echo strName</code></pre></div><p>Для Win 2000 такой способ даст верный результат лишь в том случае, когда сеанс принадлежит пользователю, входящему в группу локальных администраторов.<br />Здесь алгоритм может быть таким:<br />- читаем значение параметров <strong><span style="color: blue">Shell</span></strong> и <strong><span style="color: blue">DefaultUserName</span></strong> (может пригодиться и параметр <strong><span style="color: blue">DefaultDomainName</span></strong>) ключа реестра<br /><span style="color: blue">HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon</span>;<br />- читаем список процессов, запущенных на станции, и ищем там процесс, соответствующий значению, указанному в <span style="color: blue">Shell</span>;<br />- в случае успеха предыдущего пункта узнаём владельца этого процесса и сравниваем его имя со значением, указанным <span style="color: blue">DefaultUserName</span>;<br />- в случае успеха предыдущего пункта сеанс идентифицирован.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2011-02-08T04:15:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44970#p44970</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Собирает информацию о компьютере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44830#p44830" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?id=5421">Идём сюда</a>, исправляем название темы и оформление поста.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2011-02-04T08:00:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44830#p44830</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Собирает информацию о компьютере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=44829#p44829" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>On Error Resume Next
strComputer = InputBox (&quot;Введите Имя удаленного компьютера&quot;)
Set oIE = WScript.CreateObject(&quot;InternetExplorer.Application&quot;)
oIE.Navigate &quot;about:blank&quot;
oIE.Visible = 1
oIE.ToolBar = 0
oIE.StatusBar = 0
oIE.Width = 600
oIE.Height = 500
oIE.StatusBar = 0
oIE.AddressBar = 0

oIE.Document.Write &quot;&lt;html&gt;&lt;title&gt;ХХХ&lt;/title&gt;&lt;body bgcolor=#034e85&gt;&lt;font color=White&gt;&quot;

&#039;Опрашиваем системные переменные окружения
set oShell = CreateObject(&quot;WScript.Shell&quot;) 

sCurrUsrPath = oShell.ExpandEnvironmentStrings(&quot;%UserName%&quot;)
oIE.Document.Write &quot;Имя пользователя: &quot;
oIE.Document.Write sCurrUsrPath
oIE.Document.Write &quot;&lt;br&gt;&quot;

&#039;Подлючение к WMI
Set objWMIService = GetObject(&quot;winmgmts://&quot; &amp; strComputer &amp; &quot;/root/cimv2&quot;)

&#039;Выборка информации о процессорах
Set colItems = objWMIService.ExecQuery(&quot;Select * from Win32_Processor&quot;, , 48)
For Each objItem in colItems
    strMsg = strMsg &amp; objItem.Name &amp; &quot;&lt;br&gt;&quot;
Next

&#039;Выборка информации о памяти
Set colItems = objWMIService.ExecQuery(&quot;Select * from Win32_ComputerSystem&quot;, , 48)
For Each objItem in colItems
    strMsg2 = strMsg2 &amp; (objItem.TotalPhysicalMemory + 1023) / 1024 &amp; &quot;&lt;br&gt;&quot;
Next

&#039;Выборка тип памяти (&lt;533 DDR1 &gt;=533 DDR2)
Set colItems = objWMIService.ExecQuery(&quot;Select * from Win32_PhysicalMemory&quot;, , 48)
For Each objItem in colItems
    strMsg3 = strMsg3 &amp; (objItem.Speed) &amp; &quot;&lt;br&gt;&quot;
Next

&#039;Выборка информации о диске
Set colItems = objWMIService.ExecQuery(&quot;Select * from Win32_DiskDrive&quot;, , 48)
For Each objItem in colItems
    strMsg4 = strMsg4 &amp; ((objItem.Size + 536870912) / 1073741824) &amp; &quot; GB&quot; &amp; &quot;&lt;br&gt;&quot;
Next

&#039;Выборка информации об установленном видео
Set colItems = objWMIService.ExecQuery(&quot;Select * from Win32_VideoController&quot;, , 48)
For Each objItem in colItems
    strMsg5 = strMsg5 &amp; objItem.Name &amp; &quot;&lt;br&gt;&quot;
Next

&#039;Выборка информации BIOS
Set colItems = objWMIService.ExecQuery(&quot;Select * from Win32_BIOS where PrimaryBIOS = true&quot;, , 48)
For Each objItem in colItems
    strMsg6 = strMsg6 &amp; objItem.Manufacturer &amp; &quot;-&quot; &amp; objItem.Version &amp; &quot;&lt;br&gt;&quot;
Next

&#039;Вывод
oIE.Document.Write &quot;&lt;br&gt;&quot;
oIE.Document.Write &quot;Процессоры&lt;br&gt;&quot;
oIE.Document.Write strMsg
oIE.Document.Write &quot;&lt;br&gt;&quot;
oIE.Document.Write &quot;Память&lt;br&gt;&quot;
oIE.Document.Write strMsg2
oIE.Document.Write &quot;&lt;br&gt;&quot;
oIE.Document.Write &quot;Тип Памяти&lt;br&gt;&quot;
oIE.Document.Write strMsg3
oIE.Document.Write &quot;&lt;br&gt;&quot;
oIE.Document.Write &quot;Диски&lt;br&gt;&quot;
oIE.Document.Write strMsg4
oIE.Document.Write &quot;&lt;br&gt;&quot;
oIE.Document.Write &quot;Видео&lt;br&gt;&quot;
oIE.Document.Write strMsg5
oIE.Document.Write &quot;&lt;br&gt;&quot;
oIE.Document.Write &quot;Биос&lt;br&gt;&quot;
oIE.Document.Write strMsg6


oIE.Document.Write&quot;&lt;/font&gt;&lt;/body&gt;&lt;/html&gt;&quot;</code></pre></div><p>Я этим скриптом узнаю информацию удаленного компьютера, подскажите как сделать чтоб скрипт опрашивал и выдавал залогиненого пользователя на удаленном компьютере.</p>]]></content>
			<author>
				<name><![CDATA[BANDI-OGA]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26549</uri>
			</author>
			<updated>2011-02-04T07:57:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=44829#p44829</id>
		</entry>
</feed>
