Powershell: Powershell -WindowStyle Hidden ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ врСмя

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 22 янв. 2017  Β·  90ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: PowerShell/PowerShell

ДСйствия ΠΏΠΎ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡŽ

Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ 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
Issue-Enhancement OS-Windows WG-Interactive-Console

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ powershellw.exe ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ с графичСским интСрфСйсом, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ консоли. Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ javaw.exe ΠΈ pythonw.exe .

ВсС 90 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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 ΠΈ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
Но, Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ консоли.

Π― создал ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ консоли 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 ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

  • Для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрыто ΠΎΡ‚ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ)
  • Для запуска сцСнариСв, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π±Π΅Π· Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° консоли (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сцСнариСв, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс WinForms).

Для запуска скриптов, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌβ€¦

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌ -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 для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ запуска сцСнариСв Π² сСансС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

  • Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ быстроС Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠΏΡ‹ΡˆΠΊΠΈ Π² ΠΌΠΎΠΈΡ… систСмах
  • Π― ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ silentCMD, описанный Π²Ρ‹ΡˆΠ΅, Π½ΠΎ для этого трСбуСтся net3.5, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ установлСн Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сторонних систСмах, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ Π΅Π³ΠΎ.

Π”ΡƒΠΌΠ°ΡŽ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅Ρ‚.

Π’Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ 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 для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ PowerShell.

Π― Π»ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ 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 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"

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ часто Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, Π½Π΅ видя ΠΌΠΈΠ³Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 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. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

  1. cmd ( $SHELL ) Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π° pwsh ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ ( SUBSYSTEM_CUI )
  2. ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС Π΅Π³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° / Π·Π°Π΄Π°Ρ‡, pwsh ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° консоли ( inheritOnly )
  3. ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС Π΅Π³ΠΎ ΠΈΠ· cmd / pwsh / (консольная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°), pwsh автоматичСски ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΠΊΠ½ΠΎ консоли

ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС Π΅Π³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° / Π·Π°Π΄Π°Ρ‡, 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 ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„Π»Π°Π³ Β«Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒΒ» для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ запуска.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