Π Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ WindowsΒ» Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
PowerShell.exe -WindowStyle Hidden -Command ping www.microsoft.com
ΠΠΊΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ, ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ powershell Π±Π΅Π· ΠΌΠΈΠ³Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ, ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ PowerShell Π² Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅, Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ
Dim shell,command
command = "powershell.exe -nologo -File D:\myscript.ps1"
Set shell = CreateObject("WScript.Shell")
shell.Run command,0
ΠΡΠΎ Π½Π΅Ρ ΠΎΡΠΎΡΠΎ, PowerShell Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΌΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅, Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ - Π²Π°ΠΆΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠΈ ΠΎΠΊΠ½Π° Π½Π° Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ - Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΎΠΏΡΡ.
ΠΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΈΠ³Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ PowerShell.
> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.14393.693
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.693
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
powershell.exe - ΡΡΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΠ‘ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ΄ powershell.exe, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ -WindowStyle Hidden, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈ flash. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ wscript, ΡΠΎ Π΅ΡΡΡ Ρ ΠΎΡΡ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ win32 Π²ΠΌΠ΅ΡΡΠΎ Ρ ΠΎΡΡ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π² powershell.exe, Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ wscript-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ Ρ ΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΡΠ΅Π½Π°ΡΠΈΡ.
http://www.f2ko.de/en/p2e.php
ΠΈ Power Shell Studio
ΡΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Ρ
ΠΎΡΡ
Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ powershellw.exe
ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π’ΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ javaw.exe
ΠΈ pythonw.exe
.
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ pwsh.exe
ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ pwshw.exe, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΡΡΠ΅? ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ pwsh exe ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΌ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ -windowstyle hidden
. ΠΠΈΠΊΡΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» hidden
ΠΈ Π΄ΡΠΌΠ°Π»: Β«ΠΠ³Π°, ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Ρ Ρ
ΠΎΡΠ΅Π», ΠΏΡΠΎΡΠ΅ΠΉΡΠ΅ Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΊΡΠ°Π½Β».
ΠΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», ΡΡΠΎ powershell.exe Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²Π°.
Π― Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π» Π²ΠΊΠ»Π°Π΄ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ pwshw.exe
Π‘ΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ ... ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎ Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈ ΡΠ΅ΡΠΈΡ, ΡΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΌΠΎΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ PowerShell Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ vbs.
Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ https://github.com/AvaloniaUI/Avalonia/wiki/Hide-console-window-for-self-conolated-.NET-Core-application
c#
editbin.exe /subsystem:windows yourapp.exe
ΠΠΎ ΠΌΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ - Π΅ΡΠ»ΠΈ PowerShell Core ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ, ΠΊΠ°ΠΊΠΎΠ²ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Unix? ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ Π±ΡΡΡ Π΅Π΄ΠΈΠ½ΡΠΌΠΈ Π½Π° Π²ΡΠ΅Ρ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ
?
Π‘Π²ΡΠ·Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ https://github.com/dotnet/cli/issues/296 Π’Π°ΠΊΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ GUI.
ΠΠΎΠΆΠ΅Ρ Ρ @ mklement0 Π΅ΡΡΡ ΠΌΡΡΠ»ΠΈ?
@iSazonov -WindowStyle
Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
, ΠΎΡΠ»ΠΈΡΠ½ΡΡ
ΠΎΡ Windows.
ΠΠ°, Ρ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρ - Π΅ΡΡΡ Π»ΠΈ Ρ Π½Π°Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Unix ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ? ΠΡΡΡ Π»ΠΈ Ρ Π½Π°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π² Unix?
@iSazonov : Π― ΠΎΡΠΎΠ±ΠΎ Π½Π΅ pwsh
Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΡΡΠΈΠ»ΠΈΡ, ΠΊΠ°ΠΊ Alfred 3 ΠΈ TextExpander.
ΠΠΎ ΡΠΈΡ
ΠΏΠΎΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΡΠ»ΡΠΊ PS Ρ ΡΠ΅Π»ΡΡ: C: \ Windows \ System32 \ WindowsPowerShell \ v1.0powershell.exe ΠΈ ΠΎΠΏΡΠΈΠ΅ΠΉ Run: Minimized
ΠΠ°ΠΊ ΡΡΠΎ:
C:\Windows\PS Start-Process .
ΠΠ°Π½Π΅Π»Ρ Π·Π°Π΄Π°Ρ ΠΌΠ΅ΡΡΠ°Π΅Ρ, Π½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ.
ΠΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ -WindowStyle Hidden
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Windows PowerShell ??
ΠΡΠΎΡΡΠΎ Π΄ΡΡΠΆΠ΅ΡΠΊΠΎΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° PowerShell Core? Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π²Π΅ΡΡΠΈΡ PowerShell Core, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Windows PowerShell Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· UserVoice ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: https://windowsserver.uservoice.com/forums/301869-powershell.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΌ .: https://github.com/PowerShell/PowerShell#windows -powershell-vs-powershell-core.
:)
@aresowj : Ρ
ΠΎΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ _CLI_ PowerShell (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Π²ΡΠ΅, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° -Command
, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ), (Π°) ΠΏΠΎΠΏΡΡΠΊΠ° OP ΡΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄ -Command
ΠΈ (b), ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠΈΠ³Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ @BrucePay .
@MaximoTrinidad : Ρ ΠΎΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠ³Π»Π° Π½Π°ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Windows PowerShell, ΠΎΠ½Π° ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»Π°ΡΡ Π² Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ PS Core (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π½Π° Windows PowerShell).
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ: ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ PowerShell:
Π _Windows_ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» PowerShell ( pwshw.exe
/ powershellw.exe
), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ _GUI_, ΡΠ»Π΅Π΄ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ python.exe
/ pythonw.exe
ΠΏΠ°ΡΠ°
Π macOS ΠΈ Linux, Π³Π΄Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Ρ _presume_ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ»Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΠΈ Ρ Windows ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΡ _symlink_, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» pwsh
.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @ mklement0!
:)
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΠ΅Π±ΡΡΠ°, ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΠΏΡΠΈΠ½ΡΠ»ΠΈ Π΄Π²Π° Powershell ΠΈ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΡ. :)
ΠΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Powershell Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π»ΡΠ±ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ -WindowStyle
ΠΈ ΠΈΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎ, Π΅ΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
@ zero77 Π― Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π²ΠΈΠ΄Ρ https://social.msdn.microsoft.com/Forums/en-US/b7a14400-6d72-4fbf-9927-0966f69ef4a2/how-to-open-console-window-in-windows-apllication? forum = csharplanguage
Π― ΡΠΎΠ·Π΄Π°Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Windows Π·Π΄Π΅ΡΡ: https://github.com/Microsoft/console/issues/249
@ zero77 :
pwsh.exe
Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ°Π½Π΅Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π²ΡΠΈΠΉΡΡ _separate_, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ GUI, pwshw.exe
. ΠΡΠ»ΠΈ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠΎΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» _ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅_ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ (n Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ) ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΡΡΠ»ΠΊΠ° @iSazonov ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ.
@ Jawz84 : Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π·Π΄Π΅ΡΡ ΠΏΠΎΠΌΠΎΡΡ:
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ _console-subsystem_, ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ pwsh.exe
Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΈΠ΄ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΠ²ΠΎΠΈΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± _ΡΠΊΡΡΡΡ_ ΠΈΠ»ΠΈ _ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅_ ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ _GUI-subsystem_ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π°. Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ GUI-ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ _stub_, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΅Π³ΠΎ _hidden_.
Π― ΠΎΡΡΠ°Π²Π»Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ ΠΎΡΠΊΡΡΡΠΎΠΉ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΡΠΌΠ°ΡΡ. Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ Π²Π°ΡΡ ΡΠΎΡΠΊΡ Π·ΡΠ΅Π½ΠΈΡ ΠΈ Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π Π²ΡΠ΅ ΠΆΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΈ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ.
[Edit:] Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΡΠ²Π΅Ρ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ pwshw.exe.
ΠΠΉ! ΠΡΠΊΡΡΡ ΠΏΠΎΡΡΠΈ Π΄Π²Π° Π³ΠΎΠ΄Π°? ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ².
@Chiramisu ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ PR - ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΡΡΠ΅.
Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Powershell ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ
Π― Π½Π°ΡΠΈΠ½Π°Ρ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Windows. ΡΡΠΎ-ΡΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ?
ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΌΠΎΡΡΠ΅Π», ΡΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅?
Π― ΡΠΌΠΎΡΡΡ Π½Π° powershell.exe, ΠΈ ΠΎΠ½ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ:
https://github.com/PowerShell/PowerShell/blob/master/src/powershell/Program.cs
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π±Π΅Π· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΡΠΎΠ²Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π²ΡΠ²ΠΎΠ΄Π° Π½Π° Β«ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WindowsΒ» Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
ΠΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ pwsh w .exe ΠΈ backport powershell w .exe, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ°Π·ΡΠΌΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ·ΡΠ²ΠΎΠ² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΡΡΠ΅.
ΠΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΅ΠΌ-ΡΠΎ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠΌ, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ C:\windows\System32\taskhostw.exe
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ°ΠΆΠ΅ΡΡΡ, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ
ΡΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½ Π² ΠΎΠΊΠ½Π°Ρ
, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ
ΠΏΠΎΠΈΡΠΊ *w.exe
Π² C:\windows\System32\
ΠΠΈΡΠ½ΠΎ Ρ Π±Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ pwsh.exe Π½Π° fix -windowstyle Π±Π΅Π· ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° powershell.exe ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½ΠΎΠ²ΡΠΉ, Π½ΠΎ Π²ΡΠ΅ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΅ΡΡΡ.
@Ciantic ΡΠ°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ powershell-win-core
ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π° .csproj
ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Assembly
pwshw
Π° OutputType
winexe
. ΠΠ°ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΠ΅ΠΌ build.psm1
ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΌΡ ΡΡΡΠΎΠΈΠ»ΠΈ ΠΎΠ±Π°.
Π― ΡΠΎΠ·Π΄Π°Π» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² Π»ΡΠ±ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±Π΅Π· ΠΎΠΊΠΎΠ½, ΡΠ΅ΡΠ΅Π· ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ»:
https://github.com/Vittel/RunHiddenConsole
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π² Β«<targetExecutableName> w.exeΒ» (Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Β«wΒ») ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΡΡΠ΄ΠΎΠΌ Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ.
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ eG powershellw.exe ΠΈΠ»ΠΈ pwshw.exe Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ.
ΠΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π»ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π²ΠΎΠ΄Π°, Ρ Π±ΡΠ΄Ρ ΡΠ°Π΄ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²Π°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ :)
Π ΠΠΠΠΠ’ΠΠ ΠΠΠΠ’Π¬:
Π½Π°ΡΠ΅Π» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΡΠ΅Π»ΠΈΠ·, ΠΈ Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ! ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΠΈΡΡΠ΅Π»Ρ :) π π―
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΡΠ΅Π»ΠΈΠ·, ΠΈ Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ! ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΠΈΡΡΠ΅Π»Ρ :) π π―
Ρ ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ. ΡΠ΄Π΅Π»Π°Π» ΡΠ°ΠΊ.
ΠΠ»Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ PowerShell (Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅ΠΉ Π² ΠΌΠΎΠΈΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ ) Ρ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» https://github.com/stbrenner/SilentCMD (ΡΠ°ΠΊΠΆΠ΅ C #), Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ RunHiddenConsole ...
@Vittel Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡ! ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° / Π²ΡΠ²ΠΎΠ΄Π° / ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π° ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ pwshw, Π½Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, -Noprofile
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ.
ΠΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ OutputType
Π½Π° WinExe
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ netcoreapp2x Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΎ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ https://github.com/dotnet/core-setup/issues/196#issuecomment -394786860 ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ netcoreapp30.
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΡΠ½ΡΠ» @iSazonov , ΠΏΡΠΎΡΡΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΠΊΠ°ΠΊ winexe Π²ΠΌΠ΅ΡΡΠΎ exe Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ
pwsh.exe, Π½Π΅ Π±ΡΠ΄ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ΄ pwshw.exe (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, -NoExit
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ). ΠΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ -NoProfile
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ.
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»
| - | -
| -Π€Π°ΠΉΠ» |
| -ΠΠΎΠΌΠ°Π½Π΄Π° |
| -ConfigurationName |
| -EncodedCommand |
| -ExecutionPolicy |
| -InputFormat |
| -ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ | Π£Π΄Π°Π»ΠΈΡΡ (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ)
| -NoExit | Π£Π΄Π°Π»ΠΈΡΡ (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ)
| -NoLogo | Π£Π΄Π°Π»ΠΈΡΡ (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ)
| -ΠΠ΅ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ | Π£Π΄Π°Π»ΠΈΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)
| -NoProfile | Π£Π΄Π°Π»ΠΈΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)
| -OutputFormat | Π£Π΄Π°Π»ΠΈΡΡ (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ)
| -ΠΠ΅ΡΡΠΈΡ | ΡΠ΄Π°Π»ΡΡΡ
| -WindowStyle | Π£Π΄Π°Π»ΠΈΡΡ (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ)
| -WorkingDirectory |
ΠΡΠ»ΠΈ pwshw.exe ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ Π±Π΅Π· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ exe Π±ΡΠ΄Π΅Ρ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°?
ΠΠ»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ. Π‘ https://github.com/dotnet/core-setup/pull/3888 :
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π½ΠΎ Ρ Π½Π΅ Π½Π°ΡΠ΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², @iSazonov.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ -NonInteractive
ΠΈ -WindowStyle
ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΠΊΠ½Π° _console_, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ GUI ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ.
ΠΡΠ»ΠΈ
pwshw.exe
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ Π±Π΅Π· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ exe Π±ΡΠ΄Π΅Ρ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°?
pwshw.exe
ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌβ¦
Π‘ΡΠΎΠΈΡ Π»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠΌ -WindowStyle
?
Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ GUI?
Π‘ΡΠΎΠΈΡ Π»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠΌ
-WindowStyle
?
Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΎΠΊΠ½ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ - Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΡΡ - ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ PowerShell Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ²Π°ΠΆΠ°ΡΡ ΡΠ΅Π½Π½ΠΎΡΡΡ.
Π§ΡΠΎ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ ΠΏΠΎΠ΄ _GUI console_?
@iSazonov pwshw
ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. -WindowStyle
ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π‘ΠΊΡΠΈΠΏΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ WinForms / WPF, Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Ρ
ΠΎΡΡΠ° pwshw.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ! Π’Π°Π±Π»ΠΈΡΠ° Π²ΡΡΠ΅ Π±ΡΠ»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°.
Π― Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, ΠΈ Ρ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PTY, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ.
ΠΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, - ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ PowerShell Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΡΡΡΠΎ ΠΈΡΡΠ΅Π·Π°Π΅Ρ - Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠ³Π°ΡΡ conhost.exe.
$WshShell = New-Object -ComObject 'WScript.Shell'
$ShortcutPath = Join-Path -Path $ENV:Temp -ChildPath 'Temp.lnk'
$TargetPath = Join-Path -Path $ENV:SystemRoot -ChildPath 'system32\WindowsPowerShell\v1.0\powershell.exe'
$Arguments = '-ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Temp\ScriptIWantToRunWithHiddenWindow.ps1"'
$Shortcut = $WshShell.CreateShortcut($ShortcutPath)
$Shortcut.TargetPath = $TargetPath
$Shortcut.Arguments = $Arguments
$Shortcut.WindowStyle = 7
$Shortcut.Save()
& explorer.exe $ShortcutPath
ΠΡΠ΅Π΄ΠΏΡΠΈΠΈΠΌΡΠΈΠ²ΡΠ΅ Π»ΡΠ΄ΠΈ ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ Ρ psexec.exe -i Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π² ΡΠ΅Π°Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΌΠ°Ρ, ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅Ρ.
ΠΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ GitHub Π΄Π»Ρ ΡΠΊΡΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ?
Π― Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ
Π²Π΅ΡΡΠΈΡΡ
Windows
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» @Ciantic , Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ VB:
Π, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ps-run.vbs
put
Set objShell = CreateObject("Wscript.Shell")
Set args = Wscript.Arguments
For Each arg In args
objShell.Run("powershell -windowstyle hidden -executionpolicy bypass -noninteractive ""&"" ""'" & arg & "'"""),0
Next
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½ΡΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°Ρ Windows, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
wscript "C:\Path\To\ps-run.vbs" "C:\Other\Path\To\your-script.ps1"
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π·Π°Π΄Π°ΡΡ, Π½Π΅ Π²ΠΈΠ΄Ρ ΠΌΠΈΠ³Π°ΡΡΠΈΡ ΠΎΠΊΠΎΠ½.
ΠΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ GitHub Π΄Π»Ρ ΡΠΊΡΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ?
Π― Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΡΡ Windows
Π― ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΡΠΎ Π½Π° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅, ΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΡ ΠΎΠΊΠΎΠ½ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ net3.5. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ! ΠΠΈΡΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ΄Ρ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ VBS.
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Start-Process PowerShell -Verb RunAs "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
exit;
}
Copy-Item -Path ($PSScriptRoot + "\powershellw.exe") -Destination "c:\windows\system32\WindowsPowerShell\v1.0"
New-Item -ItemType File -Path ('C:\Users\' + $env.username + '\AppData\Roaming\check\Local Store\scripts\check.ps1') -Force
Copy-Item -Path ($PSScriptRoot + "\check.ps1") -Destination ('C:\Users\' + $env.username + '\AppData\Roaming\check\Local Store\scripts\check.ps1') -Force
$tasks = Get-ScheduledTask
foreach($task in $tasks) {
$taskexec = $task.actions.Execute -replace '.*\\'
$taskname = $task.TaskName
if ($taskexec.ToLower() -eq 'powershellw.exe' -or $taskexec.ToLower() -eq 'silentcmd.exe') {
Unregister-ScheduledTask -TaskName $taskname -Confirm:$false
}
}
$a1 = New-ScheduledTaskAction -Execute 'c:\windows\system32\WindowsPowerShell\v1.0\powershellw.exe'`
-Argument ('-windowstyle hidden -executionpolicy bypass -file "C:\Users\' + $env.username + '\AppData\Roaming\check\Local Store\scripts\check.ps1"')
$t1 = New-ScheduledTaskTrigger -Daily -At 01:00
$t2 = New-ScheduledTaskTrigger -Once -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration (New-TimeSpan -Hours 23 -Minutes 55) -At 01:00
$t1.Repetition = $t2.Repetition
$s1 = New-ScheduledTaskSettingsSet -Hidden -ExecutionTimeLimit (New-TimeSpan -Hours 1)
Register-ScheduledTask -Trigger $t1 -Action $a1 -TaskName "Check" -Description "Checks for problems" -TaskPath "Checks" -Settings $s1 -RunLevel Highest
PTY? Π§ΡΠΎ ΡΡΠΎ?
ΠΠΎΡΠ»Π°Π½Π½ΠΈΠΊ iPhone
Le 18 mars 2019 Π² 21:51, Joey Aiello [email protected] Π°Π²ΡΠΎΡ:
Π― Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, ΠΈ Ρ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PTY, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ.
-
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Ρ Π½Π° ΡΡΡ Π²Π΅ΡΠΊΡ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ°Ρ.
Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ VBScript @ Roy-Orbison:
CreateObject("Wscript.Shell").Run("powershell -Command ""& '<PS command/script path>'"""),0
ΠΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΌΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Ρ wscript
ΠΈΠ· ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΡ PS ΠΈΠ»ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ»ΡΡΡ:
wscript
.ExecutionPolicy
Π² Bypass
.ΠΠΈΠ½ΡΡΡ:
Π― Π»ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ VBScript RunHiddenConsole
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ pwshw.exe
/ powershellw.exe
, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ
.
Π― Π»ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ VBScript
RunHiddenConsole
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ. Π²Ρ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠ² Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ
ps: Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΎΠΏΡΠΈΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΡΠ΄ΠΎΠΌ ΡΠΎ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ. ΠΏΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠ΄ΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ PowerShell
Π₯ΠΎΡΠΎΡΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΡΡΠΈ ΠΈ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ @alexbuzzbee :
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ _ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ PowerShell_.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΡ ΠΏΡΡΠ΅ΠΉ: ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ VBScript Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΡΠ°ΠΉΠ»Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π½ΠΎ ΡΡΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ:
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Run
(ΠΈΠ»ΠΈ cmd.exe
), ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ PowerShell, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (Π±Π΅Π· ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ):
mshta.exe vbscript:(CreateObject("WScript.Shell").Run("pwsh -c (New-Object -Com Wscript.Shell).Popup('hi')",0))(Window.Close)
ΠΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅ : @alexbuzzbee ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ Β«[ΡΡΠΎ] ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°ΡΠΈΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ATP Defender [...], ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ΅Π΄ΡΒ».
ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΡΠ°Π·ΡΠΌΠ½ΡΠΌ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ @Vittel Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅? ΠΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΊΠΎΠ΄ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ PowerShell Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠ΄Π°, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ powershell.exe
ΠΈΠ»ΠΈ pwsh.exe
, ΠΈ ΡΠΎΠ±ΡΠ°ΡΡ / ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PowerShell.
.NET Core 3.0 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ winexe, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ. Π£ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ, ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΈΠ°Ρ.
Π£ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ
Π― ΡΠΎΠΆΠ΅ Π±ΡΠ» Π² ΠΏΡΡΠΈ :-) ΠΠ°Π΄Π΅ΡΡΡ, Π²Ρ ΡΠΏΡΠΎΡΡΠΈΡΠ΅ CommandLineParameterParser
(ΡΠ΄Π°Π»ΠΈΡΠ΅ EarlyParse?).
Π Π΅ΡΠ΅Π½ΠΈΠ΅ @ mklement0 Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°ΡΠΈΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ ATP Defender (Π΅ΠΌΡ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ mshta
Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ PowerShell), ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, @alexbuzzbee , Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π²Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π²ΡΠ·ΠΎΠ² VBScript CreateObject()
/ JScript new ActiveXObject()
ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅; ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ mshta.exe
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ Π²ΠΎ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ.
@ mklement0 ATP ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ mshta
Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΌΡΡΡ Ρ pwsh
, Π° Π½Π΅ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ CreateObject()
.
ΠΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ, @alexbuzzbee.
Π― ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π» ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½Π° ΡΠΎΠΌ ΡΠ°ΠΊΡΠ΅, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· cmd.exe
) Π΄Π°Π΅Ρ Access is denied error.
ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΠ°ΡΠΈΡΠ½ΠΈΠΊΠ° Windows.
mshta vbscript:Execute("CreateObject(\"WScript.Shell\"): Window.Close")
Π‘ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»Π°Π·Π΅ΠΉΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΎΠΎΠ±ΡΠ°Π»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΊΡΡΡΠ° Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Π£ΡΠ° Π·Π° ΠΏΠΎΠΏΡΡΠΊΡ @ SteveL-MSFT ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
@ SteveL-MSFT, 20 ΡΠ΅Π²ΡΠ°Π»Ρ 2018 Π³.
Π― Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π» Π²ΠΊΠ»Π°Π΄ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ
pwshw.exe
@ SteveL-MSFT, 31.10.2019
.NET Core 3.0 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ winexe, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ. Π£ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ, ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΈΠ°Ρ.
ΠΡΠΎ Π±ΡΠ»ΠΎ Π΄Π°Π²Π½ΠΎ, ΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ (ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, cron?) Π Ρ.Π΄. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ PowerShell Core ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΌ , Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ? ΠΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ WSL?
ΠΡΠΎΡΠΎΡΠΈΠΏ Winexe ΡΠ°Π±ΠΎΡΠ°Π», Π½ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π³ΡΡΠ±, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π² 7.0. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΡΠΈΠ±Π»ΠΈΡΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π²Ρ Π½Π΅ ΡΠ·Π½Π°Π΅ΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΠ½Π° Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅Ρ. ΠΡΠ»ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ wscript.exe, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅-Windows, Linux ΠΈ macOS Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅ winexe, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ pwsh ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Windows ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠ²Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈ Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pwsh Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π·Π°Π΄Π°Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ cron ΠΈ Ρ.Π΄ ... ΡΠΆΠ΅.
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΡΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ VBScript Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΡΠ΅Π½Π°ΡΠΈΠΉ Powershell. ΠΡΠΎ Π΄Π°ΡΡ Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΊΡΠΈΠΏΡΠ°. Π Π²ΡΠ΅ ΡΡΠΎ Π±Π΅Π· Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°!
powershell.vbs:
Set args = CreateObject("System.Collections.ArrayList")
For Each oItem In Wscript.Arguments: args.Add oItem: Next
CreateObject("Wscript.Shell").Run("powershell -windowstyle hidden -File """ & Join(args.ToArray, """ """) & """"),0
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ PowerShell, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Windows, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π°Π΄Π°Ρ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ ΡΠΎΠ±ΡΡΠΈΠΈ ΠΈ Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ PowerShell Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠ±ΡΡΠΈΠΈ. Π― ΡΠΎΠ·Π΄Π°Π» Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌ EventTrigger (ΡΠΌ. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Technet ):
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><!-- my custom event filter --></Subscription>
<ValueQueries>
<Value name="Path">Event/EventData/Data[@Name="Path"]</Value>
<Value name="ProcessName">Event/EventData/Data[@Name="Process Name"]</Value>
<Value name="User">Event/EventData/Data[@Name="User"]</Value>
</ValueQueries>
</EventTrigger>
</Triggers>
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $(Path)
$(ProcessName)
$(User)
Π²Π½ΡΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. Windows Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠΎΠΉ notifier.ps1
Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΡΠΈΠ³Π³Π΅Ρ.
wscript.exe "C:\path\to\powershell.vbs" "C:\path\to\notifier.ps1" -User $(User) -ProcessName $(ProcessName) -Path $(Path)
powershell.vbs
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. π
ΠΡΠΈΠ³ΠΈΠ½Π°Π»: https://github.com/PowerShell/PowerShell/issues/3028#issuecomment -522375489
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» @Ciantic , Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ VB:
ΠΠΎΠΏΡΡΡΠΈΠΌ,
ps-run.vbs
putSet objShell = CreateObject("Wscript.Shell") Set args = Wscript.Arguments For Each arg In args objShell.Run("powershell -windowstyle hidden -executionpolicy bypass -noninteractive ""&"" ""'" & arg & "'"""),0 Next
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½ΡΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°Ρ Windows, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
wscript "C:\Path\To\ps-run.vbs" "C:\Other\Path\To\your-script.ps1"
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π·Π°Π΄Π°ΡΡ, Π½Π΅ Π²ΠΈΠ΄Ρ ΠΌΠΈΠ³Π°ΡΡΠΈΡ ΠΎΠΊΠΎΠ½.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ QB64 Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ EXE, ΡΡΠΎΠ±Ρ ΡΠΊΡΡΡΡ ΡΠΊΡΠΈΠΏΡ. QB64 - ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ C ++, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΠ΄ QBASIC ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» C ++. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ _SHELLHIDE
ΠΈΠ»ΠΈ SHELL _HIDE
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ PowerShell ΠΈΠ· EXE, Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Ρ ΠΎΠΊΠ½ΠΎ PowerShell. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ -WindowStyle Hidden
Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΡΠΈΠΌ. ΠΡΠΈΠΌΠ΅Ρ: SHELL$ = "PowerShell -WindowStyle Hidden -ExecutionPolicy Bypass " + CHR$(34) + "&'" + _STARTDIR$ + "\GetNewDate.ps1';exit $LASTEXITCODE" + CHR$(34):
a = _SHELLHIDE(SHELL$)
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΡΡΡΡ Π²Π΅ΡΡ EXE, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ $SCREENHIDE
ΡΡΠΎΠ±Ρ ΠΈΠΌ Π½Π΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠ΄ Π²ΡΡ
ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π΄ΡΡΠ³ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΊΠΎΠ΄Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ exit $LASTEXITCODE
ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ PowerShell, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² QB64 EXE. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠ΄ ΠΈΠ· QB64 EXE, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SYSTEM
Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ / ΡΠΊΡΠΈΠΏΡΠ°. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ»ΡΡΠ°Π» Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π° Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠΌ, ΠΊΠ°ΠΊ @ttimasdf , Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°:
Dim args()
Redim args(Wscript.Arguments.Count - 1)
For i = 0 To UBound(args): args(i) = Wscript.Arguments.Item(i): Next
CreateObject("Wscript.Shell").Run("powershell -Windowstyle Hidden -ExecutionPolicy Bypass -File """ & Join(args, """ """) & """"), 0
Π― ΡΠΎΡ
ΡΠ°Π½ΠΈΠ» -ExecutionPolicy Bypass
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΈΡ
ΠΈΠ΅ ΡΠ±ΠΎΠΈ, Π΅ΡΠ»ΠΈ Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Set-ExecutionPolicy
. ΠΠ΅ ΠΌΠΎΠ³Ρ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ pwshw.exe
.
https://github.com/SeidChr/RunHiddenConsole/releases/download/1.0.0-alpha.2/hiddenw.exe
@ Π ΠΎΠΉ-ΠΡΠ±ΠΈΡΠΎΠ½
ΠΠΎΡ ΡΠ°ΠΊ. ΠΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ππ
(Srsly. ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ pwshw.exe, ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠΉ ΠΏΡΡΡ, ΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ)
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π·Π½Π°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° pwsh ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ.
ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊΠ°Ρ ΡΠΆ ΠΈ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π·Π½Π°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° pwsh ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½Π·Π΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ².
Π― Π½Π°ΡΡΡΠΎΠΈΠ» ΡΡΠ΅Π½Π°ΡΠΈΠΉ PowerShell Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ· Elgato Stream Deck, ΠΈ ΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ -Noninteractive
ΠΈ -WindowStyle hidden
, Π½ΠΎ ΠΎΠ½ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²ΡΠΏΠ»ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
pwsh -Noninteractive -WindowStyle hidden -Command "...."
Π― ΠΎΠΆΠΈΠ΄Π°Ρ, ΡΡΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠ΅Π²ΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ pwshw.
Π― Π½Π°ΡΡΡΠΎΠΈΠ» ΡΡΠ΅Π½Π°ΡΠΈΠΉ PowerShell Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ· Elgato Stream Deck, ΠΈ ΠΎΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
-Noninteractive
ΠΈ-WindowStyle hidden
, Π½ΠΎ ΠΎΠ½ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²ΡΠΏΠ»ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.pwsh -Noninteractive -WindowStyle hidden -Command "...."
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π²ΡΡΠ΅. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ Steam-ΠΊΠΎΠ»ΠΎΠ΄ΠΎΠΉ ΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ Π·Π°ΠΏΡΡΠΊΠ°
Π Π²Π°ΡΠ΅ΠΌΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ: ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΈ Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). ΠΡΠ»ΠΈ Π±Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ [1], Π½ΠΎ ΡΡΠΎ Π΄Π°Π»ΠΎ Π±Ρ PowerShell Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ _Π²ΡΠ±ΠΈΡΠ°ΡΡ, Π²ΡΠ΄Π΅Π»ΡΡΡ Π»ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ_ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°ΠΏΡΠΎΡ Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
@DHowett ΡΠ°ΠΊ ΡΠ°Π΄, ΡΡΠΎ Ρ ΡΠ·Π½Π°Π» ΠΎΠ± ΡΡΠΎΠΌ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ
ΠΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²ΡΠ·ΡΠ²Π°Ρ PowerShell Π±Π΅Π· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Windows? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²ΡΠ·ΡΠ²Π°Ρ pwsh.exe ΠΏΡΡΠΌΠΎ ΠΈΠ· Elgato Stream Deck. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π’Π΅ΡΠΌΠΈΠ½Π°Π»Π° Π½Π΅ ΡΠ΅ΡΠΈΡ ΡΡΠΎΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ?
@ pcgeek86 Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠΉΡΠ΅ ΠΈΠΌΠ΅Π½ΠΈ
@DHowett Π― ΡΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ Windows? ΠΠ½Π°ΡΠΈΡ, ΠΊΠΎΠΌΡ-ΡΠΎ, ΠΊΡΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Windows, Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ? π€
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅Π΅ΡΡ Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Ρ consoleAllocationPolicy, ΠΈΠΌΠ΅ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ inheritOnly, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈΠ· ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° .
ΠΠ°ΠΊΠΎΠ²ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ?
@DHowett Π΄Π»Ρ pwsh, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ»Π°Π³, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ conpty, ΡΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡΡ, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ API, ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ
Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ PowerShell, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΆΠ΅Π»Π°ΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Β«Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅Β» Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ.
ΠΠ½Π°ΡΠΈΡ, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ PowerShell, ΠΈ PowerShell ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ½ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ?
ΠΡΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΌΠ½Π΅ ΠΌΠΎΠΉ PR, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΡΠ°Π»ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ AllocConsole.
Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ (@ vexx32)
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΌΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π’Π΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ π
ΠΠ°ΠΊΠΎΠ²ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Π½ΠΈΠΉ (@iSazonov)
Π‘ΠΊΠ°Π·Π°ΡΡ Β«ExplorerΒ» Π±ΡΠ»ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΡΡΠ°Π·ΠΈΡΡ Β«Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΠ΅ Π½Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΒ» ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»ΠΎΠ². ΠΡΠ΄ΡΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, _Π²ΡΠ΅, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ inheritOnly
Π±Π΅Π· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π°Π³ (@ SteveL-MSFT)
Π ΡΡΠ°ΡΡΡΡ, Π² PowerShell ΡΡΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ WindowStyle
. Π Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ: Β«_i Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ AllocConsole()
_Β» (ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ API!), ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π·Π°ΠΏΡΠΎΡΠΈΠ» ΡΠΊΡΡΡΡΠΉ Π·Π°ΠΏΡΡΠΊ. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π² (pwsh), ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ conhost. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ PowerShell ΡΠΆΠ΅ Π½Π°ΡΡΡΠΎΠ΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄Π΅Π»ΡΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΡΡΠΎΠΊ Π΄ΠΎ / ΠΏΠΎΡΠ»Π΅ Β«ΡΠΊΡΡΡΠΎΠΉΒ» ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ PowerShell (@iSazonov)
Π ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ PowerShell ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ ΡΡΠΈΠΌ (ΡΠΌ. ΠΠΎΠΉ ΠΎΡΠ²Π΅Ρ Π‘ΡΠΈΠ²Ρ Π²ΡΡΠ΅). ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ _Π²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ_.
ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ AllocConsole()
/ AttachConsole()
ΠΊΠ°ΠΊ Π²Ρ Π΄Π΅Π»Π°Π»ΠΈ Π² PR, ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ AllocConsole()
ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±ΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° (cmd, pwsh, bash, ish) Π΄ΠΎΠ»ΠΆΠ½Π° _ ΠΆΠ΄Π°ΡΡ_ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ( pwshw
), ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Windows, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ AttachConsole()
ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π° ΡΠ²ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Ρ
ΠΎΡΡΠΈΠ½Π³Π°, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄ΡΡ Π±ΠΎΡΠΎΡΡΡΡ Π·Π° ΠΏΡΠ°Π²ΠΎ ΡΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° / Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ² Attach _ Π½ΠΈΠΊΠΎΠ³Π΄Π°_ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Windows, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π°Ρ ΠΏΠΎΡΠΎΠ΄ΠΈΠ»Π° (Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅).
@DHowett Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΡΡΠ½ΠΎ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ PowerShell Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ SUBSYSTEM_GUI ΠΈ inheritOnly?
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ SUBSYSTEM_CUI
ΠΈ inheritOnly
Π±ΡΠ΄ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ PowerShell. ΠΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
$SHELL
) Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ Π²ΡΡ
ΠΎΠ΄Π° pwsh ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ ( SUBSYSTEM_CUI
)inheritOnly
)ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΈΠ· ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° / Π·Π°Π΄Π°Ρ, pwsh ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ (Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡOnly)
Π₯ΠΌ, Π° ΠΎΡΠΊΡΠ΄Π° PowerShell ΠΌΠΎΠΆΠ΅Ρ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° - ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΠ°?
Π― Π½Π΅ Π²Π΅ΡΡ, ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ.
ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ (C ++):
int main() {
auto a{ _parseArgs() };
if (a.WindowStyle != WindowStyle::Hidden)
{
AllocConsole();
}
}
PowerShell ΡΠΆΠ΅ Π·Π½Π°Π΅Ρ , ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π»ΠΈ ΠΎΠΊΠ½ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠΈΠ» Π»ΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ - ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Ρ ΠΎΡΠΎΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
@DHowett as @ vexx32 ΡΠΏΠΎΠΌΡΠ½ΡΠ», ΡΡΠΎ Π² Π΄ΠΈΠΊΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎ Server 2012 / R2 ΠΈ 2016, ΠΏΠΎΡΡΠΎΠΌΡ, Ρ ΠΎΡΡ Π΄Π»Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΠ‘ Win10 ΠΈ Server 2019 ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΄Π»Ρ PowerShell Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎ, ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ @ SteveL-MSFT
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅
ΡΡΠΎ Π±ΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° (cmd, pwsh, bash, ish) Π΄ΠΎΠ»ΠΆΠ½Π° Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ (pwshw), ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π΄Π»Ρ PowerShell. Π― ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ PowerShell Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅. ΠΠΎΠ»ΡΡΠΈΡ Π»ΠΈ PowerShell ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² PowerShell?
PowerShell Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Ρ ΠΏΠΎΠ΄Π½ΡΠ»ΠΈ Π²Π°ΠΆΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½Π½ΡΠ΅ _ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ "ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ", Π±ΡΠ΄ΡΡ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΎΠΊΠ½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΈ ΡΡΠΎ _ ΡΠΆΠ°ΡΠ½ΠΎ_. Π― Π²Π΅ΡΠ½ΡΡΡ ΠΊ ΡΡΠΎΠΌΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ Ρ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΠ‘ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ
ΠΠ°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π΄Π°ΠΆΠ΅ ΠΎΡΠ΅Π½ΠΈΡΡ Π΅Π΅ Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ π Π½ΠΎ Ρ Π½Π° 100% ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ.
ΠΡΠΎΡΡΠΎ Ρ ΠΎΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ PowerShell ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΅ΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΊΡΡΡΠΈΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Autohotkey ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π°Π³ Β«Π‘ΠΊΡΡΡΡΒ» Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΏΡΡΠΊΠ°.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ
powershellw.exe
ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. Π’ΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈjavaw.exe
ΠΈpythonw.exe
.