Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Красочная расслабляющая игра в жанре маджонг - Накорми Попугая! Собирайте плитки с фруктами, набирайте очки, побеждайте!

Накорми Попугая

Аркады, Маджонг, Казуальные

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
Matroskinkotofei
Matroskinkotofei
32 минуты назад

ASLO3.Sys Код ошибки 5⁠⁠

ASLO3.Sys Код ошибки 5. Многие владельцы ПК с материнскими платами Asus сталкивались с подобной проблемой, и я тоже с ней столкнулся, перелопатил интернет и ответа не нашёл, написал в тех поддержку и с помощью их рекомендаций решил проблему. После обновления драйвера и Биоса выполнил пункт «Скрыть все службы Майкрософт» и ошибка исчезла. Думаю выложу, вдруг кому пригодится. Windows 11x64.

Обновление или переустановка аудиодрайверов Realtek: Перейдите на официальную страницу поддержки ASUS для вашей материнской платы:https://www.asus.com/motherboards-components/motherboards/tu... Установка последнего драйвера Realtek Audio. Перед установкой полностью удалите текущий драйвер через диспетчер устройств.

Reinstall ASUS audio utilities (Sonic Studio/Realtek Audio Console): Удалить Sonic Studio и Realtek Audio Console через панель управления → Программы и функции. Загрузите и переустановите их со страницы поддержки ASUS выше.

Обновление BIOS до последней версии (в настоящее время 1820): использование устаревшего BIOS может вызвать проблемы совместимости с драйверами и системными утилитами. Загрузите последнюю версию BIOS (версия 1820) со страницы поддержки ASUS:https://www.asus.com/motherboards-components/motherboards/tu... Следуйте инструкциям на сайте, чтобы безопасно обновить BIOS:https://www.asus.com/ru/support/faq/1012815/

Проверьте права доступа к файлам для aslo3.sys: Перейдите в C:\\Windows\\System32\\drivers и найдите aslo3.sys. Щелкните правой кнопкой мыши по файлу → Свойства → Вкладка «Безопасность. Убедитесь, что в вашей учетной записи пользователя есть разрешения «Читать и выполнять. Если нет, добавьте их.

