169 похожих чатов

Кину сюда, может ткнёте пальцем в кривые места Remove-NetIPHttpsCertBinding Add-NetIPHttpsCertBinding -ApplicationId "{00112233-4455-6677-8899-AABBCCDDEEFF}"

-CertificateHash ((Get-ChildItem -Path cert:\LocalMachine\My|Where-Object{$_.FriendlyName -eq "WinCC8"}).Thumbprint) -CertificateStoreName "My" -IpPort "0.0.0.0:443" -NullEncryption $false
$HttpListener = New-Object System.Net.HttpListener
$HttpListener.Prefixes.Add("https://+:443/")
$HttpListener.Start()
while ($HttpListener.IsListening) {
$HttpContext = $HttpListener.GetContext()
$HttpRequest = $HttpContext.Request
$HttpResponse = $HttpContext.Response
$RawUrl = $HttpRequest.RawUrl
if($RawUrl -eq "/exit"){$HttpResponse.StatusCode=302;$HttpResponse.AddHeader("location","https://"+($HttpRequest.Url|Select-String -Pattern 'https://(.+?)/').Matches.Groups[1].Value+":444")}
else{
$HttpResponse.StatusCode = 200;$HttpResponse.Headers.Add("Content-Type","text/html; charset=UTF-8")
$section="main";$page="index"
$req=($HttpRequest.Url|Select-String -Pattern '/([^?#/]+)' -AllMatches).Matches
if($req.Length -eq 3){$section=$req[1].Groups[1].Value;$page=$req[2].Groups[1].Value}
$buffer=Get-Content -Path ($PWD.Path+"\pages\"+$section+"\"+$page+".html") -Encoding UTF8
if($buffer -ne $null){
$tags_name=@{};($buffer|Select-String -Pattern '%(.+?)%\.\w+' -AllMatches).Matches.ForEach({if (-Not $tags_name.ContainsKey($_.Groups[1].Value)){$tags_name.Add($_.Groups[1].Value,$null)}})
try{
$TagSet=(New-Object -ComObject CCHMIRuntime.HMIRuntime).Tags.CreateTagSet()
$tags_name.Keys.ForEach({$TagSet.Add($_)})
$TagSet.Read()
}catch{}
if($TagSet -ne $null){$buffer=$buffer -replace '%(.+?)%\.(\w+)', {$TagSet[$_.Groups[1].Value].($_.Groups[2].Value)}}
$ResponseBuffer = [System.Text.Encoding]::UTF8.GetBytes($buffer)
$HttpResponse.ContentLength64 = $ResponseBuffer.Length
$HttpResponse.OutputStream.Write($ResponseBuffer,0,$ResponseBuffer.Length)
}
}$HttpResponse.Close()
}$HttpListener.Stop()

6 ответов

90 просмотров

Выглядит конечно жестоко) Я пробовал в контейнере небольшие вебсервисы на поше поднимать в докере, юзая вот эту штуку - https://github.com/Badgerati/Pode В целом достаточно прикольно получилось)

Dmitriy Novikov
Выглядит конечно жестоко) Я пробовал в контейнере ...

Я, если честно, и ожидал, что человек возьмёт какой-то фреймворк на pwsh. А он прям так взял и сразу быка за рога.

notme- Автор вопроса
Dr. Friedrich von Never
Я, если честно, и ожидал, что человек возьмёт како...

Мне нужно было чтобы минимум внешних зависимостей, лучше всего один файл (не считая шаблонов страниц) А так по сути нагуглил все кирпичики и просто вместе их сложил )

notme- Автор вопроса
notme
Мне нужно было чтобы минимум внешних зависимостей,...

Ещё бы PS 5.1.xxxx не подложил свинью со своим зависанием - вопще ляпота б была!

если этот, то он же однопоточный

notme- Автор вопроса
L M
если этот, то он же однопоточный

Да, однопоточный, на JS у меня тоже однопоточное синхронное решение

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта