Господа пидоры погроммисты и IT-шники, памагити
Знаю что реактор ничья личная армия, но гуглёж не дал особо готовых решений, а я ни бум-бум в написании хоть чего-то сложнее простого bash-скрипта, за сим после пары дней очень тупого тыкания в visual studio было принято волевое решение обратиться к более прошаренным пидорам реактора.
Суть: очень хочется инвертаризировать виндовые пеки в количестве от 30 до примерно 70 штук, и очень не хочется каждый раз скакать с флешкой с аидой по всем кабинетам. Была идея залить в облако архив с аидой 64 и скриптом с параметрами чтобы он отрабатывал аиду, брал формат отчета из .rpf файла, именовал его переменной computername и заливал на шару. Но это не решает проблем с именем пользователя, которые почти везде дефолтные юзеры, то есть идентификации пользователя компьютера и связи его с ip\именем. Возникла идея "написать" методом копипасты что-то простейшее, с окошком и полями а-ля фамилия, кабинет, номер пеки. Даже было найдено почти готовое решение в виде кода на C#: решение Но в связи с моей полнейшей дуболомностью, я не понимаю как преобразовать\допилить его до рабочего состояния. Visual studio я открыл в первый раз когда столкнулся с этой задачей. Собственно вопрос: нет ли у вас каких-нибудь полуготовых решений требующих ещё меньших знаний, или может быть подсказок о том, как бы мне этот код допилить по человечески? Думаю подобным мне эникеям тоже будет полезно заиметь такое решение. Если подкинете идей, обещаю запилить пост с готовым решением как только смогу реализовать.
Подробнее
СЕРЕЖА ОЧЕНЬ ТУПОЙ рохиссор НИКИТА БЕТЕХТИН
it,мольба,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,пидоры помогите,реактор помоги,Windows,Операционная система,программирование,языки программирования,С#,песочница
Русский есть, домен не нужен. Параметрі ПК и установленное ПО на нем отсылает на сервер. Сервер поднимать на линуксовой ВПС на php, бем морда сервера.
Еще надо знать какие точно данные нужны. Перечисли их.
Смотрел в сторону от таких решений в основном потому, что придётся писать парсер, что для моих знаний сейчас вообще нереализуемо, а аида упакует в html\txt сама и можно будет потом юзать эти данные как базу самостоятельную\показывать руководству.
Конечно идеалом было бы количество плашек, но не до жиру, стану умный, авось сам допилю)
Мне бы узнать как туда добавить окошко для ввода имени пользака, потому что те что вытянет винда — стандартные.
То есть механизм такой — запускает пользак условный экзешник, вводит как его зовут и жмёт ок. А прога отрабатывает скан и кладёт в папку указанную в конфиге проги.
Результат тебе в каком виде нужен? Формат: json, txt или что?
В идеале она должна складывать html куда-нибудь в указываемую директорию. С этим я думаю справлюсь, ну, директорию указать.
Я сразу оговорюсь, что я не программист, я гуманитарий.
Результаты сохраняются в json, потому что я, если честно, не понял, что значит сохранить в html...
Гугл говорит, что Jinja для питона. Мне тогда будет проще ручками накидать код. Только зачем, если у нас есть json?
Вводить инфу тоже можно https://stackoverflow.com/questions/1223721/in-windows-cmd-how-do-i-prompt-for-user-input-and-use-the-result-in-another-com
Аида умеет сохранять отчёт с заданным именем https://www.aida64.co.uk/user-manual/command-line-options
Ну и перекинуть не так уж сложно https://stackoverflow.com/questions/45141198/batch-script-to-copy-a-file-from-one-network-share-to-another-based-on-lastmodif
C:\Users\loki\Desktop\inventa\aida64-extreme\AIDA64-Extreme\aida64.exe /R C:\Users\loki\Desktop\inventa\%computername% /HTML /CUSTOM C:\Users\loki\Desktop\inventa\aida64-extreme\AIDA64-Extreme\report.rpf
Можно попробовать экранировать.
"C:\Users\loki\Desktop\inventa\aida64-extreme\AIDA64-Extreme\aida64.exe" /R "C:\Users\loki\Desktop\inventa\%computername%" /HTML /CUSTOM "C:\Users\loki\Desktop\inventa\aida64-extreme\AIDA64-Extreme\report.rpf"
Когда требовался скрипт посложней юзал bash из cygwin, он портативный, но больше траблов с экранированием спец символов.
Вторая банальным System.Net.HttpWebRequest https://docs.microsoft.com/ru-ru/dotnet/api/system.net.httpwebrequest?view=net-5.0
1. выдавать всем юзерам не дефолтные "user", "прользователь", "админ", а по их реальным ФИО.
, если так не делать, то так и будешь всегда вручную угадывать какой комп от какого пользователя.
2. а потом уже собирать и инвентаризировать программой.
Типо пород котов-собак или названия животных-овощей.
А какая топология? Наверняка звезда с главным серваком. Если не DHCP (больше чем 10 компов лучше так не делать, если только уже так было), то нужно буквально раз всем компам позволить серверу подключаться с полуадминскими правами и творить какую хочешь магию.
Слишком мало описания всего пиздеца.
Смотрю я не это все и тихо радуюсь, что работаю на линуксе.
ssh root@IP -> dmidecode -t 4; 17 -> smartctl -all /dev/sda > PC_IP.txt
А скрипт написать, где запихнуть нужные команды, дописать чтобы вывод этих команд на мыло присылало, расовать на пк в crone, вообще заебись. Но леееееень.
Автору удачи и терпения.
Но так уж вышло что линь не для пользаков, а начал я своё знакомство со скриптами именно с баша. Так-что мне удобно бэкапить и разворачивать тачки, но пиздец некомфортно тыкаться в cmd.
$PCinf = Get-ComputerInfo
$Mem = Get-WmiObject Win32_PhysicalMemory
$VideoCard = Get-WmiObject Win32_VideoController
$DiskInfo = Get-PhysicalDisk
$IP = Get-NetIPAddress
#### Преобразование объёма диска ####
$SettingsArr = @{
#### Система ####
UserName = $env:USERNAME
Model = $PCinf.CsSystemFamily # Модель ПК
DeviceName = $PCinf.CsName # Имя ПК
OS = $PCinf.OsVersion # Сборка ОС
CPU = $PCinf.CsProcessors.Name # CPU
#### Память ####
MemChipManufacture = $Mem.Manufacturer # Производитель чипов
MemSpeed = $Mem.Speed # Герцовка памяти
MemCapacity = foreach($Cap in $Mem.Capacity) #О бъём памяти
{
[convert]::ToString([convert]::ToInt64($Cap/[math]::Pow(1024,3))) + " GB"
}
#### Диск ####
DiskManufactured = $DiskInfo.FriendlyName # Производитель
DiskType = $DiskInfo.MediaType # Тип
DiskSize = foreach($Size in $DiskInfo.Size) # Размер
{
[convert]::ToString([convert]::ToInt64($Size/[math]::Pow(1024,3))) + " GB"
}
IPv4Address = $IP.IPv4Address # Сетевые адреса
NetInterface = $IP.InterfaceAlias # Имена сетевых адаптеров
VideoCard = $VideoCard.VideoProcessor # Имя видеокарты
}
$SettingsArr
#Export-Clixml -InputObject $SettingsArr -Path "C:\Users\$env:USERNAME\Desktop\PC-$env:USERNAME.xml"
ConvertTo-JSON -InputObject $SettingsArr | Out-File "C:\Users\$env:USERNAME\Desktop\PC-$env:COMPUTERNAME.json" # Создаст JSON файл с параметрами ПК на рабочем столе