Выполните чистую загрузку: нажмите Win + R, наберите msconfig и нажмите Enter. На вкладке «Услуги» проверьте «Скрыть все службы Microsoft» и нажмите «Отключить все» (Disable all.«На вкладке Startup (или через диспетчер задач) отключите все элементы запуска. Перезагрузите и проверьте, сохраняется ли ошибка.

Сканирование на наличие вредоносного ПО: запустите полное антивирусное сканирование системы, чтобы исключить вмешательство вредоносного ПО.

Отремонтировать системные файлы: открыть командную строку в качестве администратора и запустить: sfc /scannow

Если ошибка все еще появляется после всех этих шагов, может быть более глубокое повреждение системного файла или конфликт на уровне ОС или оборудования. В этом случае рассмотрите возможность выполнения установки ремонта Windows или восстановления системы.

Показать полностью
[моё] Windows Программа Windows 11 Текст
0
3
sergejl
1 час назад

Аэрофлот⁠⁠

В сети используются Windows XP и 2003, что привело к компрометации всей их инфраструктуры...

Виндоус бл хп. Это импорт замещение или полная тупость?

[моё] Аэрофлот Windows Текст
39
1
KvasKvasPivo
6 часов назад

Синий экран Windows 11⁠⁠

Доброго времени суток, эксперты.

Решил переустановить винду, потому что уж очень много мусора было на системном ssd. Переустанавливал с флешки. До этого тоже стояла 11-я винда. Всё накатил, в аккаунт микрософта вошёл, нужные программки установил, а потом вспомнил про драйвера.

В центре обновлений было много драйверов, которые нужно было установить. Нажал на кнопку «скачать и установить всё». После установки вылезло это окно

Синий экран Windows 11 Windows, Windows 11, Системная ошибка, Ошибка, Синий экран смерти, Операционная система, Компьютерная помощь, Длиннопост

Через 5 секунд вылез синий экран смерти. Из важного там было написано «Stop code: SYSTEM THREAD EXCEPTION NOT HANDLED What failed: ndis.sys». Несколько раз перезагружал комп. Не успевал открыть cmd, вылезала ошибка и последующий синий экран.

Решил переустановить винду снова. После того, как скачал дрова, вновь синий экран.

Такое с 11-й виндой на моём компе не впервые. До этого у меня были проблемы с защитником Windows, который просто не хотел устанавливаться, из-за чего я не мог установить вообще ничего.

Решение этой проблемы у меня только одно: установка 10-й винды, установка дров и установка 11-й винды через локальный установщик. В таком случае никаких проблем не наблюдается.

Кто знает, как приблизительно решить эту проблему?

Upd: проблема не решилась. На 10-й винде всё ок. Сейчас поставил 11-ю, подгрузились дрова на защитника windows, и снова вылез синий экран. Буду сидеть на 10-й, пока не пофиксят


Upd2: Вопрос решён. Проблема заключалась в драйвере сетевой карты(о чём говорила сама ошибка во время bsod). Так как это был wi-fi модуль, которым я и так не пользуюсь, то я просто вытащил его из ПК, чтобы даже по чистой случайности драйвера не начали на него качаться. Спасибо всем, кто помогал мне

Показать полностью 1
Windows Windows 11 Системная ошибка Ошибка Синий экран смерти Операционная система Компьютерная помощь Длиннопост
26
18
hypo69
hypo69
1 день назад
Лига Сисадминов
Серия Философия PowerShell.

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов⁠⁠

Дисклеймер. в редакторе пикабу нет редактора кода. Поэтому картинки и вырвиглазное форматирование. В конце статьи я дам ссылки на гитхаб . Там полноценная статья. Вы можете почитать тут, а примеры копировать из гитхаб

❗ Важно: Я пишу про PS7 (PowerShell 7). Он отличается от PS5 (PowerShell 5). Начиная с седьмой версии ps стал кросплатформенным. Из-за этого изменилось поведение некоторых команд.

В первой части мы установили ключевой принцип: PowerShell работает с объектами, а не с текстом. Этот пост посвящен некоторым важным инструментам PowerShell: научимся передавать объекты по конвейеру, анализировать их с помощью Get-Member, сохранять результаты в переменные и автоматизировать все это в файлах скриптов (.ps1) с экспортом результатов в удобные форматы.


1. Что такое конвейер (|)?

Конвейер в PowerShell это механизм передачи полноценных .NET объектов (а не просто текста) от одной команды к другой, где каждый следующий командлет получает структурированные объекты со всеми их свойствами и методами.

Символ | (вертикальная черта) — это оператор конвейера. Его задача — взять результат (вывод) команды, стоящей слева от него, и передать его на вход команде, стоящей справа.

Команда 1 (создает объекты) → | → Команда 2 (получает и обрабатывает объекты) → | → Команда 3 (получает обработанные объекты) → | ...

Классический UNIX-конвейер: Поток текста

В bash по конвейеру передается поток байтов, который обычно интерпретируется как текст.

Найти все процессы 'nginx' и посчитать их количество
> ps -ef | grep 'nginx' | wc -l

Здесь `ps` выводит текст, `grep` фильтрует этот текст, а `wc` считает строки. Каждая утилита ничего не знает о "процессах", она работает только со строками.

PowerShell-конвейер: Поток объектов

Пример: Давайте получим все процессы, отсортируем их по использованию CPU и выберем 5 самых "прожорливых".

> Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 5

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Здесь Get-Process создает объекты процессов. Sort-Object получает эти объекты и сортирует их по свойству CPU. Select-Object получает отсортированные объекты и выбирает первые 5.

Вы наверняка заметили в команде слова, начинающиеся с дефиса (-): -Property, -Descending, -First. Это параметры. Параметры — это настройки, переключатели и инструкции для командлета. Они позволяют управлять тем, КАК команда будет выполнять свою работу. Без параметров команда работает в режиме по умолчанию, а с параметрами вы даете ей конкретные указания.

Основные типы параметров:

  • Параметр со значением: требует дополнительной информации.

    -Property CPU: Мы говорим Sort-Object, по какому свойству сортировать. CPU — это значение параметра.

    -First 5: Мы говорим Select-Object, сколько объектов выбрать. 5 — это значение параметра.

  • Параметр-переключатель (флаг): Не требует значения. Само его наличие в команде включает или выключает определенное поведение.

    -Descending: Этот флаг говорит Sort-Object изменить порядок сортировки на обратный (от большего к меньшему). Ему не нужно дополнительное значение — он сам по себе инструкция.

> Get-Process -Name 'svchost' | Measure-Object

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Эта команда отвечает на очень простой вопрос: "Сколько именно процессов с именем svchost.exe сейчас запущено в моей системе?"

Разбор по шагам

Шаг 1: Get-Process -Name 'svchost'

Эта часть команды обращается к операционной системе и просит найти все без исключения запущенные процессы, у которых имя исполняемого файла — svchost.exe. В отличие от процессов типа notepad (которых обычно один или два), процессов svchost в системе всегда много. Команда вернет массив (коллекцию) объектов, где каждый объект — это отдельный, полноценный процесс svchost со своим уникальным ID, использованием памяти и т.д. PowerShell нашел в системе, например, 90 процессов svchost и теперь держит в руках коллекцию из 90 объектов.

Шаг 2: | (Оператор конвейера)

Этот символ берет коллекцию из 90 объектов svchost, полученную на первом шаге, и начинает передавать их по одному на вход следующей команде.

Шаг 3: Measure-Object

Поскольку мы вызвали Measure-Object без параметров (таких как -Property, -Sum и т.д.), он выполняет свою операцию по умолчанию — просто считает количество "предметов", которые ему передали. Раз, два, три ... После того как все объекты посчитаны, Measure-Object создает свой собственный объект-результат, в котором есть свойство Count, равное итоговому числу.

Count: 90 — это и есть ответ на наш вопрос. Запущено 90 процессов svchost. Остальные поля пустые, потому что мы не просили Measure-Object выполнять более сложные вычисления.

Пример с svchost и параметрами

Давайте изменим нашу задачу. Теперь мы хотим не просто посчитать процессы svchost, а узнать, сколько всего оперативной памяти (в мегабайтах) они потребляют вместе.

Для этого нам понадобятся параметры:

  • -Property WorkingSet64: Эта инструкция говорит Measure-Object: "Из каждого объекта svchost, который к тебе придет, возьми числовое значение из свойства WorkingSet64 (это использование памяти в байтах)".

  • -Sum: Эта инструкция-флаг говорит: "Сложи все эти значения, которые ты взял из свойства WorkingSet64".

Наша новая команда будет выглядеть так:

> Get-Process -Name 'svchost' | Measure-Object -Property WorkingSet64 -Sum

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост
  1. Get-Process найдет количество объектов svchost.

  2. Конвейер | передаст их в Measure-Object.

  3. Но теперь Measure-Object работает по-новому:

    • Он берет первый объект svchost, смотрит его свойство .WorkingSet64 (например, 25000000 байт) и запоминает это число.

    • Берет второй объект, смотрит его .WorkingSet64 (например, 15000000 байт) и прибавляет к предыдущему.

    • ...и так далее для всех объектов.

  4. В итоге Measure-Object создаст объект-результат, но теперь он будет другим.

  • Count: 92: Количество объектов.

  • Sum: 1661890560: Это общая сумма всех значений WorkingSet64 в байтах.

  • Property: WorkingSet64: Это поле теперь тоже заполнено, оно информирует нас, какое именно свойство было использовано для вычислений.

2. Переменные (Обычные и специальная $_)

Переменная — это именованное хранилище в памяти, которое содержит какое-либо значение.

Этим значением может быть что угодно: текст, число, дата или, что самое важное для PowerShell, целый объект или даже коллекция объектов. Имя переменной в PowerShell всегда начинается со знака доллара ($). Примеры: $name, $counter, $processList.

Специальная переменная $_?

$_ — это сокращение для "текущий объект" или "вот эта штука". Представьте себе конвейер на заводе. По нему едут разные детали (объекты).

$_ — это та самая деталь, которая находится прямо сейчас перед вами (или перед роботом-обработчиком).

Источник (Get-Process) — высыпает на конвейер целую коробку с деталями (всеми процессами).

Конвейер (|) — заставляет эти детали двигаться по ленте по одной.

Обработчик (Where-Object или ForEach-Object) — это робот, который смотрит на каждую деталь.

Переменная $_ — это та самая деталь, которая сейчас находится в "руках" у робота.

Когда робот закончит с одной деталью, конвейер подает ему следующую, и $_ теперь будет указывать уже на нее.

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

1. Выполняем команду и сохраняем ее сложный объект-результат в переменную $svchostMemory

> $svchostMemory = Get-Process -Name svchost | Measure-Object -Property WorkingSet64 -Sum

2. Теперь мы можем работать с сохраненным объектом. Достаем из него свойство Sum

> $memoryInMB = $svchostMemory.Sum / 1MB

3. Выводим результат на экран, используя новую переменную

> Write-Host "Все процессы svchost используют $memoryInMB МБ памяти."

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост
  • Write-Host — это специализированный командлет, чья единственная задача — показать текст непосредственно пользователю в консоли.

  • Строка в двойных кавычках: "..." - текстовая строка, которую мы передаем командлету Write-Host в качестве аргумента. Почему двойные, а не одинарные кавычки?

    В PowerShell есть два типа кавычек:

    • Одинарные ('...'): Создают буквальную строку. Все, что внутри них, воспринимается как обычный текст, без исключений.

    • Двойные ("..."): Создают расширяемую (или подстановочную) строку. PowerShell "сканирует" такую строку на предмет переменных (начинающихся с $) и подставляет на их место их значения.

  • $memoryInMB. Это переменная, в которую мы на предыдущем шаге нашего скрипта положили результат вычислений. Когда Write-Host получает строку в двойных кавычках, происходит процесс, называемый "подстановка переменных" (String Expansion):

    1. PowerShell видит текст "Все процессы svchost используют ".

    2. Затем он натыкается на конструкцию $memoryInMB. Он понимает, что это не просто текст, а переменная.

    3. Он заглядывает в память, находит значение, хранящееся в $memoryInMB (например, 1585.52).

    4. Он подставляет это значение прямо в строку.

    5. Затем он добавляет оставшуюся часть текста: " МБ памяти.".

    6. В итоге, в Write-Host передается уже готовая, собранная строка: "Все процессы svchost используют 1585.52 МБ памяти.".

Запустите блокнот!

  1. Находим процесс Блокнота и сохраняем его в переменную $notepadProcess

> $notepadProcess = Get-Process -Name notepad

  1. Обращаемся к свойству 'Id' этого объекта через точку и выводим его

> Write-Host "ID процесса 'Блокнот' равен: $($notepadProcess.Id)"

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

❗ Важно: Write-Host "ломает" конвейер. Текст, выведенный им, нельзя передать дальше по конвейеру для обработки. Он предназначен только для отображения.


3. Get-Member (Инспектор объектов)

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

командлет Get-Member (псевдоним: gm) главный инструмент для исследования. Прежде чем работать с объектом, пропустите его через Get-Member, чтобы увидеть все его возможности.

Давайте проанализируем объекты, которые создает Get-Process:

> Get-Process | Get-Member

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Разберем каждую часть вывода Get-Member.

TypeName: System.Diagnostics.Process - Это полное, официальное "имя типа" объекта из библиотеки .NET. Это его "паспорт". Эта строка говорит вам, что все объекты, которые возвращает Get-Process, являются объектами типа System.Diagnostics.Process. Это гарантирует, что у них у всех будет одинаковый набор свойств и методов. Вы можете загуглить "System.Diagnostics.Process", чтобы найти официальную документацию Microsoft с еще более подробной информацией.

  • Колонка 1: Name

Это простое, человекочитаемое имя свойства, метода или другого "члена" объекта. Именно это имя вы будете использовать в своем коде для доступа к данным или выполнения действий.

  • Колонка 2: MemberType (Тип объекта)

Это самая важная для понимания колонка. Она классифицирует, чем является каждый объект. Это его "должность", которая говорит вам, КАК его использовать.

  • Property (Свойство): характеристика или порция данных, хранящаяся внутри объекта. Вы можете "прочитать" ее значение.

    • Примеры на скриншоте: BasePriority, HandleCount, ExitCode. Это просто данные, которые можно посмотреть.

  • Method (Метод): ДЕЙСТВИЕ, которое можно совершить с объектом. Методы всегда вызываются с круглыми скобками ().

    • Примеры на скриншоте: Kill, Refresh, WaitForExit. Вы бы написали $process.Kill() или $process.Refresh().

  • AliasProperty (Псевдоним свойства): дружелюбный псевдоним для другого, более длинного свойства. PowerShell добавляет их для удобства и краткости.

    • Примеры на скриншоте: WS — это короткий псевдоним для WorkingSet64. Name — для ProcessName. VM — для VirtualMemorySize64.

  • Event (Событие): УВЕДОМЛЕНИЕ о том, что что-то произошло, на которое можно "подписаться".

    • Пример на скриншоте: Exited. Ваш скрипт может "слушать" это событие, чтобы выполнить какое-то действие сразу после того, как процесс завершится.

  • CodeProperty и NoteProperty: специальные типы свойств, часто добавляемые самим PowerShell для удобства. CodeProperty вычисляет свое значение "на лету", а NoteProperty — это простое свойство-заметка, добавленное к объекту.

  • Колонка 3: Definition (Определение)

Это техническое определение или "подпись" члена. Она дает вам точные детали для его использования. Ее содержимое зависит от MemberType:

  • Для AliasProperty: Показывает, чему равен псевдоним. Это невероятно полезно!

    • Пример на скриншоте: WS = WorkingSet64. Вы сразу видите, что WS — это просто короткая запись для WorkingSet64.

  • Для Property: Показывает тип данных, который хранится в свойстве (например, int для целого числа, string для текста, datetime для даты и времени), и что можно с ним делать ({get;} — только читать, {get;set;} — читать и изменять).

    • Пример на скриншоте: int BasePriority {get;}. Это целочисленное свойство, которое можно только прочитать.

  • Для Method: Показывает, что метод возвращает (например, void — ничего, bool — true/false) и какие параметры (входные данные) он принимает в скобках.

    • Пример на скриншоте: void Kill(). Это значит, что метод Kill ничего не возвращает и может быть вызван без параметров. Также есть вторая версия void Kill(bool entireProcessTree), которая принимает логическое значение (true/false).

В виде таблицы

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Пример: Работа с окнами процессов

1. Проблема:

"Я открыл много окон Блокнота. Как мне программно свернуть все, кроме главного, а затем закрыть только то, у которого в заголовке есть слово 'Untitled'?"

Откройте несколько экземпляров блокнота (Windows Notepad) на компьютере

2. Исследование с Get-Member:

Нам нужно найти свойства, связанные с окном и его заголовком.

> Get-Process -Name notepad | Get-Member

Анализ результата Get-Member:

  • Листая свойства, мы находим MainWindowTitle. Тип string. Отлично, это заголовок главного окна!

  • В методах мы видим CloseMainWindow(). Это более "мягкий" способ закрыть окно, чем Kill().

  • Также в методах есть WaitForInputIdle(). Звучит интересно, возможно, это поможет дождаться, пока процесс будет готов к взаимодействию.

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Get-Member показал нам свойство MainWindowTitle, которое является ключом к решению задачи и позволяет взаимодействовать с процессами на основе состояния их окон, а не просто по имени.

3. Решение:

Теперь мы можем построить логику, основанную на заголовке окна.

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост
Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост
Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Пример: Найти родительский процесс

1. Проблема:

"Иногда я вижу в системе много дочерних процессов chrome.exe. Как мне узнать, какой из них является главным, "родительским" процессом, который их всех запустил?"

2. Исследование с Get-Member:

Нам нужно найти что-то, что связывает один процесс с другим.

> Get-Process -Name chrome | Select-Object -First 1 | Get-Member

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Анализ результата Get-Member:

  • Внимательно просматривая список, мы находим свойство типа CodeProperty с именем Parent.

  • Его определение (Definition) — System.Diagnostics.Process Parent{get=GetParentProcess;}. Это вычисляемое свойство, которое при обращении к нему возвращает объект родительского процесса.

3. Решение:

Теперь мы можем написать скрипт, который для каждого процесса chrome будет выводить информацию о его родителе.

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост
Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост
Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Мы сразу видим, что процессы с ID 4756, 7936, 8268 и 9752 были запущены процессом с ID 14908. Также можно заметить интересный случай с процессом ID: 7252, у которого родительский процесс не определился (возможно, родитель уже успел завершиться к моменту проверки). Модификация скрипта с проверкой if ($parent) аккуратно обрабатывает этот случай, не вызывая ошибки. Get-Member помог нам обнаружить "скрытое" свойство Parent, которое предоставляет мощные возможности для анализа иерархии процессов.

4. Файл .ps1 (Создание скриптов)

Когда ваша цепочка команд становится полезной, вы захотите сохранить ее для многократного использования. Для этого и нужны скрипты — текстовые файлы с расширением .ps1.

Разрешение на запуск скриптов

По умолчанию в Windows запрещен запуск локальных скриптов. Чтобы это исправить для текущего пользователя, выполните один раз в PowerShell от имени администратора:

> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

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

Пример скрипта system_monitor.ps1

Создайте файл с таким именем и вставьте в него код ниже. Этот скрипт собирает информацию о системе и генерирует отчеты.

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост
Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Примечание: функция Export-Results будет определена в следующем разделе как пример хорошей практики.

5. Экспорт результатов

Чистые данные — это хорошо, но часто их нужно представить в удобном для человека или другой программы виде. PowerShell предлагает множество командлетов для экспорта.

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

Дополнение к скрипту: функция экспорта

Давайте добавим в наш скрипт system_monitor.ps1 функцию, которая будет заниматься экспортом. Поместите этот код перед вызовом Export-Results.

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов Powershell, Автоматизация, Windows, IT, Администрирование, Гайд, Длиннопост

код на github

Теперь наш скрипт не просто собирает данные, но и аккуратно сохраняет их в двух форматах: CSV для анализа и HTML для быстрого просмотра.

Заключение

  1. Конвейер (|) — главный инструмент для объединения команд и обработки объектов.

  2. Get-Member — анализ объектов, который показывает, из чего они состоят.

  3. Переменные ($var, $_) позволяют сохранять данные и обращаться к текущему объекту в конвейере.

  4. Файлы .ps1 превращают команды в переиспользуемые инструменты автоматизации.

  5. Командлеты экспорта (Export-Csv, ConvertTo-Html) Экспортируют данные в соответствующем формате.

В следующей части мы применим эти знания для навигации и управления файловой системой, исследуя объекты System.IO.DirectoryInfo и System.IO.FileInfo.

К первой части

Полезно? Подпишись.
Понравилось — ставь «+»
Удачи! 🚀

Показать полностью 19
[моё] Powershell Автоматизация Windows IT Администрирование Гайд Длиннопост
6
3
DmitriitheFals
1 день назад
Лига Сисадминов
Серия Кудахтеры

Новый ноутбук 2: скорость, плюсы-минусы, DiskSPD, Hyper-V и далее⁠⁠

Для лиги лени: привыкание к новому и бесполезные тесты часть следующая. И немного powershell

Начало тут:

Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 1 - общая
Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 2 - виртуализация
Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 3 – цифры и предварительные итоги
Тестирование локальных дисков и систем хранения данных: подводные камни. Часть 4 – что там изнутри виртуализации
Новый ноутбук: скорость, плюсы-минусы, DiskSPD, Hyper-V и продолжение про методику тестирование скорости

Решил я доделать сбор статистики перед тем, как что-то смотреть изнутри виртуалки, тем более вложенной виртуализации.

Предупреждение еще раз. Все данные ниже можно принимать во внимание, но не стоит рассматривать как какой-то эталон.

Что получил:

Один тред, один файл, блок 4k на чтение.

1 Влияние длины очереди. Тут была таблица, но не вставилась, поэтому просто цифрами:

После очереди == 4, нагрузка не растет, около 90k IOPS

2 Влияние числа тредов и числа файлов в работе на общий IOPS

Примечание: для 2 и 3 файлов – один файл был размещен на другом логическом диске

Тут тоже была таблица, но мне лень вставлять ее даже картинкой. На картинке опечатка, везде k, тысячи IOPS.

Новый ноутбук 2: скорость, плюсы-минусы, DiskSPD, Hyper-V и далее Windows, Статистика, Жесткий диск, IT, Импортозамещение, Microsoft, Опыт, Длиннопост

IOPS

Затем общий IOPS не рос.

До 10 тредов IOPS на поток падало – с 40 тысяч при 1 треде на каждый файл.
При соотношении 2 файла \ 3 треда, всего 6 тредов, и 3 файла \ 2 треда – выйдя на примерно 40k IOPS на поток, при 4 тредах и 3 файлах просев до 33-35 k IOPS на поток

На 14 (7\2) и 15 (5\3) тредах начинает падать IOPS\thread – с 35 до 17.
На 14 – 10 по 35k, 4 по 17k
на 15 – 9 треда по 35k, 3 треда по 17k.
Что отлично укладывается в логику 12 тредов CPU, из которых 9 работают на один тред, генерируя по 35k, и 3 CPU потока обрабатывают по 2 дисковых треда по 17k.
На 24 тредах (2 файла \ 12 тредов и 3 файла \ 8 тредов)  картинка та же – все треды примерно по 17.5 IOPS
На 26 тредах (2\13 и 3\12) -4-6 потоков падают до 10k IOPS \ thread. Суммарно те же 40k

И для записи, пиковое значение было получено при 2 тредах на каждый их 3 файлов, 240k IOPS итого, по 40k IOPS на тред. Затем было только хуже –

Например, на казалось бы ПОЧТИ то же самое, 3 треда на два файла – производительность упала до 20k на тред, 120k IOPS.

На 4 потоках на файл, 12 файлах – производительность вроде бы была 210k, но есть разброс – от 15 до 20k IOPS на тред, перемерять надо.

На этом обзор физики можно и закончить, с выводами:
AMD потоки работают интереснее, чем у Intel, в именно этой реализации.
Максимальная производительность по чтению по дисковым операциям на физическом хосте достигается на числе потоков данных = числу потоков CPU
Производительность на чтение от очереди зависит достаточно слабо, то есть на очереди 8 выжало не 430, а 440k IOPS, на очереди 16 и 32 – 450k IOPS.

Внезапно, наловил ошибок – удалил старые файлы тестов, а новые, с тем же именем, не создаются!
There has been an error during threads execution
Error generating I/O requests
Оказалось, в какой-то момент в середине ночи удалил параметр с размером файлов.  Случайно. И даже не заметил. Поправил и завелось.

И, наконец, влияние read-modify-write для любителей дисков потолще.

Показать не удалось, потому что:
Картина на файле 10 гигабайт и длительности записи 10 секунд и прогреве W=10

Новый ноутбук 2: скорость, плюсы-минусы, DiskSPD, Hyper-V и далее Windows, Статистика, Жесткий диск, IT, Импортозамещение, Microsoft, Опыт, Длиннопост

Картина приплыли на файле 200 гигабайт при прогреве W=2

До этого прогрев был W=10. И, в таблице ниже, 3.5k это не опечатка, 3500 IOPS

Новый ноутбук 2: скорость, плюсы-минусы, DiskSPD, Hyper-V и далее Windows, Статистика, Жесткий диск, IT, Импортозамещение, Microsoft, Опыт, Длиннопост

Везде забыл проставить k, это тысячи IOPS

Как бы так сказать, что при таком разбросе данных, это не тестирование, а полная и беспросветная лажа?

Потому что ничего не понятно, кроме того, что не зря замерял при разных параметрах. Получить лажу и увидеть ее полезно.

Перейдем к SQLsim.
Для опытов был взят Microsoft® SQL Server® 2019 Express,
Будете ставить – не забывайте сразу качать SQL Server Management Studio, пригодится.

файл отдельно не качается (я не нашел), поэтому скачал, поставил и вот -
C:\Program Files\Microsoft SQL Server\MSSQLXX.<InstanceName>\MSSQL\Binn

В GUI варианте теста «по умолчанию» ничего сложного – размеры файлов, размещение, число циклов, длина теста. Просто, наглядно.

Одна проблема – по умолчанию на 1 цикл поставлено 600 секунд (10 минут), и 12 циклов – то есть базовый тест – это два часа.

В конце теста генерируется sqliosim.log.xml.

Вторая проблема: тест не выдает в итоге каких-то цифр, типа «вы молодец, давайте дальше» - только таблицу

Display Monitor ********** Final Summary for file sqliosim.ldx ********** CLogicalFile::OutputSummary fileio.cpp

Display Monitor File Attributes: Compression = No, Encryption = No, Sparse = No CLogicalFile::OutputSummary fileio.cpp

Display Monitor Target IO Duration (ms) = 100, Running Average IO Duration (ms) = 0, Number of times IO throttled = NN, IO request blocks = NN CLogicalFile::OutputSummary fileio.cpp

Display Monitor Reads = NN, Scatter Reads = 0, Writes = NN, Gather Writes = 0, Total IO Time (ms) = NN CLogicalFile::OutputSummary fileio.cpp

Display Monitor DRIVE LEVEL: Sector size = 512, Cylinders = NN, Media type = NN, Sectors per track = 63, Tracks per Cylinders = 255 CLogicalFile::OutputSummary fileio.cpp

Display Monitor DRIVE LEVEL: Read cache enabled = Yes, Write cache enabled = Yes CLogicalFile::OutputSummary fileio.cpp

Display Monitor DRIVE LEVEL: Read count = BB, Read time = BB, Write count = BB, Write time = NN, Idle time = NN, Bytes read = NN, Bytes written = NN, Split IO Count = 0, Storage number = NN, Storage manager name = VOLMGR  CLogicalFile::OutputSummary fileio.cpp

Я молодец, ок, а дальше что?

Конечно, если вы молодец (как я), то будете смотреть не только в окно самой программы, а запустите resmon и будете смотреть нагрузку по дискам, очереди, задержки, etc.

Перейду к hammerdb .. но это уже другая история.

В следующих сериях, теперь уже точно!
Опыты на виртуальной машине на 3 ядра.

CPU affinity
Опыты на Debian внутри Hyper-V, опыты с Proxmox nested. Stay tuned!

Литература

Performance benchmark test recommendations for Azure NetApp Files
Azure NetApp Files regular volume performance benchmarks for Linux
Hidden Treasure Part 1: Additional Performance Insights in DISKSPD XML
Hidden Treasure Part 2: Mining Additional Insights

Command line and parameters
Customizing tests
Use an XML file to provide DiskSpd parameters
Use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem

SQL Server I/O Basics, Chapter 2
Use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem on Linux
SQLIOSim Create a realistic I/O load for stress-testing SQL Server 2005

about_Comparison_Operators
about_Assignment_Operators

hammerdb Documentation

PS

И немного powershell.

Часть 1, которую вы уже видели

$pciStats = (Get-WMIObject Win32_Bus -Filter 'DeviceID like "PCI%"').GetRelated('Win32_PnPEntity') |

foreach {

# request connection properties from wmi

[pscustomobject][ordered]@{

Name = $_.Name

ExpressSpecVersion=$_.GetDeviceProperties('DEVPKEY_PciDevice_ExpressSpecVersion').deviceProperties.data

MaxLinkSpeed  =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkSpeed'  ).deviceProperties.data

MaxLinkWidth  =$_.GetDeviceProperties('DEVPKEY_PciDevice_MaxLinkWidth'  ).deviceProperties.data

CurrentLinkSpeed  =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkSpeed'  ).deviceProperties.data

CurrentLinkWidth  =$_.GetDeviceProperties('DEVPKEY_PciDevice_CurrentLinkWidth'  ).deviceProperties.data

} |

# only keep devices with PCI connections

Where MaxLinkSpeed

}

$pciStats | Format-Table -AutoSize


Get-CimInstance -ClassName Win32_Volume | Select-Object DriveLetter, FileSystem, BlockSize| Format-Table -AutoSize


$Path001 = 'C:\DiskSpd\amd64\'

$Sp = $Path001 + "diskspd.exe"

cd $Path001

$Rn = Get-Random -Minimum 1 -Maximum 10

$Version = "070_" + $Rn


$Drives = @("C")

$FilesTemp = "Data4del"

$File001 = "deleteme_01a.dm"

$File002 = "deleteme_02a.dm"

$File003 = "deleteme_03a.dm"

$Out021 = $Drives[0] + ':\' + $FilesTemp + '\' + $File001

$Out022 = $Drives[0] + ':\' + $FilesTemp + '\' + $File002

$Out023 = "D" + ':\' + $FilesTemp + '\' + $File003

# $OutsFilesAA = @("$Out021", "$Out023", "$Out021 $Out022","$Out021 $Out023","$Out021 $Out022 $Out023") - не работает вот так и все.

$OutsFilesAA = @( "$Out022")

$Logs = @()

$Threads = @("-t1","-t2", "-t3", "-t4","-t5","-t6","-t7","-t8","-t9","-t10","-t11","-t12","-t13","-t14","-t15")

# $Threads = @("-t1")

# $Write = ("-w0","-w30", "-w100")

$Write = @("-w100")

#$BlockSize = ("-b4k","-b8k")

$BlockSize = @("-b4k")

# $Outstanding = @("-o2","-o4","-o8","-o16","-o32")

$Outstanding = @("-o2")

$Size = "-c200G"

$Time = "-d10"


foreach ($OutFilesGr in $OutsFilesAA){

foreach ($Drv in $Drives){

foreach ($Bl in $BlockSize) {

foreach ($Wr in $Write) {

foreach ($Outs in $Outstanding){

foreach ($T1 in $Threads){


$TimeNow = get-date -UFormat "-%d-%m-%Y-%R" | ForEach-Object {$_ -replace ":","-"}

Write-Host "TT " $TimeNow

$Out001 = $Drv + ':\' + $FilesTemp + '\' + $File001

$Out002 = $Drv + ':\' + $FilesTemp + '\' + $File002

$Out003 = "D" + ':\' + $FilesTemp + '\' + $File003


$Stat1 = $Drv + ':\' + $FilesTemp + '\' + $Version + $TimeNow + "_" + $T1 + $Drv + $Outs + $T1 +'_1.log'

$Stat2 = $Drv + ':\' + $FilesTemp + '\' + $Version + $TimeNow + "_" + $T1 + $Drv + $Outs + $T1 +'_2.log'

$Stat3 = $Drv + ':\' + $FilesTemp + '\' + $Version + $TimeNow + "_" + $T1 + $Drv + $Outs + $T1 +'_3.log'

$Logs += $Stat1


Write-Host "testing mode " $T1 $Wr $Bl $Outs 'time' $Time # "GR" $OutFilesGr

# &$Sp $T1 $Wr $Bl -W10 $Outs $Time -Suw -D -L $Size $Out021 $Out022 > $Stat1

&$Sp $T1 $Wr $Bl -W10 $Outs $Time -Suw -D -L $Size $Out021 > $Stat1

}}}}}}

И часть 2

$FilesTempDir = "c:\Data4del\"

$StatFiles = "069"

$StatFilesList = Get-ChildItem -Path $FilesTempDir | Where-Object {$_.Name -like ($StatFiles + '*') | Sort-Object -Property CreationTime  }


foreach ($MyFile in $StatFilesList){

$TempData1 = Get-Content $MyFile.FullName  | Where-Object {$_ -like "Command Line*"}

$TempData1

$TempData2 = Get-Content $MyFile.FullName  | Where-Object {$_ -like "total:*"}

$TempData2

}

Показать полностью 3
[моё] Windows Статистика Жесткий диск IT Импортозамещение Microsoft Опыт Длиннопост
1
Блог компании
ggsel.net
ggsel.net
2 дня назад

Как создать геймпасс в Roblox в 2025: простейшая инструкция⁠⁠

Как создать геймпасс в Roblox в 2025: простейшая инструкция Приложение, Геймеры, Видеоигра, Игры, Гайд, Инструкция, Пропуск, Roblox, Создание, Windows, Android, iOS, Мобильные игры, Блоги компаний, Длиннопост

Геймпасс в Roblox — это специальный пропуск, который открывает игрокам доступ к эксклюзивным возможностям. За робуксы вы получаете бонусы: секретные зоны, уникальные предметы или усиления для персонажа. Для разработчиков это инструмент монетизации, а процесс создания займет буквально несколько минут прямо на платформе.

В этом руководстве мы в редакции ggsel.net расскажем как оформить геймпасс в 2025 году, настроить продажи и автоматизировать выдачу привилегий. Мы разберем пошаговую инструкцию, покажем, где найти ID пропуска, и поделимся готовыми скриптами для интеграции.

Как создать геймпасс на ПК

Как создать геймпасс в Roblox в 2025: простейшая инструкция Приложение, Геймеры, Видеоигра, Игры, Гайд, Инструкция, Пропуск, Roblox, Создание, Windows, Android, iOS, Мобильные игры, Блоги компаний, Длиннопост

1. Начните с авторизации
Зайдите на официальный сайт Roblox → введите логин и пароль.

2. Откройте Creator Hub
В верхней панели нажмите кнопку «Создать» (Create) — это ваш портал для управления проектами.

3. Выберите игру
В разделе Creations (слева) или через Dashboard найдите свой проект. Даже пустой аккаунт имеет шаблонный проект — смело используйте его.

4. Проверьте доступ
Убедитесь, что игра имеет статус Public. Если стоит Private, наведите курсор на проект → кликните «⋯» → выберите Make Public.

5. Перейдите к настройкам
Откройте страницу проекта → в левом меню найдите «Монетизация» → «Пропуски» → «Создать пропуск».

6. Заполните параметры

  • Изображение: Загрузите квадратную картинку (макс. 512×512 px) в формате JPG/PNG. Центруйте ключевые элементы — Roblox обрежет ее в круг.

  • Название: Придумайте короткий заголовок (например, «VIP-доступ к арсеналу»).

  • Описание: Добавьте 2-3 строки о преимуществах (без запрещенных слов!).

7. Завершите создание
Кликните «Создать пропуск» → дождитесь модерации (иконка может появиться через 5-15 минут).

Важно! Не закрывайте вкладку до сохранения изменений. Если картинка не загрузилась — обновите страницу или попробуйте другой файл.

Детали оформления

  • Название по умолчанию — это имя вашего файла. Лучше переименуйте его для узнаваемости.

  • Описание необязательно, но повышает конверсию. Пример: «+30% к урону, эксклюзивный меч и доступ в подземелье».

  • Проверьте превью — если изображение съехало, загрузите исправленную версию.

Как создать геймпасс на смартфоне

Как создать геймпасс в Roblox в 2025: простейшая инструкция Приложение, Геймеры, Видеоигра, Игры, Гайд, Инструкция, Пропуск, Roblox, Создание, Windows, Android, iOS, Мобильные игры, Блоги компаний, Длиннопост

1. Запустите приложение Roblox
Откройте его на iOS или Android → авторизуйтесь в аккаунте разработчика.

2. Перейдите в режим создания
Тапните по «⋯» в правом нижнем углу → выберите Create из меню.

3. Откройте свой проект
В левой панели нажмите Creations → найдите нужную игру в списке.

4. Сделайте игру публичной
Если статус «Private», тапните по «⋯» в правом верхнем углу карточки → выберите Make Public.

5. Настройте пропуск
На странице проекта:

  • Пролистайте до раздела Monetization → выберите Passes → Create a Pass.

  • Заполните данные (название, описание, загрузите изображение) — параметры такие же, как в десктопной версии.

Совет: Используйте мобильные графические редакторы (Canva, PicsArt) для быстрого создания иконки прямо на телефоне. Проверьте, чтобы логотип не обрезался по краям — предпросмотр доступен перед загрузкой.

Важно! После сохранения геймпасс появится в списке не сразу — иногда требуется до 30 минут на обработку. Не удаляйте приложение и не выходите из аккаунта до завершения процесса.

Настройка геймпасса: ID, монетизация и бонусы

Как создать геймпасс в Roblox в 2025: простейшая инструкция Приложение, Геймеры, Видеоигра, Игры, Гайд, Инструкция, Пропуск, Roblox, Создание, Windows, Android, iOS, Мобильные игры, Блоги компаний, Длиннопост

Разберем ключевые этапы, чтобы ваш пропуск начал приносить доход и давал игрокам реальные преимущества.

1. Pass ID — где найти и зачем он нужен
Это уникальный цифровой код вашего геймпасса. Как получить:

  • В разделе «Монетизация» → «Пропуски» найдите свой геймпасс.

  • Наведите курсор → кликните «⋯» → выберите Copy Asset ID.

Сохраните ID в заметках — он понадобится для всех скриптов.

2. Включите продажи
Как установить цену и получать Robux:

  • В том же разделе «Пропуски» откройте нужный геймпас.

  • Перейдите во вкладку «Продажи» → переключите тумблер Item for Sale в активное положение.

  • Укажите стоимость. Помните: вы получите 70% от суммы, 30% забирает платформа.

3. Настройте бонусы
Без скриптов игроки не получат привилегии — вот базовый код для проверки покупки:

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local PASS_ID = 123456789 — вставьте свой ID

Players.PlayerAdded:Connect(function(player)
local hasPass = MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
if hasPass then
— сюда добавьте код выдачи бонусов
print(player.Name .. "активировал VIP-статус")
end
end)

Готовые идеи бонусов для геймпасса

Как создать геймпасс в Roblox в 2025: простейшая инструкция Приложение, Геймеры, Видеоигра, Игры, Гайд, Инструкция, Пропуск, Roblox, Создание, Windows, Android, iOS, Мобильные игры, Блоги компаний, Длиннопост

Практические примеры скриптов, которые сделают ваш пропуск ценным. Комбинируйте несколько фишек — это повысит привлекательность подписки.

1. Секретная локация

Игроки проходят сквозь стены или получают доступ в закрытую зону.

if hasPass then
local secretArea = game.Workspace:FindFirstChild("SecretArea")
if secretArea then
secretArea.CanCollide = false  —  отключаем столкновения
secretArea.Transparency = 0.5  — делаем полупрозрачной
end
end 

Можете добавить парящие частицы (ParticleEmitter) для визуального эффекта.

2. Бесконечная валюта

Мгновенная выдача крупной суммы при входе.

if hasPass then
local leaderstats = player:FindFirstChild("leaderstats")
if leaderstats then
local money = leaderstats:FindFirstChild("Money")
if money then
money.Value = 999999  — или += для ежедневного бонуса
end
end
end 

Важно: Не ломайте экономику игры. Давайте разумные суммы.

3. Эксклюзивный артефакт

Выдайте уникальный меч или инструмент из ReplicatedStorage.

if hasPass then
local specialItem = game.ReplicatedStorage:FindFirstChild("DragonSword")
if specialItem then
specialItem:Clone().Parent = player.Backpack
end
end

Настройте Tool.Enabled = false для остальных игроков.

4. Ускорение передвижения

Персонаж бегает быстрее обычного.

humanoid.WalkSpeed = 25  — стандартное значение 16

Можете добавить эффект скорости (Trail) на ноги персонажа.

5. Дополнительные жизни

Повысьте максимальное здоровье.

humanoid.MaxHealth = 200 
humanoid.Health = 200

Можете добавить восстановление здоровье каждые 10 секунд через цикл while wait(10) do.

6. VIP-команды в чате

Создайте эксклюзивные функции по ключевым словам.

player.Chatted:Connect(function(message)
if message == "/fly" then
— код активации полета
end
end)

Также можете добавить эффект крыльев при использовании команды.

7. Ежедневный бонус

Выдавайте валюту каждый реальный день.

coins.Value += 500 
— сохраняйте дату последней выдачи в DataStore

Используйте DataStore для отслеживания времени.

8. Анимации премиум-класса

Загрузите уникальные движения из каталога.

local specialAnimation = Instance.new("Animation") 
specialAnimation.AnimationId = "rbxassetid://123456" — ваш ID 
local animTrack = humanoid:LoadAnimation(specialAnimation) 
animTrack:Play() 

Где брать: Купите анимации в Creator Store или создайте в Blender.

9. Скины для интерфейса

Замените стандартные UI-элементы на премиальные.

local gui = player.PlayerGui:WaitForChild("ScreenGui") 
gui.BackgroundColor3 = Color3.fromRGB(255, 215, 0) — золотой фон 

Используйте LocalScript для клиентской части.

10. Персонализированные скины

Особые текстуры для тела персонажа.

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local PASS_ID = 123456789 — ваш Pass ID

Players.PlayerAdded:Connect(function(player)
local hasPass = MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)

if hasPass then
local character = player.Character or player.CharacterAdded:Wait()
local torso = character:FindFirstChild("UpperTorso") — используйте актуальные названия частей тела
if torso then
local vipDecal = Instance.new("Decal")
vipDecal.Texture = "rbxassetid://ВАШ_ID" — найдите ID в библиотеке
vipDecal.Name = "VIP_Skin"
vipDecal.Parent = torso
end
end
end)

