add drawing and paket package-manager
This commit is contained in:
parent
00b407cba1
commit
c8ea322531
1 changed files with 124 additions and 12 deletions
136
posh.txt
136
posh.txt
|
|
@ -23,7 +23,7 @@ PowerShell Commands
|
||||||
# DNS
|
# DNS
|
||||||
# DHCP
|
# DHCP
|
||||||
# DFS
|
# DFS
|
||||||
# Package
|
# Package-Manager
|
||||||
# StorageReplica
|
# StorageReplica
|
||||||
# PS2EXE
|
# PS2EXE
|
||||||
# NSSM
|
# NSSM
|
||||||
|
|
@ -42,6 +42,8 @@ PowerShell Commands
|
||||||
# COM
|
# COM
|
||||||
# dotNET
|
# dotNET
|
||||||
# Console API
|
# Console API
|
||||||
|
# Drawing
|
||||||
|
# ObjectEvent
|
||||||
# Sockets
|
# Sockets
|
||||||
# Excel
|
# Excel
|
||||||
# CSV
|
# CSV
|
||||||
|
|
@ -1763,7 +1765,7 @@ Get-SRPartnerShip # информация о направлении реплик
|
||||||
Get-SRPartnership | Remove-SRPartnership # удалить реплизацию на основном сервере
|
Get-SRPartnership | Remove-SRPartnership # удалить реплизацию на основном сервере
|
||||||
Get-SRGroup | Remove-SRGroup # удалить реплизацию на обоих серверах
|
Get-SRGroup | Remove-SRGroup # удалить реплизацию на обоих серверах
|
||||||
|
|
||||||
# Package
|
# Package-Manager
|
||||||
|
|
||||||
Import-Module PackageManagement # импортировать модуль
|
Import-Module PackageManagement # импортировать модуль
|
||||||
Get-Module PackageManagement # информация о модуле
|
Get-Module PackageManagement # информация о модуле
|
||||||
|
|
@ -1773,8 +1775,8 @@ Get-Package -ProviderName msi,Programs # список установленных
|
||||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # включить использование протокол TLS 1.2 (если не отключены протоколы TLS 1.0 и 1.1)
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # включить использование протокол TLS 1.2 (если не отключены протоколы TLS 1.0 и 1.1)
|
||||||
Find-PackageProvider # поиск провайдеров
|
Find-PackageProvider # поиск провайдеров
|
||||||
Install-PackageProvider PSGallery -force # установить источник
|
Install-PackageProvider PSGallery -force # установить источник
|
||||||
Install-PackageProvider Chocolatey -force
|
|
||||||
Install-PackageProvider NuGet -force
|
Install-PackageProvider NuGet -force
|
||||||
|
Install-PackageProvider Chocolatey -force
|
||||||
Get-PackageSource # источники установки пакетов
|
Get-PackageSource # источники установки пакетов
|
||||||
Set-PackageSource -Name PSGallery -Trusted # по умолчанию
|
Set-PackageSource -Name PSGallery -Trusted # по умолчанию
|
||||||
Find-Package -Name *Veeam* -Source PSGallery # поиск пакетов с указанием источника
|
Find-Package -Name *Veeam* -Source PSGallery # поиск пакетов с указанием источника
|
||||||
|
|
@ -1783,6 +1785,57 @@ Get-Command *Veeam*
|
||||||
Import-Module -Name VeeamLogParser # загрузить модуль
|
Import-Module -Name VeeamLogParser # загрузить модуль
|
||||||
Get-Module VeeamLogParser | select -ExpandProperty ExportedCommands # отобразить список функций
|
Get-Module VeeamLogParser | select -ExpandProperty ExportedCommands # отобразить список функций
|
||||||
|
|
||||||
|
### winget
|
||||||
|
|
||||||
|
Source: https://github.com/microsoft/winget-cli
|
||||||
|
|
||||||
|
winget list # список установленных пакетов
|
||||||
|
winget search VLC # найти пакет
|
||||||
|
winget show VideoLAN.VLC # информация о пакете
|
||||||
|
winget show VideoLAN.VLC --versions # список доступных версий в репозитории
|
||||||
|
winget install VideoLAN.VLC # установить пакет
|
||||||
|
winget uninstall VideoLAN.VLC # удалить пакет
|
||||||
|
winget download jqlang.jq # загрузкить пакет (https://github.com/jqlang/jq/releases/download/jq-1.7/jq-windows-amd64.exe)
|
||||||
|
winget install jqlang.jq # добавляет в переменную среду и псевдоним командной строки jq
|
||||||
|
winget uninstall jqlang.jq
|
||||||
|
|
||||||
|
### jqlang-install
|
||||||
|
|
||||||
|
[uri]$url = $($(irm https://api.github.com/repos/jqlang/jq/releases/latest).assets.browser_download_url -match "windows-amd64").ToString() # получить версию latest на GitHub
|
||||||
|
irm $url -OutFile "C:\Windows\System32\jq.exe" # загрузить jq.exe
|
||||||
|
|
||||||
|
### NuGet
|
||||||
|
|
||||||
|
Invoke-RestMethod https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile "$env:TEMP\nuget.exe"
|
||||||
|
Invoke-Expression "$env:TEMP/nuget.exe search Selenium.WebDriver"
|
||||||
|
Set-Location $env:TEMP
|
||||||
|
Invoke-Expression "$env:TEMP/nuget.exe install Selenium.WebDriver"
|
||||||
|
Get-Item *Selenium*
|
||||||
|
|
||||||
|
### Chocolatey
|
||||||
|
|
||||||
|
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
||||||
|
|
||||||
|
choco -v
|
||||||
|
choco -help
|
||||||
|
choco list
|
||||||
|
choco install adobereader
|
||||||
|
|
||||||
|
### Scoop
|
||||||
|
|
||||||
|
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||||
|
irm get.scoop.sh | iex # установка
|
||||||
|
scoop help
|
||||||
|
scoop search jq
|
||||||
|
scoop info jq
|
||||||
|
(scoop info jq).version
|
||||||
|
scoop cat jq
|
||||||
|
scoop download jq # C:\Users\lifailon\scoop\cache
|
||||||
|
scoop install jq # C:\Users\lifailon\scoop\apps\jq\1.7
|
||||||
|
scoop list
|
||||||
|
(scoop list).version
|
||||||
|
scoop uninstall jq
|
||||||
|
|
||||||
# PS2EXE
|
# PS2EXE
|
||||||
|
|
||||||
Install-Module ps2exe -Repository PSGallery
|
Install-Module ps2exe -Repository PSGallery
|
||||||
|
|
@ -2723,6 +2776,7 @@ $link.Save() # сохранить
|
||||||
Set-WinUserLanguageList -LanguageList en-us,ru -Force # изменить языковую раскладку клавиатуры
|
Set-WinUserLanguageList -LanguageList en-us,ru -Force # изменить языковую раскладку клавиатуры
|
||||||
|
|
||||||
### Wscript.Shell.SendKeys
|
### Wscript.Shell.SendKeys
|
||||||
|
|
||||||
(New-Object -ComObject Wscript.shell).SendKeys([char]173) # включить/выключить звук
|
(New-Object -ComObject Wscript.shell).SendKeys([char]173) # включить/выключить звук
|
||||||
$wshell.Exec("notepad.exe") # запустить приложение
|
$wshell.Exec("notepad.exe") # запустить приложение
|
||||||
$wshell.AppActivate("Блокнот") # развернуть запущенное приложение
|
$wshell.AppActivate("Блокнот") # развернуть запущенное приложение
|
||||||
|
|
@ -2764,6 +2818,7 @@ Get-AltTab
|
||||||
Get-AltTab
|
Get-AltTab
|
||||||
|
|
||||||
### Wscript.Shell.Popup
|
### Wscript.Shell.Popup
|
||||||
|
|
||||||
$wshell = New-Object -ComObject Wscript.Shell
|
$wshell = New-Object -ComObject Wscript.Shell
|
||||||
$output = $wshell.Popup("Выберите действие?",0,"Заголовок",4)
|
$output = $wshell.Popup("Выберите действие?",0,"Заголовок",4)
|
||||||
if ($output -eq 6) {"yes"} elseif ($output -eq 7) {"no"} else {"no good"}
|
if ($output -eq 6) {"yes"} elseif ($output -eq 7) {"no"} else {"no good"}
|
||||||
|
|
@ -2791,6 +2846,7 @@ Output:
|
||||||
7 # Нет
|
7 # Нет
|
||||||
|
|
||||||
### WScript.Network
|
### WScript.Network
|
||||||
|
|
||||||
$wshell = New-Object -ComObject WScript.Network
|
$wshell = New-Object -ComObject WScript.Network
|
||||||
$wshell | Get-Member
|
$wshell | Get-Member
|
||||||
$wshell.UserName
|
$wshell.UserName
|
||||||
|
|
@ -2798,6 +2854,7 @@ $wshell.ComputerName
|
||||||
$wshell.UserDomain
|
$wshell.UserDomain
|
||||||
|
|
||||||
### Shell.Application
|
### Shell.Application
|
||||||
|
|
||||||
$wshell = New-Object -ComObject Shell.Application
|
$wshell = New-Object -ComObject Shell.Application
|
||||||
$wshell | Get-Member
|
$wshell | Get-Member
|
||||||
$wshell.Explore("C:\")
|
$wshell.Explore("C:\")
|
||||||
|
|
@ -2808,6 +2865,7 @@ $RecycleBin = $shell.Namespace(10)
|
||||||
$RecycleBin.Items()
|
$RecycleBin.Items()
|
||||||
|
|
||||||
### Outlook
|
### Outlook
|
||||||
|
|
||||||
$Outlook = New-Object -ComObject Outlook.Application
|
$Outlook = New-Object -ComObject Outlook.Application
|
||||||
$Outlook | Get-Member
|
$Outlook | Get-Member
|
||||||
$Outlook.Version
|
$Outlook.Version
|
||||||
|
|
@ -2840,6 +2898,7 @@ Join-Path C: Install Test
|
||||||
[System.IO.Path]::Combine("C:", "Install", "Test")
|
[System.IO.Path]::Combine("C:", "Install", "Test")
|
||||||
|
|
||||||
### Match
|
### Match
|
||||||
|
|
||||||
[System.Math] | Get-Member -Static -MemberType Methods
|
[System.Math] | Get-Member -Static -MemberType Methods
|
||||||
[System.Math]::Max(2,7)
|
[System.Math]::Max(2,7)
|
||||||
[System.Math]::Min(2,7)
|
[System.Math]::Min(2,7)
|
||||||
|
|
@ -2847,6 +2906,7 @@ Join-Path C: Install Test
|
||||||
[System.Math]::Truncate(3.9)
|
[System.Math]::Truncate(3.9)
|
||||||
|
|
||||||
### GeneratePassword
|
### GeneratePassword
|
||||||
|
|
||||||
Add-Type -AssemblyName System.Web
|
Add-Type -AssemblyName System.Web
|
||||||
[System.Web.Security.Membership]::GeneratePassword(10,2)
|
[System.Web.Security.Membership]::GeneratePassword(10,2)
|
||||||
|
|
||||||
|
|
@ -2861,6 +2921,7 @@ $GoodSound.SoundLocation = "C:\WINDOWS\Media\tada.wav"
|
||||||
$GoodSound.Play()
|
$GoodSound.Play()
|
||||||
|
|
||||||
### Static Class
|
### Static Class
|
||||||
|
|
||||||
[System.Environment] | Get-Member -Static
|
[System.Environment] | Get-Member -Static
|
||||||
[System.Environment]::OSVersion
|
[System.Environment]::OSVersion
|
||||||
[System.Environment]::Version
|
[System.Environment]::Version
|
||||||
|
|
@ -2985,6 +3046,7 @@ set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); }
|
||||||
[Audio]::Mute = $true
|
[Audio]::Mute = $true
|
||||||
|
|
||||||
### NetSessionEnum
|
### NetSessionEnum
|
||||||
|
|
||||||
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/lmshare/nf-lmshare-netsessionenum?redirectedfrom=MSDN
|
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/lmshare/nf-lmshare-netsessionenum?redirectedfrom=MSDN
|
||||||
Source: https://fuzzysecurity.com/tutorials/24.html
|
Source: https://fuzzysecurity.com/tutorials/24.html
|
||||||
|
|
||||||
|
|
@ -3059,6 +3121,7 @@ echo "`nCalling NetApiBufferFree, no memleaks here!"
|
||||||
Invoke-NetSessionEnum localhost
|
Invoke-NetSessionEnum localhost
|
||||||
|
|
||||||
### CopyFile
|
### CopyFile
|
||||||
|
|
||||||
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/winbase/nf-winbase-copyfile
|
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/winbase/nf-winbase-copyfile
|
||||||
Source: https://devblogs.microsoft.com/scripting/use-powershell-to-interact-with-the-windows-api-part-1/
|
Source: https://devblogs.microsoft.com/scripting/use-powershell-to-interact-with-the-windows-api-part-1/
|
||||||
|
|
||||||
|
|
@ -3070,6 +3133,7 @@ $Kernel32 = Add-Type -MemberDefinition $MethodDefinition -Name "Kernel32" -Names
|
||||||
$Kernel32::CopyFile("$($Env:SystemRoot)\System32\calc.exe", "$($Env:USERPROFILE)\Desktop\calc.exe", $False)
|
$Kernel32::CopyFile("$($Env:SystemRoot)\System32\calc.exe", "$($Env:USERPROFILE)\Desktop\calc.exe", $False)
|
||||||
|
|
||||||
### ShowWindowAsync
|
### ShowWindowAsync
|
||||||
|
|
||||||
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-showwindowasync
|
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-showwindowasync
|
||||||
|
|
||||||
$Signature = @"
|
$Signature = @"
|
||||||
|
|
@ -3082,12 +3146,12 @@ $ShowWindowAsync::ShowWindowAsync((Get-Process -Id $Pid).MainWindowHandle, 3)
|
||||||
$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $Pid).MainWindowHandle, 4)
|
$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $Pid).MainWindowHandle, 4)
|
||||||
|
|
||||||
### GetAsyncKeyState
|
### GetAsyncKeyState
|
||||||
|
|
||||||
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-getasynckeystate
|
Function: https://learn.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-getasynckeystate
|
||||||
|
|
||||||
Add-Type -AssemblyName System.Windows.Forms
|
Add-Type -AssemblyName System.Windows.Forms
|
||||||
[int][System.Windows.Forms.Keys]::F1
|
[int][System.Windows.Forms.Keys]::F1 # определить номер [Int] клавиши по ее названию
|
||||||
|
65..90 | % {"{0} = {1}" -f $_, [System.Windows.Forms.Keys]$_} # порядковый номер букв (A..Z)
|
||||||
65..90 | % {"{0} = {1}" -f $_, [System.Windows.Forms.Keys]$_}
|
|
||||||
|
|
||||||
function Get-ControlKey {
|
function Get-ControlKey {
|
||||||
$key = 112
|
$key = 112
|
||||||
|
|
@ -3100,14 +3164,16 @@ Add-Type -MemberDefinition $Signature -Name Keyboard -Namespace PsOneApi
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Warning 'Press F1 to exit'
|
Write-Warning 'Press F1 to exit'
|
||||||
do {
|
while ($true) {
|
||||||
Write-Host '.' -NoNewline
|
Write-Host '.' -NoNewline
|
||||||
$pressed = Get-ControlKey
|
if (Get-ControlKey) {
|
||||||
if ($pressed) { break }
|
break
|
||||||
Start-Sleep -Seconds 1
|
}
|
||||||
} while ($true)
|
Start-Sleep -Seconds 0.5
|
||||||
|
}
|
||||||
|
|
||||||
# Console API
|
# Console API
|
||||||
|
|
||||||
Source: https://powershell.one/tricks/input-devices/detect-key-press
|
Source: https://powershell.one/tricks/input-devices/detect-key-press
|
||||||
|
|
||||||
[Console] | Get-Member -Static
|
[Console] | Get-Member -Static
|
||||||
|
|
@ -3153,7 +3219,40 @@ if ($pressed) {break}
|
||||||
sleep 1
|
sleep 1
|
||||||
} while ($true)
|
} while ($true)
|
||||||
|
|
||||||
### Register-ObjectEvent
|
# Drawing
|
||||||
|
|
||||||
|
API: https://learn.microsoft.com/en-us/dotnet/api/system.drawing?view=net-7.0&redirectedfrom=MSDN
|
||||||
|
|
||||||
|
Add-Type -AssemblyName System.Drawing
|
||||||
|
$Width = 800
|
||||||
|
$Height = 400
|
||||||
|
$image = New-Object System.Drawing.Bitmap($Width,$Height)
|
||||||
|
$graphic = [System.Drawing.Graphics]::FromImage($image)
|
||||||
|
$background_color = [System.Drawing.Brushes]::Blue # задать цвет фона (синий)
|
||||||
|
$graphic.FillRectangle($background_color, 0, 0, $image.Width, $image.Height)
|
||||||
|
$text_color = [System.Drawing.Brushes]::White # задать цвет текста (белый)
|
||||||
|
$font = New-Object System.Drawing.Font("Arial", 20, [System.Drawing.FontStyle]::Bold) # задать шрифт
|
||||||
|
$text = "PowerShell" # указать текст
|
||||||
|
$text_position = New-Object System.Drawing.RectangleF(320, 180, 300, 100) # задать положение текста (x, y, width, height)
|
||||||
|
$graphic.DrawString($text, $font, $text_color, $text_position) # нанести текст на изображение
|
||||||
|
$image.Save("$home\desktop\powershell_image.bmp", [System.Drawing.Imaging.ImageFormat]::Bmp) # сохранить изображение
|
||||||
|
$image.Dispose() # освобождение ресурсов
|
||||||
|
|
||||||
|
$path = "$home\desktop\powershell_image.bmp"
|
||||||
|
Invoke-Item $path
|
||||||
|
|
||||||
|
$src_image = [System.Drawing.Image]::FromFile($path)
|
||||||
|
$Width = 400
|
||||||
|
$Height = 200
|
||||||
|
$dst_image = New-Object System.Drawing.Bitmap -ArgumentList $src_image, $Width, $Height # изменить размер изображения
|
||||||
|
$dst_image.Save("$home\desktop\powershell_image_resize.bmp", [System.Drawing.Imaging.ImageFormat]::Bmp)
|
||||||
|
|
||||||
|
$rotated_image = $src_image.Clone() # создать копию исходного изображения
|
||||||
|
$rotated_image.RotateFlip([System.Drawing.RotateFlipType]::Rotate180FlipNone) # перевернуть изображение на 180 градусов
|
||||||
|
$rotated_image.Save("$home\desktop\powershell_image_rotated.bmp", [System.Drawing.Imaging.ImageFormat]::Bmp)
|
||||||
|
$src_image.Dispose() # закрыть (отпустить) исходный файл
|
||||||
|
|
||||||
|
# ObjectEvent
|
||||||
|
|
||||||
$Timer = New-Object System.Timers.Timer
|
$Timer = New-Object System.Timers.Timer
|
||||||
$Timer.Interval = 1000
|
$Timer.Interval = 1000
|
||||||
|
|
@ -6083,3 +6182,16 @@ nano /etc/ansible/win-update.yml
|
||||||
var: wu_output
|
var: wu_output
|
||||||
|
|
||||||
ansible-playbook /etc/ansible/win-update.yml
|
ansible-playbook /etc/ansible/win-update.yml
|
||||||
|
|
||||||
|
### win_chocolatey
|
||||||
|
|
||||||
|
https://chocolatey.org/install
|
||||||
|
https://community.chocolatey.org/api/v2/package/chocolatey
|
||||||
|
https://docs.chocolatey.org/en-us/guides/organizations/organizational-deployment-guide
|
||||||
|
|
||||||
|
- name: Ensure Chocolatey installed from internal repo
|
||||||
|
win_chocolatey:
|
||||||
|
name: chocolatey
|
||||||
|
state: present
|
||||||
|
# source: URL-адрес внутреннего репозитория
|
||||||
|
source: https://community.chocolatey.org/api/v2/ChocolateyInstall.ps1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue