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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Первое задание- инвентаризация в сети

Ответить
Настройки темы
CMD/BAT - Первое задание- инвентаризация в сети

Новый участник


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

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


Всем привет!
я новичок, разбираюсь с первым крупным заданием от старшего Сис. Админа- это провести инвентаризацию в сети винды и офиса
после того как сфоткал все наклейки на ПК пользователей, хочу массово через цмд получить ключи активации, которые сейчас стоят на винде7 пользователей.
Скачал PSTools, через psexec.exe имею доступ к компам, как автоматизировать данный скрипт для всех ПК в сети (Его я нашел на этом форуме).
(В идеале круто если каждый ПК создал бы со своим именем строчку, напротив которой ключ активации в csv/txt.)

Код: Выделить весь код
Set WshShell = CreateObject("WScript.Shell")
regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
DigitalProductId = WshShell.RegRead(regKey  & "DigitalProductId")
Win8ProductName = "Windows Product Name: "  & WshShell.RegRead(regKey  & "ProductName")  & vbNewLine
Win8ProductID = "Windows Product ID: "  & WshShell.RegRead(regKey  & "ProductID")  & vbNewLine
Win8ProductKey = ConvertToKey(DigitalProductId)
strProductKey ="Windows Key: "  & Win8ProductKey
Win8ProductID = Win8ProductName  & Win8ProductID  & strProductKey
MsgBox(Win8ProductKey) 
MsgBox(Win8ProductID) 

Function ConvertToKey(regKey)
    Const KeyOffset = 52
    isWin8 = (regKey(66) \ 6) And 1
    regKey(66) = (regKey(66) And  &HF7) Or ((isWin8 And 2) * 4)
    j = 24
    Chars = "BCDFGHJKMPQRTVWXY2346789"
    Do
        Cur = 0
        y = 14
        Do
            Cur = Cur * 256
            Cur = regKey(y + KeyOffset) + Cur
            regKey(y + KeyOffset) = (Cur \ 24)
            Cur = Cur Mod 24
            y = y -1
        Loop While y >= 0
        j = j -1
        winKeyOutput = Mid(Chars, Cur + 1, 1)  & winKeyOutput
        Last = Cur
    Loop While j >= 0
    If (isWin8 = 1) Then
        keypart1 = Mid(winKeyOutput, 2, Last)
        insert = "N"
        winKeyOutput = Replace(winKeyOutput, keypart1, keypart1  & insert, 2, 1, 0)
        If Last = 0 Then winKeyOutput = insert  & winKeyOutput
    End If
    a = Mid(winKeyOutput, 1, 5)
    b = Mid(winKeyOutput, 6, 5)
    c = Mid(winKeyOutput, 11, 5)
    d = Mid(winKeyOutput, 16, 5)
    e = Mid(winKeyOutput, 21, 5)
    ConvertToKey = 123 a  & "-"  & b  & "-"  & c  & "-"  & d  & "-"  & e
	
End Function

Отправлено: 16:00, 18-10-2017

 

Аватара для Elven

Ветеран


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

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


0. Расшариваем папку с доступом "Domain Computers" на запись.
1. Правим скрипт (к слову: это VBS, а не CMD), чтобы он складывал отчет в файл, например, с именем компьютера, в шару указанную в п.0
2. Добавляем через групповые политики задачу от имени системы на целевые компы (здесь можно добавить подпункт с копированием скрипта на целевой комп, но это уже по желанию).
3. Пьем пиво дней несколько, пока собираются данные.
4. Демонстрируем начальнику шару.

почему такой способ лучше чем разовый запуск скрипта с проверкой всех доступных компов? потому что не все компы будут доступны во время запуска скрипта (см. законы Мерфи), в то время как задача в шедулере выполнится тогда, когда комп получит ее с групповыми политиками, сиречь при ближайшей перезагрузке или перечтении политик.

з.ы. пункты 3 и 4 можно поменять местами
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:11, 18-10-2017 | #2



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

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


Новый участник


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

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


Цитата Elven:
1. Правим скрипт (к слову: это VBS, а не CMD), чтобы он складывал отчет в файл, например, с именем компьютера, в шару указанную в п.0 »
Нет доступа к правка групповых политик, поэтому этот пункт требует автоматизации своими силами, и я не очень понимаю, в силу своих начинаний
Например, как убрать у этого скрипта графический интерфейс, чтобы он сразу в файл записал данные и все

Отправлено: 16:53, 18-10-2017 | #3


Ветеран


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

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


Цитата tyhome:
Например, как убрать у этого скрипта графический интерфейс, чтобы он сразу в файл записал данные и все »
Заменить MsgBox() на запись в файл.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:57, 18-10-2017 | #4


Новый участник


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

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


Цитата Iska:
Заменить MsgBox() на запись в файл. »
спасибо, как разберусь, прикреплю сюда скрипт и закрою тему

Отправлено: 17:01, 18-10-2017 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Первое задание- инвентаризация в сети

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
В сети появилось первое тестирование процессора Intel Ivy Bridge OSZone News Новости железа 0 05-07-2011 08:30
В сети появилось первое изображение материнской платы ECS A75F-A OSZone News Новости железа 0 20-05-2011 17:30
Log/Monitoring - Инвентаризация сети sword_495 Сетевые технологии 2 13-05-2008 12:07
Прочее - Помогите решить задание по организации сети (теоритическое описание) Angelpro Хочу все знать 3 18-12-2007 10:59




 
Переход