Советы:

  • Добавьте свечение (SurfaceGui + Frame с эффектом UIGradient).

  • Создайте отдельную папку в ReplicatedStorage для всех текстур премиум-класса.

11. Звуковая идентификация

Уникальные звуки шагов или способностей.

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local PASS_ID = 123456789
local SOUND_ID = "rbxassetid://ВАШ_ID" — например, 5410086218 для Crab Rave

Players.PlayerAdded:Connect(function(player)
local hasPass = MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)

if hasPass then
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:FindFirstChild("Humanoid")

if humanoid then
humanoid.Running:Connect(function(speed)
if speed > 0 then
local sound = Instance.new("Sound")
sound.SoundId = SOUND_ID
sound.Parent = character.HumanoidRootPart
sound:Play()
game.Debris:AddItem(sound, 5) — автоматическое удаление через 5 сек
end
end)
end
end
end)

Лайфхаки:

  • Используйте предзагруженные звуки через ContentProvider:PreloadAsync для минимизации лагов.

  • Добавьте проверку if not character:FindFirstChild("VIP_Sound") then, чтобы избежать наложения треков.

  • Для музыкальных инструментов (бумбоксов) используйте RemoteEvent для синхронизации с другими игроками.

Где брать контент:

  • Официальная аудиобиблиотека Roblox.

  • Бесплатные звуки на FreeSound (конвертируйте в .ogg перед загрузкой).

