Навигация по странице
- Как сделать и запустить скрипт PowerShell?
- Как запустить скрипт в PowerShell?
- Как разрешить выполнение неподписанного скрипта PowerShell?
- Как запустить скрипт PowerShell в фоновом режиме?
- Как запустить скрипт через PowerShell с параметрами?
- Как запустить скрипт PowerShell с помощью ярлыка?
- Полезные сценарии для Windows
- Что такое командные скрипты Windows?
- Что такое Bat-скрипты Windows?
- Что такое исполняемые скрипты Windows?
- Какое расширение имеют файлы скриптов PowerShell?
- Какие скрипты PowerShell используются администраторами?
Выполнение скриптов в PowerShell
PowerShell представляет собой новую командную оболочку для операционной системы Windows, созданную Microsoft с целью полного замещения и улучшения cmd. Эта оболочка уже включена в состав операционных систем Windows 7 и выше. Если у вас старая версия операционной системы или вы хотите загрузить более новую версию PowerShell. Windows — операционная система, пользующаяся огромной популярностью среди миллионов пользователей по всему миру. В ее арсенале множество функций и возможностей, однако некоторые из них остаются недостаточно известными обычным пользователям. В данной статье мы расскажем о нескольких полезных сценариях, способных сделать вашу работу с Windows более эффективной и удобной.
Политика исполнения PowerShell-скриптов представляет собой механизм безопасности, управляющий условиями загрузки конфигурационных файлов и запуска сценариев в данной среде. Её основное предназначение — предотвращение выполнения потенциально вредоносных сценариев.
Как сделать и запустить скрипт PowerShell
Создать скрипт PowerShell довольно просто. Вот шаги, которые вы можете выполнить, чтобы создать свой первый скрипт:
1. Откройте редактор PowerShell ISE:
PowerShell ISE (Integrated Scripting Environment) предоставляет удобную среду для написания и отладки скриптов. Вы можете его найти в меню «Пуск» (Start) под разделом «Стандартные» (Standard) или выполнить команду `PowerShell_ise` в командной строке.
2. Напишите свой скрипт:
В окне редактора PowerShell ISE напишите свой скрипт. Ниже приведен пример простого скрипта, который выводит «Hello, World!» в консоль:
Write-Host «Hello, World!»
3. Сохраните скрипт:
- Нажмите `Ctrl + S` или выберите «Файл» (File) -> «Сохранить» (Save).
- Укажите имя файла и добавьте расширение `.ps1` (например, `MyScript.ps1`).
4. Запустите скрипт:
- Выберите весь текст скрипта.
- Нажмите `F5` или выберите «Запустить сценарий» (Run Script) в PowerShell ISE.
Примеры более сложных скриптов:
#Скрипт, создающий новую папку:
$folderPath = «C:\Path\To\NewFolder»
New-Item -ItemType Directory -Path $folderPath
#Скрипт, удаляющий все файлы старше 7 дней в папке:
$folderPath = «C:\Path\To\Folder»
$limitDate = (Get-Date).AddDays(-7)
Get-ChildItem $folderPath | Where-Object { $_.LastWriteTime -lt $limitDate } | Remove-Item
#Скрипт, проверяющий статус службы:
$serviceName = «wuauserv»
$serviceStatus = Get-Service -Name $serviceName | Select-Object Status
Write-Host «The status of service $serviceName is: $($serviceStatus.Status)»
Ваши скрипты могут включать более сложные команды, использовать условия, циклы и вызывать функции. Как только вы освоите основы, вы сможете создавать более мощные и гибкие скрипты PowerShell.
Скрипты для Windows — не просто строки кода, а волшебные ключи, открывающие дверь в мир автоматизации. В руках умелого пользователя они становятся инструментом, способным не только сэкономить время, но и превратить рутинные задачи в захватывающее путешествие по потокам байтов и командам.
Как запустить скрипт в PowerShell?
Существует несколько способов запуска скрипта, вот основные из них:
- Запустить оболочку PowerShell и выполнить в ней скрипт, указав путь к файлу и его имя (например, C:\Scripts\test.ps1) или перейдя в каталог скрипта командой cd C:\Scripts и выполнить его с помощью команды .\test.ps1.
- Оболочку можно найти и запустить разными способами. Один из них — через меню «Пуск». Для Windows 7 пройдите по следующему пути: «Все программы» — «Стандартные» — «Windows PowerShell» и запустите оболочку «Windows PowerShell». Для Windows 10 найдите группу по букве «W» и в ней выберите «Windows PowerShell».
- Запустить «Интегрированную среду сценариев Windows PowerShell ISE», которая представляет собой среду разработки, позволяющую редактировать и отлаживать скрипты PowerShell. Откройте программу, выберите «Открыть» или в меню Файл выберите «Открыть» и укажите нужный скрипт, затем нажмите F5 или кнопку «Выполнить скрипт». Поиск Windows PowerShell ISE можно осуществить так же, как и оболочки PowerShell, через меню «Пуск».
- Запустить стандартный командный интерфейс и ввести следующую команду:
PowerShell -file <имя_скрипта> (например: PowerShell -file myscript.ps1)
Если вы ранее не запускали скрипты PowerShell, возможно, вы получите сообщение о том, что файл <имя_скрипта> не может быть загружен, так как выполнение скриптов запрещено для данной системы. В этом случае введите «get-help about_signing» для получения дополнительной информации. Это связано с безопасностью и предотвращением случайного выполнения вредоносного кода, поэтому все скрипты должны быть подписаны цифровой подписью.
Как разрешить выполнение неподписанного скрипта PowerShell?
- В оболочке PowerShell перед запуском скрипта выполните следующую команду для разрешения выполнения неподписанных скриптов в текущем сеансе оболочки:
Set-ExecutionPolicy RemoteSigned -Scope Process
- При запуске из стандартного командного интерфейса используйте параметр -executionpolicy, например:
PowerShell -executionpolicy RemoteSigned -file <имя_скрипта>
Оба способа устанавливают политику только для текущего сеанса, при этом политика безопасности выполнения скриптов PowerShell, установленная в реестре, остается неизменной. Если вы хотите изменить политику безопасности выполнения скриптов «навсегда», используйте следующий способ:
- Разрешить выполнение навсегда: запустите оболочку PowerShell от имени «Администратора» и выполните команду:
Set-ExecutionPolicy RemoteSigned
Однако рекомендуется избегать этого способа, чтобы не подвергать ваш компьютер возможным угрозам, поскольку это разрешает выполнение всех скриптов всегда.
Примечание: Если скрипт был загружен из интернета, чтобы избежать запроса на подтверждение выполнения, используйте параметр Bypass вместо RemoteSigned — это полное отключение любых запросов и предупреждений.
Как запустить скрипт PowerShell в фоновом режиме?
Для этого используйте параметр -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Чтобы запустить неподписанный скрипт в фоновом режиме, выполните команду:
PowerShell -executionpolicy RemoteSigned -WindowStyle Hidden -file <имя_скрипта>
Также при желании вы можете добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Однако будьте внимательны, используя этот способ.
Как запустить скрипт через PowerShell с параметрами?
Запуск осуществляется аналогично запуску обычной программы или bat-файла с параметрами. Например, чтобы запустить скрипт с параметрами из командной строки, используйте следующую команду:
PowerShell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 «еще один текстовый параметр«
В самом скрипте параметры могут быть получены так:
param ($var1, $var2, $var3)
echo $var1, $var2, $var3
В интегрированной среде PowerShell ISE скрипт с параметрами можно запустить аналогично, используя область команд.
Как запустить скрипт PowerShell с помощью ярлыка?
Это можно сделать двумя способами:
- Создать файл bat/cmd, в котором прописать команду для запуска скрипта (с параметрами, как описано выше).
- Создать ярлык на PowerShell, который находится в папке c:\Windows\System32\WindowsPowerShell\v<версия>\. В свойствах ярлыка в поле «Объект» добавьте необходимые параметры.
Таким образом, например, чтобы запустить скрипт PowerShell при входе пользователя, просто создайте ярлык, как описано во втором пункте, и поместите его в автозагрузку. Также создание ярлыка с использованием одного из вышеописанных методов позволяет легко запускать скрипт от имени администратора или от имени любого другого пользователя, как обычную программу.
Скриптовый язык PowerShell — мощный инструмент для решения различных задач. Однако следует использовать его с осторожностью, поскольку он может быть использован не только для полезных, но и для вредоносных целей. Будьте внимательны при работе с ним.
Полезные сценарии для Windows
1. Скрипт выключения Windows (или перезагрузки):
Простейшая операция выключения компьютера. Откройте блокнот и введите:
shutdown -s -t 0
Сохраните файл с расширением *.cmd* (например, *shutdown.cmd*). При запуске этого файла компьютер выключится. Замените «-s» на «-r» для перезагрузки. Параметр «-t» устанавливает таймер; в данном случае, он равен 0 секунд, но можно установить, например, на 60 для выключения через 60 секунд.
2. Удаление ненужных приложений:
С помощью следующего скрипта можно удалить предустановленные приложения:
get-appxpackage -name *APPNAME* | remove-appxpackage
Замените *APPNAME* на название ненужного приложения. Хотя удаление можно выполнить стандартным способом или через программы, этот скрипт делает процесс более удобным.
3. Управление процессами:
Воспользуйтесь PowerShell для борьбы с медленными процессами. Выведите все службы:
Get-Service
Или получите информацию о конкретной службе с кодовым именем *NAME*:
Get-Service *NAME*
Создайте файл, который закрывает процессы с повышенным потреблением ресурсов:
Stop-Service -Name *ANTIVIRUS*
Stop-Service -Name *BROWSER*
Замените *ANTIVIRUS* и *BROWSER* на соответствующие названия.
4. Переименование группы файлов:
Решите проблему однотипных файлов с помощью скрипта группового переименования:
$path = «$comp\desktop\journey\russia»
$filter = ‘*.jpg’
get-childitem -path $path -filter $filter | rename-item -newname {$_.name -replace ‘HGNMD’,’RUSSIA’}
Укажите путь, расширение и выполните замены в строке.
5. Поиск файлов:
Используйте PowerShell для поиска файлов в директории:
Get-Childitem C:\Windows\*.log
Для более сложного поиска в подпапках:
Get-ChildItem C:\Windows\* -Include *.log -Recurse -Force
6. Справка:
Пользуйтесь командой *Get-Help* для получения информации:
Get-Help Services
Для более подробной справки по конкретной команде:
Get-Help —Name *CMDLET*
7. Получение информации о системе:
Используйте PowerShell для получения данных о системе, например, уровне заряда аккумулятора:
Add-Type -AssemblyName System.Windows.Forms
[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)
Информация об архитектуре процессора удаленного компьютера:
[PSObject].Assembly.GetType(‘System.Management.Automation.PsUtils’).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40).Invoke($null, @())
Проверка прав администратора текущего пользователя:
[PSObject].Assembly.GetType(‘System.Management.Automation.Utils’).GetMethod(‘IsAdministrator’, [Reflection.BindingFlags]40).Invoke($null, @())
Эти простые и полезные сценарии помогут вам эффективнее управлять вашей системой Windows.
Командные скрипты Windows
Это общий термин, который включает в себя различные типы скриптов и командных файлов, используемых в операционной системе Windows для автоматизации задач. Включают в себя как скрипты на языке командной строки (например, скрипты CMD), так и на более современных языках, таких как PowerShell. Например, Bat-скрипты (*.bat), PowerShell-скрипты (*.ps1), а также другие сценарии, созданные для автоматизации определенных задач.
Bat-скрипты Windows
Bat-скрипты, или файлы пакетных команд (Batch-файлы), представляют собой текстовые файлы, содержащие команды и инструкции для выполнения в командной строке Windows. Основаны на языке пакетных команд (Batch scripting language). Расширение файла: *.bat* (например, *myscript.bat*).
Пример простого bat-скрипта:
«`batch
@echo off
echo Hello, World!
pause
Выполняемые скрипты Windows
Это скрипты, которые могут быть выполнены в среде операционной системы Windows и обычно предназначены для автоматизации различных задач. Включают в себя bat-скрипты (командные файлы), PowerShell-скрипты, а также другие типы скриптов, которые можно выполнять в Windows. Общее отличие между bat-скриптами и PowerShell-скриптами заключается в языке программирования, используемом для написания команд и инструкций. Bat-скрипты используют язык пакетных команд, который является устаревшим и имеет ограниченные возможности по сравнению с PowerShell, который представляет более современный и мощный язык с разнообразными функциональными возможностями для автоматизации задач в Windows.
Какое расширение имеют файлы скриптов PowerShell
PowerShell-скрипты имеют расширение *.ps1*, и для их выполнения часто требуется предварительная настройка политики выполнения скриптов (Execution Policy), чтобы разрешить запуск скрипта через PowerShell в системе.
Скрипты PowerShell для администратора
PowerShell — мощный инструмент для сисадминов Windows, предоставляя широкий набор команд и сценариев для автоматизации и управления системой. Ниже приведены несколько примеров PowerShell-скриптов, которые могут быть полезны администраторам:
1. Создание резервной копии файлов:
$sourcePath = «C:\Path\To\Source»
$destinationPath = «D:\Backup»
$timestamp = Get-Date -Format «yyyyMMddHHmmss»
$backupFolder = «$destinationPath\Backup_$timestamp»
Copy-Item -Path $sourcePath -Destination $backupFolder -Recurse
2. Мониторинг дискового пространства:
$threshold = 80
$disks = Get-WmiObject Win32_LogicalDisk | Where-Object { $_.DriveType -eq 3 }
foreach ($disk in $disks) {
$freeSpacePercentage = [math]::Round(($disk.FreeSpace / $disk.Size) * 100, 2)
$diskLetter = $disk.DeviceID
if ($freeSpacePercentage -lt $threshold) {
Write-Host «Warning: Disk $diskLetter is running low on free space ($freeSpacePercentage%)»
# Можно добавить уведомление администратора
}
}
3. Создание нового пользователя:
$username = «NewUser»
$password = ConvertTo-SecureString «SecurePassword123» -AsPlainText -Force
$fullname = «New User»
$description = «Description of the new user»
$ou = «OU=Users,DC=Domain,DC=com»
New-ADUser -SamAccountName $username -UserPrincipalName «$username@domain.com» -Name $fullname -GivenName $fullname -Surname $username -Description $description -AccountPassword $password -Enabled $true -PassThru -Path $ou
4. Мониторинг событий в журнале событий:
$logName = «System»
$events = Get-WinEvent -LogName $logName -MaxEvents 10
foreach ($event in $events) {
Write-Host «Event ID $($event.Id): $($event.Message)»
}
5. Обновление всех установленных модулей PowerShell:
Get-Module -ListAvailable | ForEach-Object {
Update-Module -Name $_.Name -Force
}
6. Удаление временных файлов в системной директории:
$tempPath = [System.IO.Path]::GetTempPath()
Remove-Item «$tempPath\*» -Force
7. Создание отчета о состоянии служб:
$services = Get-Service | Select-Object DisplayName, Status, StartType
$services | Export-Csv -Path «C:\Path\To\ServiceReport.csv» -NoTypeInformation
8. Настройка правил брандмауэра:
New-NetFirewallRule -DisplayName «Allow-SSH» -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
9. Удаление неиспользуемых профилей пользователей:
$inactiveDays = 90
$userProfiles = Get-WmiObject Win32_UserProfile | Where-Object { $_.Special -eq $false }
foreach ($profile in $userProfiles) {
$lastUseDate = $profile.LastUseTime
$difference = (Get-Date) — $lastUseDate
if ($difference.Days -ge $inactiveDays) {
Remove-WmiObject -InputObject $profile -Confirm:$false
Write-Host «User profile $($profile.LocalPath) deleted.»
}
}
Эти примеры предоставляют общее представление о том, как PowerShell может использоваться администраторами для автоматизации различных задач в Windows-среде. Помните, что некоторые команды могут потребовать выполнения от имени администратора.
Для вызова скриптов PowerShell, вы можете использовать команду `Invoke-Expression` или просто указать путь к файлу скрипта. Предположим, у вас есть следующие скрипты: `ClearDisk.ps1`, `InstallPrograms.ps1`, `BackupScript.ps1`, и `UpdateSystem.ps1`.
1. Скрипт очистки диска (ClearDisk.ps1):
# ClearDisk.ps1
# Ваш код для очистки диска
# Пример: удаление временных файлов
Remove-Item -Path «$env:TEMP\*» -Recurse -Force
Как вызвать:
# Используйте Invoke-Expression
Invoke-Expression -Command «.\ClearDisk.ps1»
# Или просто указывайте путь к файлу скрипта
.\ClearDisk.ps1
2. Скрипт автоматической установки программ (InstallPrograms.ps1):
# InstallPrograms.ps1
# Ваш код для автоматической установки программ
# Пример: установка программы Chocolatey и установка пакетов
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))
choco install packageName -y
Как вызвать:
# Используйте Invoke-Expression
Invoke-Expression -Command «.\InstallPrograms.ps1»
# Или просто указывайте путь к файлу скрипта
.\InstallPrograms.ps1
3. Скрипт резервного копирования (BackupScript.ps1):
# BackupScript.ps1
# Ваш код для создания резервной копии
# Пример: копирование файлов в другую директорию
$sourcePath = «C:\Path\To\Source»
$destinationPath = «D:\Backup»
Copy-Item -Path $sourcePath -Destination $destinationPath -Recurse
Как вызвать:
# Используйте Invoke-Expression
Invoke-Expression -Command «.\BackupScript.ps1»
# Или просто указывайте путь к файлу скрипта
.\BackupScript.ps1
4. Скрипт автоматического обновления системы (UpdateSystem.ps1):
# UpdateSystem.ps1
# Ваш код для автоматического обновления системы
# Пример: обновление всех установленных модулей PowerShell
Get-Module -ListAvailable | ForEach-Object {
Update-Module -Name $_.Name -Force
}
Как вызвать:
# Используйте Invoke-Expression
Invoke-Expression -Command «.\UpdateSystem.ps1»
# Или просто указывайте путь к файлу скрипта
.\UpdateSystem.ps1
Убедитесь, что вы находитесь в той же директории, что и ваши скрипты, или укажите полный путь к файлу скрипта.
В этой статье мы коснулись всех аспектов создания, запуска и использования скриптов в Windows. Надеемся, что эти советы и примеры помогут вам освоить этот увлекательный мир автоматизации и сделают вашу работу более эффективной и приятной.
В статье рассказывается:
В статье рассказывается:
- Выключение и перезапуск
- Удаляем ненужное
- Управляем процессами
- Переименовываем группу файлов
- Ищем файлы
- Справка
- Находим данные
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Если вы только недавно встали на путь программирования и ещё даже не пробовали поиграться с установленной операционной системой, то манипулирование с помощью скриптов может вызвать резонные вопросы необходимости и удобства. Однако, даже если опустить тот простой факт, что они помогают лучше понять, как функционирует ОС, в будущем при создании приложений, исполнение сценариев может оказаться крайне полезным навыком.
Для исполнения следующих скриптов мы обратимся к PowerShell. Любой системный администратор (по профессии или в душе) знает его возможности и периодически пользуется, для всех остальных это просто интерфейс командной строки или иностранное слово. На популярных ресурсах вы можете найти уйму идей, как использовать PowerShell для развлечения и дела, здесь же мы рассмотрим лишь простые скрипты, которые помогут войти в курс дела.
Выключение и перезапуск
Итак, самая простая операция выключения вашего компьютера. Открываем ;блокнот, прописываем:
shutdown -s -t 0
Сохраняем файл, как *.cmd (*- имя вашего файла, например shutdown.cmd) и не забудьте в типе выбрать “все файлы”. Всё, исполняемый файл по запуску выключит ваш компьютер. “-s”, в данном случае означает выключение, замените на “-r” — получите перезагрузку. “-t” — таймер, у нас он установлен на 0 секунд, но если установить на 60 — получите выключение через 60 секунд.
Удаляем ненужное
В различных сборках, предустановленных на компьютер или ноутбук, вы можете наткнуться на массу абсолютно ненужных пакетов приложений. Удалить их с помощью скрипта проще простого:
get-appxpackage -name *APPNAME* | remove-appxpackage
Как вы понимаете, *APPNAME* — название неинтересующей надстройки. Да, удалять эти пакеты можно стандартным путём или через специальные программы, но вы можете создать скрипт, который удалит их все одним двойным кликом.
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Уже скачали 34162
Управляем процессами
Есть в PowerShell две полезные команды, которые позволят бороться с ветряными мельницами (процессами, снижающими быстродействие). Вывести их на экран можно просто прописав:
Get-Service
Или информацию о конкретном сервисе под кодовым названием *NAME* (на этом месте должно быть название интересующего сервиса):
Get-Service *NAME*
Но это можно сделать в диспетчере задач, а вот действительно полезным может оказаться создание файла, который по клику закрывал бы все процессы с повышенным потреблением ресурсов (браузеры, антивирусы и пр.). Для этого воспользуйтесь командой Stop-Service:
Stop-Service -Name *ANTIVIRUS*
Stop-Service -Name *BROWSER*
Названия для замены указаны в * *.
Переименовываем группу файлов
Ещё одна назойливая проблема: вы скопировали с фотоаппарата или телефона изображения. Огромная куча фотографий, которые называются однотипно вроде HGNMD034, где HGNMD — название общей директории, объединяющей файлы, например, отснятые за один день.
Для того, чтобы сделать название этих файлов приятнее или иметь возможность объединить несколько папок, не получив при этом хронологическую путаницу из-за имен, можно использовать скрипт группового переименования:
$path = «$comp\desktop\journey\russia»
$filter = ‘*.jpg’
get-childitem -path $path -filter $filter |
rename-item -newname {$_.name -replace ‘HGNMD’,’RUSSIA’}
В первой строке в кавычках укажите точный путь к файлам. Во второй строке — расширение файлов, подлежащих изменению. В последней строке вместо “HGNMD” — общее в названиях файлов, подлежащее замене, на что-то, вместо “RUSSIA” — имя, которое вы хотите присвоить. Если данный скрипт опять сохранить в качестве исполняемого файла, то подобные однотипные операции будут отнимать у вас всего несколько секунд времени.
Скачать
файл
Ищем файлы
Ещё одна простая задача, реализуемая на PowerShell — поиск файлов в директории. В данном случае рассмотрим поиск log-файлов:
Get-Childitem C:\Windows\*.log
Или чуть более сложный пример, когда поиск будет производиться ещё и в подпапках:
Get-ChildItem C:\Windows\* -Include *.log -Recurse -Force
Это чуть более правильная и полная запись, где “Include” — указывает на искомую часть, “Recurse” — на поиск во вложенных каталогах, “Force” — поиск включает в себя системные и скрытые файлы.
Дарим скидку от 60%
на курсы от GeekBrains до 11 мая
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку
Справка
Итак, с общими принципами функционирования PowerShell мы более-менее разобрались. Если что-то непонятно — обратитесь к справочной информации следующим образом:
Get-Help Services
Это команда, которая выведет на экран все доступные команды с кратким описанием. Хотите подробнее? Нет ничего проще:
Get-Help -Name *CMDLET*
Где вместо *CMDLET* вставьте любую интересующую команду.
Только до 8.05
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300
Находим данные
Теперь перейдём к простым скриптам, описанным чуть более сложными командами. Например, с помощью PowerShell вы можете выудить почти всю информацию о железе и комплектующих. Как вариант, вот скрипт для оценки уровня заряда аккумулятора:
Add-Type -AssemblyName System.Windows.Forms
[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)
Архитектура процессора удалённого компьютера:
[PSObject].Assembly.GetType( ‘System.Management.Automation.PsUtils’
).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40
).Invoke($null, @())
Иногда важной задачей бывает проверка прав администратора у текущего пользователя. Вот простой способ на PowerShell:
[PSObject].Assembly.GetType(‘System.Management.Automation.Utils’).GetMethod(
‘IsAdministrator’, [Reflection.BindingFlags]40).Invoke($null, @())
Читайте также!
Что такое браузер и как он работает
На этом пока остановимся. Как вы наверное убедились, PowerShell не самый сложный, но очень полезный инструмент, который способен выполнять, как простейшие операции, так и достаточно сложные. Однако PowerShell не единственный инструмент для создания скриптов для Windows. Но об этом в следующий раз.
Начало карьеры: интенсив «Основы веб-разработки».
Mega Collection of PowerShell Scripts
Contains 500+ free and stand-alone PowerShell scripts for Linux, Mac OS, and Windows. Useful on the command-line (CLI), for remote control via SSH, for automation (on startup/login/logoff/daily/hourly/shutdown or via AutoHotkey/Jenkins/etc.), for context menus, for voice commands (see talk2windows), or simply to learn PowerShell. All scripts are located in the 📂scripts subfolder and support Unicode — a modern console like Windows Terminal is recommended.
Download | PowerShell FAQ | PowerShell Cheat Sheet | PowerShell Documentation
🔊 Scripts for Audio & Voice
Script | Description |
---|---|
list-voices.ps1 | Lists the installed text-to-speech voices. Read more » |
play-beep-sound.ps1 | Plays a short beep sound. More » |
play-files.ps1 | Plays the given audio files. More » |
play-happy-birthday.ps1 | Plays the Happy Birthday song. More » |
play-imperial-march.ps1 | Plays the Imperial March (Star Wars). More » |
play-jingle-bells.ps1 | Plays Jingle Bells. More » |
play-mission-impossible.ps1 | Plays the Mission Impossible theme. More » |
play-m3u.ps1 | Plays the given M3U playlist. More » |
play-mp3.ps1 | Plays the given MP3 sound file. More » |
play-super-mario.ps1 | Plays the Super Mario intro. More » |
play-tetris-melody.ps1 | Plays the Tetris melody. More » |
speak-checklist.ps1 | Speaks the given checklist by text-to-speech. More » |
speak-countdown.ps1 | Speaks a countdown by text-to-speech. More » |
speak-english.ps1 | Speaks text with an English text-to-speech voice. More » |
speak-epub.ps1 | Speaks the content of the given Epub file by text-to-speech. More » |
speak-file.ps1 | Speaks the content of the given text file by text-to-speech. More » |
speak-french.ps1 | Speaks text with a French text-to-speech voice. More » |
speak-german.ps1 | Speaks text with a German text-to-speech voice. More » |
speak-italian.ps1 | Speaks text with an Italian text-to-speech voice. More » |
speak-spanish.ps1 | Speaks text with a Spanish text-to-speech voice. More » |
speak-test.ps1 | Performs a speak test by text-to-speech. More » |
speak-text.ps1 | Speaks the given text by text-to-speech. More » |
spell-word.ps1 | Spells the given word by text-to-speech. More » |
tell-joke.ps1 | Tells a random joke by text-to-speech. More » |
tell-quote.ps1 | Tells a random quote by text-to-speech. More » |
turn-volume-down.ps1 | Turns the audio volume down. More » |
turn-volume-fully-up.ps1 | Turns the audio fully up. More » |
turn-volume-off.ps1 | Turns audio off. More » |
turn-volume-on.ps1 | Turns audio on. More » |
turn-volume-up.ps1 | Turns the audio volume up. More » |
⚙️ Scripts for Computer Management
Script | Description |
---|---|
add-firewall-rules.ps1 | Adds firewall rules for executables, needs admin rights. Read more » |
check-cpu.ps1 | Checks the CPU temperature. More » |
check-dns.ps1 | Checks the DNS resolution. More » |
check-drive-space.ps1 | Checks a drive for free space left. More » |
check-file-system.ps1 | Checks the file system of a drive (needs admin rights). More » |
check-health.ps1 | Checks the system health. More » |
check-ping.ps1 | Checks the ping latency to the internet. More » |
check-swap-space.ps1 | Checks the swap space for free space left. More » |
check-windows-system-files.ps1 | Checks Windows system files (needs admin rights). More » |
enable-crash-dumps.ps1 | Enables the writing of crash dumps. More » |
hibernate.ps1 | Hibernates the local computer immediately. More » |
install-github-cli.ps1 | Installs GitHub CLI. More » |
install-chrome-browser.ps1 | Installs the Google Chrome browser. More » |
install-firefox.ps1 | Installs the Firefox browser. More » |
install-knot-resolver.ps1 | Installs the Knot Resolver (needs admin rights). More » |
install-salesforce-cli.ps1 | Installs the Salesforce CLI (sfdx). More » |
install-ssh-client.ps1 | Installs a SSH client (needs admin rights). More » |
install-ssh-server.ps1 | Installs a SSH server (needs admin rights). More » |
install-signal-cli.ps1 | Installs the CLI edition of the Signal messenger. More » |
install-updates.ps1 | Installs updates (need admin rights). More » |
install-wsl.ps1 | Installs Windows Subsystem for Linux (WSL), needs admin rights. More » |
list-apps.ps1 | Lists the installed applications. More » |
list-cli-tools.ps1 | Lists installed command-line interface (CLI) tools. More » |
list-dns-servers.ps1 | Lists public DNS servers. More » |
list-drives.ps1 | Lists all drives. More » |
list-network-shares.ps1 | Lists all network shares of the local computer. More » |
list-installed-software.ps1 | Lists the installed software. More » |
list-printers.ps1 | Lists all printer known to the computer. More » |
list-print-jobs.ps1 | Lists all jobs of all printers. More » |
list-processes.ps1 | Lists the local computer processes. More » |
list-services.ps1 | Lists the services on the local computer. More » |
list-system-info.ps1 | Lists system information on the local computer. More » |
list-tasks.ps1 | Lists all Windows scheduler tasks. More » |
list-timezone.ps1 | Lists the current time zone details. More » |
list-timezones.ps1 | Lists all time zones available. More » |
list-user-groups.ps1 | Lists the user groups on the local computer. More » |
new-power-plan.ps1 | Creates a custom power plan based on the active one. More » |
poweroff.ps1 | Halts the local computer (needs admin rights). More » |
query-smart-data.ps1 | Queries the S.M.A.R.T. data of your HDD/SSD’s. More » |
reboot.ps1 | Reboots the local computer (needs admin rights). More » |
remove-print-jobs.ps1 | Removes all jobs from all printers. More » |
restart-network-adapters.ps1 | Restarts all local network adapters. More » |
upgrade-ubuntu.ps1 | Upgrades Ubuntu Linux to the latest (LTS) release. More » |
wake-up-host.ps1 | Wakes up a computer using Wake-on-LAN. More » |
windefender.ps1 | Turn Windows Defender on/off/check real time monitoring. More » |
💻 Scripts for the Desktop
Script | Description |
---|---|
close-calculator.ps1 | Closes the calculator application. Read more » |
close-cortana.ps1 | Closes Cortana. More » |
close-chrome.ps1 | Closes the Google Chrome browser. More » |
close-program.ps1 | Closes the given program gracefully. More » |
close-edge.ps1 | Closes the Edge browser. More » |
close-file-explorer.ps1 | Closes Microsoft File Explorer. More » |
close-firefox.ps1 | Closes the Firefox browser. More » |
close-microsoft-store.ps1 | Closes the Microsoft Store app. More » |
close-netflix.ps1 | Closes the Netflix app. More » |
close-onedrive.ps1 | Closes Microsoft OneDrive. More » |
close-serenade.ps1 | Closes the Serenade application. More » |
close-snipping-tool.ps1 | Closes the Snipping Tool application. More » |
close-spotify.ps1 | Closes Spotify. More » |
close-system-settings.ps1 | Closes the System Settings window. More » |
close-task-manager.ps1 | Closes the Task Manager. More » |
close-thunderbird.ps1 | Closes Mozilla Thunderbird. More » |
close-vlc.ps1 | Closes the VLC media player application. More » |
close-windows-terminal.ps1 | Closes the Windows Terminal application. More » |
enable-god-mode.ps1 | Enables the god mode (adds a new icon to the desktop). More » |
install-chrome.ps1 | Installs the Google Chrome browser. Read more… |
install-firefox.ps1 | Installs the Firefox browser. Read more… |
list-clipboard.ps1 | Lists the contents of the clipboard. Read more… |
new-email.ps1 | Starts the default email client to write a new email. Read more… |
open-amazon-website.ps1 | Opens Amazon’s website. Read more… |
open-default-browser.ps1 | Launches the default Web browser. Read more… |
open-calculator.ps1 | Starts the calculator program. Read more… |
open-c-drive.ps1 | Opens the C: drive folder. Read more… |
open-downloads-folders.ps1 | Opens the user’s downloads folder. Read more… |
open-dropbox-folder.ps1 | Opens the user’s Dropbox folder. Read more… |
open-edge.ps1 | Launches the Edge browser. Read more… |
open-email-client.ps1 | Starts the default email client. Read more… |
open-facebook-website.ps1 | Opens Facebook’s website. Read more… |
open-file-explorer.ps1 | Opens the File Explorer. Read more… |
open-firefox.ps1 | Launches the Firefox browser. Read more… |
open-fritz-box.ps1 | Opens FRITZ!Box’s web interface. Read more… |
open-github.ps1 | Opens GitHub’s website. Read more… |
open-google-contacts.ps1 | Opens Google Contacts. Read more… |
open-google-earth.ps1 | Opens Google Earth. Read more… |
open-google-mail.ps1 | Opens Google Mail. Read more… |
open-google-maps.ps1 | Opens Google Maps. Read more… |
open-google-news.ps1 | Opens Google News. Read more… |
open-google-play.ps1 | Opens Google Play. Read more… |
open-google-search.ps1 | Opens Google Search. Read more… |
open-google-translate.ps1 | Opens Google Translate. Read more… |
open-home-folder.ps1 | Opens the user’s home folder. Read more… |
open-music-folder.ps1 | Opens the user’s music folder. Read more… |
open-netflix.ps1 | Starts the Netflix app. Read more… |
open-microsoft-store.ps1 | Launches the Microsoft Store app. Read more… |
open-notepad.ps1 | Starts the Notepad app. Read more… |
open-onedrive-folder.ps1 | Opens the user’s OneDrive folder. Read more… |
open-pictures-folder.ps1 | Opens the user’s pictures folder. Read more… |
open-recycle-bin.ps1 | Opens the user’s recycle bin folder. Read more… |
open-repos-folder.ps1 | Opens the user’s Git repositories folder. Read more… |
open-snipping-tool.ps1 | Starts the Snipping Tool. Read more… |
open-speed-test.ps1 | Opens Cloudflare’s speed test. Read more… |
open-spotify.ps1 | Opens Spotify. Read more… |
open-system-settings.ps1 | Opens the system settings of Windows. Read more… |
open-task-manager.ps1 | Starts the Task Manager. Read more… |
open-videos-folder.ps1 | Opens the user’s videos folder. Read more… |
open-windows-terminal.ps1 | Launches Windows Terminal. Read more… |
open-wikipedia-website.ps1 | Opens Wikipedia’s website. Read more… |
open-youtube-website.ps1 | Opens YouTube’s website. Read more… |
remind-me.ps1 | Creates a scheduled task that will display a popup message. Read more… |
save-screenshot.ps1 | Saves a single screenshot. Read more… |
set-wallpaper.ps1 | Sets the given image as wallpaper. Read more… |
📁 Scripts for Files & Folders
Script | Description |
---|---|
cd-autostart.ps1 | Set the working directory to the user’s autostart folder. Read more » |
cd-desktop.ps1 | Set the working directory to the user’s desktop folder. More » |
cd-docs.ps1 | Set the working directory to the user’s documents folder. More » |
cd-downloads.ps1 | Set the working directory to the user’s downloads folder. More » |
cd-dropbox.ps1 | Set the working directory to the user’s Dropbox folder. More » |
cd-home.ps1 | Set the working directory to the user’s home folder. More » |
cd-music.ps1 | Set the working directory to the user’s music folder. Read more… |
cd-onedrive.ps1 | Set the working directory to the user’s OneDrive folder. Read more… |
cd-pics.ps1 | Set the working directory to the user’s pictures folder. Read more… |
cd-recycle-bin.ps1 | Set the working directory to the user’s recycle bin folder. Read more… |
cd-repos.ps1 | Change the working directory to the user’s Git repositories folder. Read more… |
cd-repo.ps1 | Change the working directory to the given Git repository folder. Read more… |
cd-root.ps1 | Set the working directory to the root directory. Read more… |
cd-scripts.ps1 | Set the working directory to the PowerShell Scripts folder. Read more… |
cd-ssh.ps1 | Set the working directory to the user’s SSH folder. Read more… |
cd-up.ps1 | Set the working directory to one directory level up. Read more… |
cd-up2.ps1 | Set the working directory to two directory levels up. Read more… |
cd-up3.ps1 | Set the working directory to three directory levels up. Read more… |
cd-up4.ps1 | Set the working directory to four directory levels up. Read more… |
cd-videos.ps1 | Set the working directory to the user’s videos folder. Read more… |
check-symlinks.ps1 | Checks every symlink in a directory tree. Read more… |
check-xml-file.ps1 | Checks the given XML file for validity. Read more… |
clear-recycle-bin.ps1 | Removes the content of the recycle bin folder (can not be undo!). Read more… |
copy-photos-sorted.ps1 | Copy image files sorted by year and month. Read more… |
decrypt-file.ps1 | Decrypts the given file. Read more… |
download-dir.ps1 | Downloads a directory tree from the given URL. Read more… |
download-file.ps1 | Downloads a file from the given URL. Read more… |
edit.ps1 | Edits the given file with the built-in text editor. Read more… |
encrypt-file.ps1 | Encrypts the given file. Read more… |
get-md5.ps1 | Prints the MD5 checksum of the given file. Read more… |
get-sha1.ps1 | Prints the SHA1 checksum of the given file. Read more… |
get-sha256.ps1 | Prints the SHA256 checksum of the given file. Read more… |
inspect-exe.ps1 | Prints basic information of the given executable file. Read more… |
install-fonts.ps1 | installs fonts and updates the registry. Read more… |
list-dir-tree.ps1 | Lists the directory tree content. Read more… |
list-empty-dirs.ps1 | Lists empty subfolders within the given directory tree. Read more… |
list-empty-files.ps1 | Lists empty files within the given directory tree. Read more… |
list-files.ps1 | Lists all files in the given folder and also in every subfolder. Read more… |
list-folder.ps1 | Lists the folder content. Read more… |
list-hidden-files.ps1 | Lists hidden files within the given directory tree. Read more… |
list-recycle-bin.ps1 | Lists the content of the recycle bin folder. Read more… |
list-unused-files.ps1 | Lists unused files in a directory tree. Read more… |
list-workdir.ps1 | Lists the current working directory. Read more… |
make-install.ps1 | Installs built executables and libs to the installation directory. Read more… |
new-shortcut.ps1 | Creates a new shortcut file. Read more… |
new-symlink.ps1 | Creates a new symbolic link file. Read more… |
new-zipfile.ps1 | Creates a new .zip file from a directory. Read more… |
publish-to-ipfs.ps1 | Publishes the given files or directory to IPFS. Read more… |
remove-empty-dirs.ps1 | Removes empty subfolders within the given directory tree. Read more… |
replace-in-files.ps1 | Search and replace a pattern in the given files by the replacement. Read more… |
search-filename.ps1 | Searches the directory tree for filenames by given pattern. Read more… |
search-files.ps1 | Searches the given pattern in the given files. Read more… |
upload-file.ps1 | Uploads the local file to the given FTP server. Read more… |
♻️ Scripts to Convert Files
Script | Description |
---|---|
convert-csv2txt.ps1 | Converts a .CSV file to a text file. Read more » |
convert-dir27z.ps1 | Converts a directory tree to a compressed .7z file. Read more » |
convert-dir2zip.ps1 | Converts a directory tree to a compressed .ZIP file. Read more » |
convert-history2ps1.ps1 | Converts your command history to a PowerShell script. Read more » |
convert-image2ascii.ps1 | Converts images to ASCII art. Read more » |
convert-images2webp.ps1 | Converts images in a directory or a single image file to WebP format in parallel. More » |
convert-mysql2csv.ps1 | Converts a MySQL database table to a .CSV file. More » |
convert-ps2bat.ps1 | Converts a PowerShell script to a Batch script. More » |
convert-ps2md.ps1 | Converts the comment-based help of a PowerShell script to Markdown. More » |
convert-md2docx.ps1 | Converts Markdown file(s) to .DOCX format. Read more » |
convert-md2html.ps1 | Converts Markdown file(s) to HTML format. Read more » |
convert-md2pdf.ps1 | Converts Markdown file(s) to PDF format. Read more » |
convert-sql2csv.ps1 | Converts a SQL database table to a .CSV file. More » |
convert-txt2wav.ps1 | Converts text to a .WAV audio file. More » |
export-to-manuals.ps1 | Exports all scripts as manuals. More » |
📝 Scripts for Git
Script | Description |
---|---|
build-repo.ps1 | Builds a Git repository. Read more » |
build-repos.ps1 | Builds all Git repositories in a folder. More » |
check-repo.ps1 | Checks a Git repository. More » |
clean-repo.ps1 | Cleans a Git repository from untracked files. More » |
clean-repos.ps1 | Cleans all Git repositories in a folder from untracked files. More » |
clone-repos.ps1 | Clones well-known Git repositories. More » |
configure-git.ps1 | Sets up the Git user configuration. More » |
fetch-repo.ps1 | Fetches updates for a Git repository. More » |
fetch-repos.ps1 | Fetches updates for all Git repositories in a folder. More » |
list-branches.ps1 | Lists all branches in a Git repository. More » |
list-commit-stats.ps1 | Lists a Git commit statistics. More » |
list-commits.ps1 | Lists all commits in a Git repository. More » |
list-latest-tag.ps1 | Lists the latest tag on the current branch in a Git repository. More » |
list-latest-tags.ps1 | Lists the latests tags in all Git repositories under a directory. More » |
list-repos.ps1 | Lists all Git repositories in a folder. More » |
list-submodules.ps1 | Lists all submodules in a Git repository. More » |
list-tags.ps1 | Lists all tags in a Git repository. More » |
new-branch.ps1 | Creates a new branch in a Git repository. More » |
new-tag.ps1 | Creates a new tag in a Git repository. More » |
pick-commit.ps1 | Cherry-picks a Git commit into multiple branches. More » |
pull-repo.ps1 | Pulls updates into a Git repository. More » |
pull-repos.ps1 | Pulls updates into all Git repositories in a folder. More » |
remove-tag.ps1 | Removes a tag in a Git repository. More » |
switch-branch.ps1 | Switches the branch in a Git repository. More » |
sync-repo.ps1 | Synchronizes a Git repository by pull & push. More » |
write-changelog.ps1 | Writes a changelog from Git commits. More » |
🔎 Scripts for PowerShell
Script | Description |
---|---|
daily-tasks.sh | Execute PowerShell scripts automatically as daily tasks (Linux only). Read more » |
introduce-powershell.ps1 | Introduces PowerShell to new users. More » |
list-aliases.ps1 | Lists all PowerShell aliases. More » |
list-automatic-variables.ps1 | Lists the automatic variables of PowerShell. More » |
list-cheat-sheet.ps1 | Lists the PowerShell cheat sheet. More » |
list-cmdlets.ps1 | Lists the PowerShell cmdlets. More » |
list-console-colors.ps1 | Lists all console colors. More » |
list-modules.ps1 | Lists the PowerShell modules. More » |
list-profiles.ps1 | Lists your PowerShell profiles. More » |
list-scripts.ps1 | Lists all PowerShell scripts in this repository. More » |
new-script.ps1 | Creates a new PowerShell script. More » |
set-profile.ps1 | Updates your PowerShell user profile. More » |
🛒 Various PowerShell Scripts
Script | Description |
---|---|
add-memo.ps1 | Adds the given memo text to $HOME/Memos.csv. Read more » |
check-ipv4-address.ps1 | Checks the given IPv4 address for validity. More » |
check-ipv6-address.ps1 | Checks the given IPv6 address for validity. More » |
check-mac-address.ps1 | Checks the given MAC address for validity. More » |
check-subnet-mask.ps1 | Checks the given subnet mask for validity. More » |
check-weather.ps1 | Checks the current weather for critical values. More » |
display-time.ps1 | Displays the current time for 10 seconds by default. Read more… |
list-anagrams.ps1 | Lists all anagrams of the given word. Read more… |
list-city-weather.ps1 | Lists the current weather of cities worldwide (west to east). Read more… |
list-countries.ps1 | Lists details of all countries. Read more… |
list-credits.ps1 | Shows the credits. Read more… |
list-crypto-rates.ps1 | Lists the current crypto exchange rates. Read more… |
list-environment-variables.ps1 | Lists all environment variables. Read more… |
list-emojis.ps1 | Lists the emojis of Unicode 13.0. Read more… |
list-fritzbox-calls.ps1 | Lists the FRITZ!Box calls. Read more… |
list-fritzbox-devices.ps1 | Lists FRITZ!Box’s known devices. Read more… |
list-earthquakes.ps1 | Lists earthquakes with magnitude >= 6.0 for the last 30 days. Read more… |
list-exchange-rates.ps1 | Lists the current exchange rates for the given currency. Read more… |
list-memos.ps1 | Lists the memos at $HOME/Memos.csv. Read more… |
list-mysql-tables.ps1 | Lists the MySQL server tables. Read more… |
list-news.ps1 | Lists the latest news. Read more… |
list-os-releases.ps1 | Lists operating system releases and download URL. Read more… |
list-os-updates.ps1 | Lists operating system updates. Read more… |
list-passwords.ps1 | Prints a list of random passwords. Read more… |
list-pins.ps1 | Prints a list of random PIN’s. Read more… |
list-sql-tables.ps1 | Lists the SQL server tables. Read more… |
list-tiobe-index.ps1 | Lists the TIOBE index of top programming languages. Read more… |
list-weather.ps1 | Lists the hourly weather. Read more… |
locate-city.ps1 | Prints the geographic location of the given city. Read more… |
locate-ipaddress.ps1 | Prints the geographic location of the given IP address. Read more… |
locate-zip-code.ps1 | Prints the geographic location of the given zip-code. Read more… |
moon.ps1 | Prints the current moon phase. Read more… |
new-qrcode.ps1 | Generates a new QR code image file. Read more… |
reboot-fritzbox.ps1 | Reboots the FRITZ!box device. Read more… |
scan-ports.ps1 | Scans the network for open/closed ports. Read more… |
send-email.ps1 | Sends an email message. Read more… |
send-tcp.ps1 | Sends a TCP message to the given IP address and port. Read more… |
send-udp.ps1 | Sends a UDP datagram message to the given IP address and port. Read more… |
set-timer.ps1 | Sets a timer for a countdown. Read more… |
simulate-presence.ps1 | Simulates the human presence against burglars. Read more… |
start-calibre-server.ps1 | Starts a local Calibre server. Read more… |
start-ipfs-server.ps1 | Starts a local IPFS server. Read more… |
switch-shelly1.ps1 | Switches a Shelly1 device in the local network. Read more… |
translate-file.ps1 | Translates the given text file into other languages. Read more… |
translate-files.ps1 | Translates the given text files into any supported language. Read more… |
translate-text.ps1 | Translates the given text in English into other languages. Read more… |
weather.ps1 | Prints the current weather forecast. Read more… |
weather-report.ps1 | Prints the local weather report. Read more… |
what-is.ps1 | Prints a description of the given abbreviation. Read more… |
write-animated.ps1 | Writes animated text. Read more… |
write-big.ps1 | Writes the given text in big letters. Read more… |
write-blue.ps1 | Writes the given text in a blue foreground color. Read more… |
write-braille.ps1 | Writes the given text in Braille. Read more… |
write-calendar.ps1 | Writes the calendar (month of year). Read more… |
write-green.ps1 | Writes the given text in a green foreground color. Read more… |
write-joke.ps1 | Writes a random Juck Norris joke. Read more… |
write-lowercase.ps1 | Writes the given text in lowercase letters. Read more… |
write-marquee.ps1 | Writes the given text as marquee. Read more… |
write-morse-code.ps1 | Writes the given text in Morse code. Read more… |
write-motd.ps1 | Writes the message of the day (MOTD). Read more… |
write-quote.ps1 | Writes a random quote. Read more… |
write-red.ps1 | Writes the given text in a red foreground color. Read more… |
write-rot13.ps1 | Encodes or decodes the given text with ROT13. Read more… |
write-typewriter.ps1 | Writes the given text with the typewriter effect. More » |
write-uppercase.ps1 | Writes the given text in uppercase letters. More » |
write-vertical.ps1 | Writes the given text in vertical direction. More » |
show-notification-motivation-quote.ps1 | Show notification with random cat picture and motivation quote. More » |
📧 Feedback
Send your email feedback to: markus.fleschutz [at] gmail.com
🤝 License & Copyright
This open source project is licensed under the CC0-1.0 license. All trademarks are the property of their respective owners.
18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
|
15.10.2012, 00:56. Показов 635252. Ответов 183 Метки acl, antihidden, cabinet archive, cacls, drive serial number, folder permissions, not responding, regsvr32, sfc /scannow, takeown, полезные bat/cmd скрипты (Все метки) В этой теме выкладываем скрипты, которые часто используются Вами Также приветствуются скрипты высокой степени сложности, полезные с точки зрения Правила темы:
Схожая тема: BAT/CMD файлы ******************* Перечень полезных скриптов: ******************* Архивация и резервное копирование Безопасность Дата, время Интерфейс Компиляция Операционная система Сеть Процессы Текстовые операции, кодировка (файловые операции) ссылка Файловые операции, разделы Другое
23 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||
15.10.2012, 00:57 [ТС] |
||||||
Взаимное копирование содержимого 2 папок друг в друга Критерий копирования при совпадении имен файлов: последняя дата модификации. Использование: Примечание: скрипт использует Robocopy.exe из пакета Windows Resource Kit (является родной для Windows 7) Развернуть код …
Вложения
3 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||||||||
15.10.2012, 02:41 [ТС] |
||||||||||||
Удаление последствий вируса (поддельные «фейковые» папки на флешке) Использование: Показания к применению: Функционал v.1.5.: Папка содержит в свою очередь 3 неудаляемые штатными способами подпапки, создаваемые разными алгоритмами. Тонкости: Основные изменения в update 1.5. (от 16.11.2012) Обсуждение скрипта ведется здесь (и последняя версия скрипта тоже): AntiHidden — Удаление последствий вируса (поддельные «фейковые» папки на флешке) FAQ Как удалить созданную программой папку Autorun.inf Программа работает слишком долго: Зачем удалять программы в корне папки %appdata% ? Листинг исходного кода v.1.5.1. ua:
В коде версии 1.5. использованы спецсимволы BackSpace, поэтому при прямом копировании кода Ваш батник работать не будет, как задумано.
Add. Перевод на русский v.1.4.: Листинг (с переводом).
Вложения
8 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||
15.10.2012, 02:44 [ТС] |
||||||
Стать владельцем папки/файла, получить полные права (пункт контекстного меню) Скрипт представляет из себе ключик реестра. Использование: Предназначение: Показания к применению: Ключик Nizaury Reg-Key Листинг:
Автор: Nizaury Смежный скрипт: Смена владельца и прав на папку и ее содержимое, в которой запущен батник Вложения
14 |
Anonymоus 612 / 92 / 14 Регистрация: 15.08.2012 Сообщений: 62 |
||||||||||||
15.10.2012, 05:16 |
||||||||||||
Подсчёт маски подсети на основании двух крайних значений диапазона. Синтаксис — netmask.cmd <начало диапазона> <конец диапазона> Развернуть код …
UPD. 26.04.13 Использование: Примеры:
Развернуть код …
.
2 |
612 / 92 / 14 Регистрация: 15.08.2012 Сообщений: 62 |
|
15.10.2012, 05:16 |
|
Пакетное получение информации о IP-адресах и построение HTML-отчёта. Использование — поместить IP-адреса (по одному на строку) в файл iplist.txt, запустить masswhois.bat и дождаться завершения работы. Результат будет представлен в виде result.html В отчёте представлены: сам IP, его маска и диапазон, страна, имя подсети и адрес. Использованные внешние утилиты — grep, uniqline, whosip, netmask.cmd
2 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||
21.10.2012, 03:05 [ТС] |
||||||
Вывод текста без переноса на новую строку Принцип подсмотрел у alexii на сером форуме. Код содержит невидимые символы BackSpace (0x08). Будет полезен для создания процентного прогрессбара Рабочий вариант качайте с файла. Код — замените (0х20) на (0x08)
Вложения
2 |
18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
|
27.10.2012, 02:37 [ТС] |
|
Циклическое копирование файлов по каталогам с ожиданием завершения их дозаписи в исходную папку. Массовая рассылка файлов
0 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||||||||||||||||||||||||||
02.11.2012, 18:00 [ТС] |
||||||||||||||||||||||||||||||
Перекодировка текста Смотрите обновленную тему: Перекодировка текста (сборник кодов для различных кодовых страниц) Из любой кодировки в любую (через утилиту win_iconv) Скачать утилиту. Синтаксис: Bash iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile …] Перечень кодировок: Bash iconv -l
Пример использования: Bash win_iconv -f UTF-16LE -t cp866 "UTFtext.txt" > "DOStext.txt" Подробности в теме о ключах. Win <-> OEM (неконсольный — на языке VBA) Автор: Dragokas Написан на VBA (Excel). Скачать. Для работы необходимо включить макросы: Описание функций:
OEM-866 -> WIN-1251 (на CMD)
OEM-866 -> WIN-1251 (через утилиту на ASM) Скачать to1251.zip. Самый быстрый перекодировщик. Написан на ассемблере =) Автор: Charles Kludge Использование только через конвейер: Bash ipconfig /all | to1251.exe > result.txt Bash to1251.exe < file1.txt > result.txt Исходник. Код ASM:
Win-1251 -> в Unicode (UTF-16LE) (на CMD) С возможностью указать исходную кодовую страницу: Использование: Bash Batch.cmd infile outfile src_codepage где: Batch.cmd — сам Batch-файл 2 варианта кода: 1) Исходник кода сохранить в кодировке WIN-1251:
2) исходник кода сохранить в кодировке OEM-866:
Как настроить кодировку исходного кода Batch-файла, какой выбрать редактор: Русский текст в консоли UTF-8 -> Win-1251 (cmd) От Smitis
UTF-16 -> OEM-866 (cmd)
UTF-16 -> Win-1251 (cmd)
Вложения
4 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||
12.11.2012, 07:27 [ТС] |
||||
Завершение процесса (оформлено в виде меню). Развернуть код
Миниатюры
4 |
18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
|
12.11.2012, 07:57 [ТС] |
|
Крутящаяся палка (имитация). По типу — песочные часы в Windows =))
4 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||
12.11.2012, 09:10 [ТС] |
||||||
Создание CAB-архивов Автор: Alex Averchenkoff Развернуть код
Вложения
3 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||||||||||
18.11.2012, 06:05 [ТС] |
||||||||||||||
Смена владельца и прав на папку и ее содержимое, в которой запущен батник (Full Access <-> Read Only) Обновлено 20.11.2012. Добавлена совместимость с XP и Server 2003. 1) RO.cmd (ReadOnly) — делает все файлы и папки доступными только для чтения и выполнения. 2) FA.cmd (FullAccess) — восстанавливает полный доступ для всех пользователей. Для нормальной работы в ОС Windows Vista, Win 7 батник нужно запускать правой кнопкой мыши «От имени Администратора». Как пользоваться: Для корректной работы, вероятно, понадобится утилита из Microsoft Support Tools — ICACLS (включена в ОС Windows Server 2003, начиная с SP2). Поддержка: Исходный код Сохранять в кодировке OEM-866. FA.cmd
RO.cmd
В коде использован метод двойного запуска скрипта исключительно для упрощения Обсуждение скрипта в теме: Смена владельца и прав на папку и ее содержимое Вложения
7 |
18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
|
26.11.2012, 13:41 [ТС] |
|
Пищалка (подобие beep) Блокнотом Windows не редактировать! Из командной строки звук можно симмитировать нажатием Ctrl+G, {ENTER}.
5 |
khaarax 7 / 3 / 0 Регистрация: 09.12.2012 Сообщений: 5 |
||||
09.12.2012, 23:00 |
||||
Вызов GUI диалогового окна выбора папки Развернуть код
Копирайты не помню чьи. Миниатюры
3 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||||||
30.12.2012, 04:46 [ТС] |
||||||||||
Многопроцессное создание пустых файлов (бенчмарк для винчестера) P.S. Ниже «процессы» названы «потоками» (простите за эту глупую опечатку). Настраиваемые параметры: Развернуть код
В поданном коде создается 50*10000 = 0,5 млн. файлов, так что попытавшись открыть такую папку даже файловым менеджером все напрочь зависнет. Результаты тестов на моем SSD Индикация процесса удаления папки Развернуть код…
Вложения
5 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||||||||
03.01.2013, 02:43 [ТС] |
||||||||||||
Помощник компиляции исходных кодов и проектов .NET (.cs / .sln (C#, VB.NET)) через консольный NET.FrameWork компилятор (csc или msbuild) UPD. 02.03.2017 — добавил скрипт для msbuild. Зачем нужен: Требования: Использование: Функционал: Внутри скрипта есть некоторые комментарии по детальным настройкам. Кликните здесь для просмотра всего текста
P.S. Скрипт для msbuild — упрощённый (лог-файл не ведётся). Кликните здесь для просмотра всего текста
Вложения
5 |
18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
|
06.01.2013, 02:03 [ТС] |
|
Отслеживание зависшего процесса и его перезапуск с указанным приоритетом Все параметры настраиваемы (см. начало кода и спойлер). Комментарии писал на английском, уж как есть. Принцип работы: (а вдруг процесс подвис на секунду — не «убивать» же его из-за этого!!!)
Если все проверки позитивны, ищем полный путь к процессу по номеру его Process ID (используется инструментарий WMIC). Настройки:
Можно задавать такие паузы (в мс.): Запуск в минимизированном виде: Приоритеты запускаемого процесса: Имена нескольких процессов задаются через запятую без кавычек, даже если в их имени есть пробел. Upd.3. Скрипт обсуждается здесь Отслеживание зависания (состояния «не отвечает») программы и её перезапуск
7 |
Eva Rosalene Модератор 5240 / 2114 / 416 Регистрация: 06.01.2013 Сообщений: 4,845 |
||||
08.01.2013, 21:45 |
||||
Помощь по всем командам вашей версии Windows / DOS Развврнуть код…
После запуска появятся два текстовых файла.
5 |
Dragokas 18023 / 7726 / 892 Регистрация: 25.12.2011 Сообщений: 11,502 Записей в блоге: 16 |
||||||||
15.01.2013, 02:20 [ТС] |
||||||||
Прогресс-бар копирования файлов Взято из этой темы. Версия 1.5
Юзаем, например, так:
2 |
inter-admin Эксперт 29715 / 6470 / 2152 Регистрация: 06.03.2009 Сообщений: 28,500 Блог |
15.01.2013, 02:20 |
Помогаю со студенческими работами здесь Bat/cmd рисунок в BAT\CMD Меню в BAT/CMD Задание CMD/BAT На каком языке программирования пишутся скрипты для bat и vbc? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 20 |
Время на прочтение4 мин
Количество просмотров26K
В этой статье рассмотрим почему мы все любим Powershell на паре рабочих примеров. Все это будет полезно при инвентаризации, поиске конкретного компьютера и прочих делах. Powershell оборудован удобными и запоминающимися командлетами, автодополнение всего и интуитивные названия делают его наверное самым простым в освоении языком.
В этом руководстве рассмотрим несколько крутых по мнению автора команд и расскажем почему это круто. Начнем со снипетов.
Полезные снипеты:
Заносим компьютер в TrustedHosts
Пригодится при подключении к серверу по WinRm. Команда перезапишет предыдущее значение, будьте осторожны, добавляйте ip или имена хостов через запятую. Если все ваши хосты находятся в AD, трогать этот файл не нужно.
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '192.168.0.1'
Wildcard тоже работает, если не хотите каждый раз добавлять новый хост в TrustedHosts.
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*'
Храним пароль в зашифрованном виде в файле:
Пригодится для автоматизации, сильно облегчает жизнь при выполнении скриптов из планировщика, но при этом пароль хранится в безопасном виде.
Если выполнять скрипты из под зашедшего пользователя, будут использоваться креды этого пользователя.
Read-Host -AsSecureString | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File -FilePath .\Password.txt
Забираем зашифрованный пароль из файла:
$Password = Get-Content C:\Password.txt | ConvertTo-SecureString
Тоже самое можно проделать и с Credentials, заменим Read-Host на Get-Credential.
Get-Credential | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File -FilePath .\Credential.txt
Получаем дату последней загрузки ОС.
(gcim win32_operatingsystem).LastBootUpTime
Тем же самым способом получаем еще и аптайм.
Get-CimInstance Win32_operatingsystem -ComputerName $computers |
Select-Object LastBootUpTime,
@{Name="Uptime";Expression = {(Get-Date) - $_.LastBootUptime}}
Получаем список установленных программ:
Именно программ, а не компонентов:
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Format-Table –AutoSize
Получаем список дисков, в том числе сетевых и свободное место на них
Get-PSDrive -PSProvider filesystem | where-object {$_.used -gt 0} |
Select-Object -property Root,@{name="Size";expression={($_.used+$_.free)/1GB -as [int]}},
@{name="Used";expression={($_.used/1GB) -as [int]}},
@{name="Free";expression={($_.free/1GB) -as [int]}}
Останавливаем процесс по его имени.
В этом примере останавливаем Chrome. Wildcard тоже подойдет, если хотите завершить всё.
Get-Process -Name "chrome" | Stop-Process
Копируем настройки доступа к папкам на дочерние папки
Пригодится, если вам захочется отобрать или дать права на пользование к папке и всем подпапкам у группы пользователей или у пользователя. Команда рекурсивно, снизу вверх копирует права на чтение и запись.
Копируем ACL у папки:
$Acl = Get-Acl -Path C:\folder\
Вставляем ACL на все файлы и подпапки:
Get-ChildItem -Path C:\Folder\ -Recurse | Set-Acl $Acl
Полезные скрипты:
Вот тут начинается самое страшное веселье. Если вам нужно провести инвентаризацию, будет очень полезно глянуть. Если ваши компьютеры не в AD, то скрипт станет немного сложнее, итерировать придется по заранее составленному файлу, а пароли нужно будет брать из файла или через Get-Credential. Вся разница:
C AD:
$ADComputers = (Get-ADComputer -filter *).DNSHostName
Без AD:
$Credentials = Get-Credential
$Computers = Get-Content -Path C:\servers.txt
Получаем аптайм дату последней загрузки каждого из компьютеров в AD:
$ADComputers = (Get-ADComputer -filter *).DNSHostName
foreach ($i in $ADComputers) {
Invoke-Command $i {
Get-CimInstance Win32_operatingsystem |
Select-Object LastBootUpTime,
@{Name="Uptime";Expression = {(Get-Date) - $_.LastBootUptime}}
}
}
Получаем все установленные программы на всех компьютерах AD:
$ADComputers = (Get-ADComputer -filter *).DNSHostName
foreach ($i in $ADComputers) {
Invoke-Command -computername $i {
gcim win32_product -computername $env:computername | Sort-Object -property Vendor,Name | Select-Object -property Vendor,Name, Caption
}
}
Тоже самое можно будет получить и для компонентов, подставив в Invoke-Command:
Get-WindowsFeature | Where-Object -Property "Installed" -EQ "Installed"
Получаем компьютеры, где запущен нужный нам процесс:
Если вы забыли на каком компьютере запущена та или иная программа, можно получить её таким способом. Рассмотрим на примере браузера:
$ADComputers = (Get-ADComputer -filter *).DNSHostName
foreach ($i in $ADComputers) {
Invoke-Command -computername $i {
Get-Process -Name "Chrome" -ErrorAction SilentlyContinue
}
}
Убить браузер можно будет так же легко, как и получить процесс:
$ADComputers = (Get-ADComputer -filter *).DNSHostName
foreach ($i in $ADComputers) {
Invoke-Command -computername $i {
Get-Process -Name "Chrome" | Stop-Process -ErrorAction SilentlyContinue
}
}
Получаем компьютеры, где установлена конкретная программа:
Кокретно в этом случае Java. Поможет при проведении инвентаризации можно будет посмотреть имена компьютеров где она была установлена.
$ADComputers = (Get-ADComputer -filter *).DNSHostName
foreach ($i in $ADComputers) {
Invoke-Command -computername $i {
gcim win32_product -computername $env:computername | Select-String -Pattern "Java" -AllMatches | Sort-Object -property Vendor,Name | Format-Table -ErrorAction SilentlyContinue
}
}
Если у вас возникнут предложения, будем рады добавить их в эту статью. Надеемся, эти примеры были для вас полезны.
Предлагаем обновлённый тариф UltraLite Windows VDS за 99 рублей с установленной Windows Server 2019 Core.