Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Загрузка/выгрузка из/в *.txt файл

Ответить
Настройки темы
VBS/WSH/JS - [решено] Загрузка/выгрузка из/в *.txt файл

Пользователь


Сообщения: 144
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!
Народ помогите, есть вот такой скрипт:

Computer = InputBox("Имя компьютера")

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")

Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")

For Each objComputer in colComputer
Wscript.Echo "Logged-on user: " & objComputer.UserName

Next


Как сделать так, чтобы запрашивал не имя, а name.txt файл со списком ПК и соответственно выгружал в name_log.txt ввиде:

NamePC1 = Domain\User1
NamePC2 = Domain\User2
NamePC3 = Domain\User3
...

Отправлено: 13:42, 20-01-2012

 

Старожил


Сообщения: 210
Благодарности: 76

Профиль | Отправить PM | Цитировать


Укажите версии ОС:
- на компьютере, где будет запускаться сценарий;
- на компьютерах, которые он будет опрашивать.

Отправлено: 13:49, 20-01-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 144
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DmitriiV:
Укажите версии ОС:
- на компьютере, где будет запускаться сценарий;
- на компьютерах, которые он будет опрашивать. »
1. Windows 7 Enterprise
2. Windows XP (Pro), 7 (Enterprise, Pro, Ultimate)

Отправлено: 14:22, 20-01-2012 | #3


Старожил


Сообщения: 210
Благодарности: 76

Профиль | Отправить PM | Цитировать


Простой, но некрасивый (с точки зрения организации диалога по выбору файла с именами компьютеров) вариант:
Код: Выделить весь код
strLog = "name_log.txt"
Set objFS = CreateObject("Scripting.FileSystemObject")
strLog = objFS.BuildPath(objFS.GetParentFolderName(WScript.ScriptFullName), strLog)
strFile = Trim(InputBox("Полный путь к файлу:"))
If objFS.FileExists(strFile) Then
	Set objFile = objFS.OpenTextFile(strFile, 1)
	arrComputers = Split(objFile.ReadAll, vbNewLine)
	objFile.Close
	On Error Resume Next
	For i = 0 To UBound(arrComputers)
		If Len(arrComputers(i)) > 0 Then
			Set objWMIService = GetObject("winmgmts:" _
				& "{impersonationLevel=impersonate}!\\" & arrComputers(i) & "\root\cimv2")
			If Err.Number = 0 Then
				Set colComputer = objWMIService.ExecQuery("Select UserName from Win32_ComputerSystem")
				If Err.Number = 0 Then
					For Each objComputer In colComputer
						If IsNull(objComputer.UserName) Then
							strUsers = strUsers & arrComputers(i) & " = сеанс не обнаружен" & vbNewLine
						Else
							strUsers = strUsers & arrComputers(i) & " = " & objComputer.UserName & vbNewLine
						End If
					Next
				Else
					Err.Clear
				End If
				Set colComputer = Nothing
			Else
				Err.Clear
			End If
		End If
	Next
	On Error GoTo 0
	Set objFile = objFS.OpenTextFile(strLog, 2, True)
	objFile.Write strUsers
	objFile.Close
	Set objFile = Nothing
Else
	WScript.Echo "Файл не найден."
End If
Set objFS = Nothing
WScript.Quit 0
Информацию о том, как под Win 7 организовать красивый диалог выбора файла, найдёте здесь:
VBS диалог открытия файла не работает на Windows 7
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:37, 20-01-2012 | #4


Пользователь


Сообщения: 144
Благодарности: 0

Профиль | Отправить PM | Цитировать


Супер!
Только есть проблема, если ПК не пингуется, то скрипт висит, можно его доделать так?:

NamePC1 = domain\NameUser1
NamePC2 = domain\NameUser2
NamePC3 = недоступен
NamePC4 = domain\NameUser4
...

Отправлено: 16:10, 20-01-2012 | #5


Старожил


Сообщения: 210
Благодарности: 76

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
strLog = "name_log.txt"
Set objFS = CreateObject("Scripting.FileSystemObject")
strLog = objFS.BuildPath(objFS.GetParentFolderName(WScript.ScriptFullName), strLog)
strFile = Trim(InputBox("Полный путь к файлу:"))
If objFS.FileExists(strFile) Then
	Set objFile = objFS.OpenTextFile(strFile, 1)
	arrComputers = Split(objFile.ReadAll, vbNewLine)
	objFile.Close
	On Error Resume Next
	For i = 0 To UBound(arrComputers)
		If Len(arrComputers(i)) > 0 Then
			If Ping_GUI(arrComputers(i)) Then
				Set objWMIService = GetObject("winmgmts:" _
					& "{impersonationLevel=impersonate}!\\" & arrComputers(i) & "\root\cimv2")
				If Err.Number = 0 Then
					Set colComputer = objWMIService.ExecQuery("Select UserName from Win32_ComputerSystem")
					If Err.Number = 0 Then
						For Each objComputer In colComputer
							If IsNull(objComputer.UserName) Then
								strUsers = strUsers & arrComputers(i) & " = сеанс не обнаружен" & vbNewLine
							Else
								strUsers = strUsers & arrComputers(i) & " = " & objComputer.UserName & vbNewLine
							End If
						Next
					Else
						Err.Clear
					End If
					Set colComputer = Nothing
				Else
					Err.Clear
				End If
			Else
				strUsers = strUsers & arrComputers(i) & " = недоступен" & vbNewLine
			End If
		End If
	Next
	On Error GoTo 0
	Set objFile = objFS.OpenTextFile(strLog, 2, True)
	objFile.Write strUsers
	objFile.Close
	Set objFile = Nothing
	WScript.Echo "Готово."
Else
	WScript.Echo "Файл не найден."
End If
Set objFS = Nothing
WScript.Quit 0

'===

Function Ping_GUI(strName)
Dim objWMI, objItem
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
	("SELECT * FROM Win32_PingStatus WHERE Address='" & strName & "'")
For Each objItem In objWMI
    If IsNull(objItem.StatusCode) Or objItem.StatusCode <> 0 Then
        Ping_GUI = False
    Else
        Ping_GUI = True
    End If
Next
Set objItem = Nothing
Set objWMI = Nothing
End Function
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:56, 20-01-2012 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Загрузка/выгрузка из/в *.txt файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSFT SQL Server - Выгрузка базы в текстовый файл и загрузка обратно xoxmodav Программирование и базы данных 4 17-11-2010 01:11
нужно переделать файл doc в файл txt гала Тест-форум 1 15-01-2010 18:53
Разное - файл trace.txt snoogens Microsoft Windows 2000/XP 2 10-03-2009 00:45
Выборочная загрузка и выгрузка данных из формы в таблицу MySQL dima1981 Вебмастеру 8 25-08-2008 18:02
Драйвер - Загрузка и выгрузка dll через CMDline borison Microsoft Windows 2000/XP 2 29-02-2008 17:50




 
Переход