Мне "нравится" как порой мне начинают доказывать про какую-то нормальность. Вот в нормальной/нормальном есть и работает, а тут уууу!!! Вы похоже из тех кто старательно путаёт своё нормальное со своим же привычным. Если для вас PowerShell легаси, то я прям не знаю что и сказать....
Никаких менеджеров пакетов, только файлы с расширением «exe» и магазин приложений. Нельзя просто добавить репозиторий с нужной программой и потом установить ее одной командой.
Я не буду вам рассказывать про winget которому лет 5 если не ошибаюсь. И ставит всё тоже самое из Store + можно свои репычи подключать.
На самом деле что у майков классно получилось так это NTFS ACL, WMI как реализация WBEM, PowerShell который скриптовая обёртка над .Net и Excel. А если вообще смотреть ретроспективу, то активно вносятся изменения в логику управления системами из мира *NIX.
Для таких как вы поясню, единственно интуитивно понятный для человека интерфейс - это женская грудь, и при этом всё равно часто случаются сбои. Всему остальному НАДО учиться.
Я управлял и пытался как неопытный админ ускорить кучу инсталляций MS SQL которые просто тормозили) Потом почитал рекомендации производителя, оценил объём работ и налажал в другом месте) Проблема в том, что многие установки продуктов делаются по принципу "Далее-Далее-Финиш", а настройки по умолчанию могут выставлены непонятно по каким критериям.
Если есть системный код, то суём его в системные каталоги %ProgramFiles%,%SystemRoot%. Что за дурацкая привычка раскидывать скрипты и программы куда попало?
Запускаете из под учётки пользователя человека с правами администратора? А он потом увольняется и если её заблокировать, то останавливается половина предприятия с криком "%№я!" Чем вам не нравится LocalSystem?
В общем код выглядит "грязным" и потенциально небезопасным. Используете псевдонимы команд, не указываете использованные ключи.
Get-Process -Name Proc1,Proc2,Proc3 тоже сработает.
PowerShell объектный язык и можно проверять значение свойств объектов без лишних переменных. While ( $(Get-Process -Name rphost,rmngr,ragent).Count -eq 0) {} И т.д....
Для диагностики также вам никто не запрещает сделать настраиваемое представление с источником "SoftwareRestrictionPolicies" и смотреть практически в реальном времени где произошло срабатывание и что пыталось запуститься.
SRP требует порой оч. неочевидных настроек. Например есть рекомендованные: %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir% %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86)% а есть неочевидные: %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramW6432Dir% %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common AppData% За рекомендацию исключать .lnk из контроля я могу также рекомендовать отрывать руки и тестикулы таким рекомендовальщикам. Поскольку тогда команда cmd /c "del /q /r /f" отрабатывает тихо и спокойно, не нарушая сон пользователя. Просто настройка SRP в этом месте не очевидна. %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Administrative Tools%/*.lnk %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Desktop%/*.lnk %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Programs%/*.lnk и т.д. для профиля пользователя
Внимательные читатели уже заметилои использование прямого слеша в качестве разделителя частей пути и использование параметров реестра в качестве путей.
Если у вас часто обновляется программа да и ещё в профиле пользователя, то можно прописать путь до каталога установки и имени файла. Это дольше т.к. запускаемых файлов много. Но это потребует филигранной точности при атаке. Пример для 1С-Connect: %HKEY_CURRENT_USER\Volatile Environment\LOCALAPPDATA%/Programs/Connect Desktop/app/bin/connect.exe %HKEY_CURRENT_USER\Volatile Environment\LOCALAPPDATA%/Programs/Connect Desktop/app/bin/rda/r*.exe %HKEY_CURRENT_USER\Volatile Environment\LOCALAPPDATA%/Programs/Connect Desktop/app/bin/updater.exe
Мне "нравится" как порой мне начинают доказывать про какую-то нормальность. Вот в нормальной/нормальном есть и работает, а тут уууу!!!
Вы похоже из тех кто старательно путаёт своё нормальное со своим же привычным.
Если для вас PowerShell легаси, то я прям не знаю что и сказать....
Сижу на Ubuntu и с PowerShell. Как же так получилось?
У меня подозрение что автор хочет SCCM/PowerShell DSC/Ansible/Terraform но не может сформулировать.
А это как то можно отследить?
А ничего что пользователю/компьютеру необходим новый вход (logout/login) для примения участия в группах?
https://www.cnews.ru/news/line/2021-10-18_akronis_infozashchita_pereimenovalas
По моему опыту установленная роль <> установленным справочным материалам. Выполните с повышенными правами
Update-Help
и проверьте содержимое справки.Кстати про справку к PowerShell командлетам.
Вы Update-Help делали на узлах виртализации?
Я не буду вам рассказывать про winget которому лет 5 если не ошибаюсь. И ставит всё тоже самое из Store + можно свои репычи подключать.
На самом деле что у майков классно получилось так это NTFS ACL, WMI как реализация WBEM, PowerShell который скриптовая обёртка над .Net и Excel.
А если вообще смотреть ретроспективу, то активно вносятся изменения в логику управления системами из мира *NIX.
Давайте такую же. Интересно пишете.
Для таких как вы поясню, единственно интуитивно понятный для человека интерфейс - это женская грудь, и при этом всё равно часто случаются сбои. Всему остальному НАДО учиться.
Я управлял и пытался как неопытный админ ускорить кучу инсталляций MS SQL которые просто тормозили)
Потом почитал рекомендации производителя, оценил объём работ и налажал в другом месте)
Проблема в том, что многие установки продуктов делаются по принципу "Далее-Далее-Финиш", а настройки по умолчанию могут выставлены непонятно по каким критериям.
Юный падаван хотел бы примеров для начала.
Фантастика какая-то. В копропративной среде разрешён запуск неподписанного и/или не внесённого в список исключений по хешу файла?!
Было бы чем, поставил бы плюсик.
Спасибо за практический пример!
Использованную версию proxmox'a не подскажете?
Вот и прошу вас отговорить нас от такого. Если получится конечно.
Тезисно конечно, никто вас не просит "простыню".
А можно кратко по пунктам?
А то пока смотрится монстром по сравнению с Proxmox в нашем случае.
Если есть системный код, то суём его в системные каталоги
%ProgramFiles%
,%SystemRoot%
.Что за дурацкая привычка раскидывать скрипты и программы куда попало?
Запускаете из под учётки пользователя человека с правами администратора? А он потом увольняется и если её заблокировать, то останавливается половина предприятия с криком "%№я!"
Чем вам не нравится
LocalSystem
?В общем код выглядит "грязным" и потенциально небезопасным.
Используете псевдонимы команд, не указываете использованные ключи.
Get-Process -Name Proc1,Proc2,Proc3
тоже сработает.PowerShell объектный язык и можно проверять значение свойств объектов без лишних переменных.
While ( $(Get-Process -Name rphost,rmngr,ragent).Count -eq 0) {}
И т.д....
Для диагностики также вам никто не запрещает сделать настраиваемое представление с источником "SoftwareRestrictionPolicies" и смотреть практически в реальном времени где произошло срабатывание и что пыталось запуститься.
SRP требует порой оч. неочевидных настроек.
Например есть рекомендованные:
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86)%
а есть неочевидные:
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramW6432Dir%
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common AppData%
За рекомендацию исключать .lnk из контроля я могу также рекомендовать отрывать руки и тестикулы таким рекомендовальщикам.
Поскольку тогда команда cmd /c "del /q /r /f" отрабатывает тихо и спокойно, не нарушая сон пользователя.
Просто настройка SRP в этом месте не очевидна.
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Administrative Tools%/*.lnk
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Desktop%/*.lnk
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Programs%/*.lnk
и т.д.
для профиля пользователя
%HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop%/*.lnk
%HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Programs%/*.lnk
Внимательные читатели уже заметилои использование прямого слеша в качестве разделителя частей пути и использование параметров реестра в качестве путей.
Если у вас часто обновляется программа да и ещё в профиле пользователя, то можно прописать путь до каталога установки и имени файла. Это дольше т.к. запускаемых файлов много. Но это потребует филигранной точности при атаке.
Пример для 1С-Connect:
%HKEY_CURRENT_USER\Volatile Environment\LOCALAPPDATA%/Programs/Connect Desktop/app/bin/connect.exe
%HKEY_CURRENT_USER\Volatile Environment\LOCALAPPDATA%/Programs/Connect Desktop/app/bin/rda/r*.exe
%HKEY_CURRENT_USER\Volatile Environment\LOCALAPPDATA%/Programs/Connect Desktop/app/bin/updater.exe