Важные нюансы:

  • Тестируйте все в Studio перед публикацией.

  • Не злоупотребляйте OP-бонусами — это отпугнет бесплатных игроков.

  • Обновляйте контент раз в 2-3 недели, чтобы подписчики не теряли интерес.

Пример комплексного подхода:
Создайте VIP-остров с отдельным квестом, эксклюзивным лутом и увеличенным опытом. Добавьте туда NPC с диалогами — это усилит погружение.

Как оплатить геймпасс в Roblox с помощью ggsel

Как создать геймпасс в Roblox в 2025: простейшая инструкция Приложение, Геймеры, Видеоигра, Игры, Гайд, Инструкция, Пропуск, Roblox, Создание, Windows, Android, iOS, Мобильные игры, Блоги компаний, Длиннопост

Геймпасс покупается за внутриигровую валюту — Робуксы. При ограничении прямых платежей для приобретения Robux игроки могут воспользоваться проверенным маркетплейсом ggsel с защитой от мошенничества. Платформа обеспечивает безопасность сделок за счет рейтинговой системы продавцов, верификации аккаунтов и блокировки средств до подтверждения выполнения услуги.

Как создать геймпасс в Roblox в 2025: простейшая инструкция Приложение, Геймеры, Видеоигра, Игры, Гайд, Инструкция, Пропуск, Roblox, Создание, Windows, Android, iOS, Мобильные игры, Блоги компаний, Длиннопост
  1. Перейдите на сайт ggsel. В поиске введите «Робуксы».

  2. Отфильтруйте предложения по рекомендациям или цене.

  3. Выберите понравившееся, изучив описание и отзывы.

  4. Укажите нужное количество Робуксов для пополнения или выберите подарочную карту необходимого номинала.

  5. Оплатите удобным способом (российской банковской картой, СБП, через электронный кошелек или другим).

  6. После подтверждения оплаты ваш баланс в Roblox будет пополнен указанным в описании способом. Либо на экране появится код активации подарочной карты, также он придет на указанную ранее почту.


Переходите на ggsel.net — торговую площадку, где вы найдете игры для ПК и консолей, DLC, сможете пополнить баланс популярных игровых и неигровых сервисов, купить и продать игровой аккаунт. И все это — по выгодным ценам!

Реклама ИП «Суханов Д.Ф.», ИНН: 290132412356

Показать полностью 6
Приложение Геймеры Видеоигра Игры Гайд Инструкция Пропуск Roblox Создание Windows Android iOS Мобильные игры Блоги компаний Длиннопост
2
11
devx
devx
2 дня назад

Ответ на пост «Форум oszone.net всё»⁠⁠4

Первый комп я увидел в 1985 году будучи студентом на практике в одном из оборонных НИИ. Это был какой-то клон IBM без монитора, загружался с перфоленты а вывод был на принтер Роботрон (с перфорированной бумагой). Тогда он меня поразил в самое сердце и навсегда.

Потом я ушел в армию (1986-88) и к компам вернулся в 1989. Сначала это были самопальные ZX Spectrum и подобные а PC уже с 1992 года.

С тех пор я работал с CP/M, MS-DOS 3.3, 5.0, 6.0, 6.2, Windows 3.0, 3.1, 3.11, 95, 98, ME, 2000, XP, 8, 8.1, 10. Windows Mobile 8, 10.

Linux начинал с ядер 2.2

FreeBSD примерно тогда же но не плотно.

За эти годы работал также с OpenBSD, AIX, Solaris, OS/2 (Warp 3 и 4), МСВС. Ну, само-собой, Android.

Никогда не работал с операционками от Apple.

И вот мне сейчас 58, сука, лет, и я никогда не слышал про

один из самых крупных ресурсов в рунете

который с "далёкого 2001 года" помогал 300000 пользователей и сисадминам в день.

Сука, позор мне.

Форум Компьютер Windows Microsoft Компьютерное железо Ответ на пост Текст Волна постов
5
55
forajump
forajump
2 дня назад

Ответ на пост «Форум oszone.net всё»⁠⁠4

Просили тут аналоги, решил поделиться тем, куда я чаще или реже заглядываю:

  • https://www.cyberforum.ru — больше по программированию, но и в целом тоже ОК;

  • https://forum.ru-board.com — больше разнообразие тем, включая самые общие флудильни;

  • https://forum.ixbt.com — больше специализированные разделы по железу, но и в целом тоже ОК;

  • https://virusinfo.info — специализированный форум помощи при вирусном заражении;

  • https://forum.ubuntu.ru — понятно, форум по Ubuntu;

  • https://4pda.to/forum/ — очень отдаленный аналог, специализирующийся на мобильных устройствах и гаджетах.

По поводу ситуации с классическими форумами в целом. Мой опыт разбора всяких проблем, включая очень хитрые, сводится к тому, что форумы для этого не нужны. Типичные проблемы давно все описаны много где, они гуглятся легко, и есть пяток качественных сайтов со статьями, где в комментариях можно тоже что-то уточнить, если не понятно или не получается. Нетипичиные проблемы, редкие, сложные как правило и на форумах не решаются. Есть небольшой шанс, что какой-то завсегдатай форума уже с таким же сталкивался, но нигде это не описано, но обычно по сложной проблеме следуют типовые рекомендации, которые не помогают.

Исключение — VirusInfo. Там не просто подсказывают теоретики: ну попробуй это, ну может вот это поможет. Там реально предлагают снять нужные данные техническим способом (при помощи специализированного ПО), и после анализа этих данных дают конкретное индивидуальное решение в виде сценария, который нужно просто выполнить (обычно, в AVZ или типа того).

[моё] Форум Компьютер Windows Microsoft Компьютерное железо Ответ на пост Текст Волна постов
11
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии