Как стать автором
Обновить
-2
0

Пользователь

Отправить сообщение

Является ли проживание в Белоруссии основанием для снятия с воинского учета (страна-то вроде другая) и достаточно ли договора длительной аренды как доказательства долговременного отсутствия в россии (внж же там вроде не получить, а на границе штамп не ставят)?

Здравствуйте.

Обычно отключаю режим сна по закрытии крышки. Но тоже сталкивался с тем что в сумке ноут оказался включенным.

Предлагаю два варианта решения на ваше усмотрение:

Простой: В Startup добавить скрипт который запустится при выходе ноута из режима сна и уснет обратно если пользовать никак не отреагирует.

Сложнее: В Startup добавить скрипт который будет проверять температуру материнки и если она выше критической отправит ноут в сон.

Гугл говорит что для VBS команда отправления в сон с задержкой выглядит следующим образом:

Wscript.Sleep (5*60*1000) ' ждем 5 минут
createobject("WScript.Shell").run "rundll32.exe powrprof.dll,SetSuspendState Sleep",1,false 

Для отключения достаточно закрыть окно процесса.

Скрипт с оценкой температуры зависит от железа , запускается в фоне и в случае включения в сумке отработает. (Вполне возможно есть даже встроенные триггеры на повышение температуры. )

Мне на Dell XPS9570 помогли забороть эти проблемы две настройки в ключе Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power

EnableInputSuppression = 1 и  EnforceDisconnectedStandby = 1.

Особенно вторая оказалась очень полезной. Ее как-то выкатил Dell через обновление. Ноутбук не подключается к сети в результате и ведет себя почти как при S3.

Powershell:

$WShell = New-Object -Com "Wscript.Shell"; while (1) {$WShell.SendKeys("{SCROLLLOCK}"); sleep 60}

Можно эмулировать двойное нажатие Scroll Lock раз в несколько минут.
file key_presser.vbs:

rem start /b key_presser.vbs

Dim objResult

Set objShell = WScript.CreateObject("WScript.Shell")    

Do While True
  objResult = objShell.sendkeys("{SCROLLLOCK}{SCROLLLOCK}")
  Wscript.Sleep (5*60*1000)
Loop
Вот тут описано как сделать, чтобы появилось. Путано немного, но смысл в том, чтобы сделать REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\BD3B718A-0680-4D9D-8AB2-E1D2B4AC806D /v Attributes /t REG_DWORD /d 2 /f

Раньше использовал скрипт с пробросом порта через ssh . В итоге юзер подключался типа на localhost :) . Неудобно админить ключи юзеров оказалось и не могли с андроидов и ай-хрени подключаться.

Позже - просто открытие порта по icmp-кнокинг. Подключайся с чего хочешь. Но индивидуально юзеров админить нереально и проблемы с подключениями из плохого интернета.

В итоге нарисовал сайт на django с авторизацией через домен. Пользователю показаны кнопочки в соответствии с его группами в AD . По нажатию внешний ip временно добавляется в адрес-лист, генерится рдп-ярлык и скачивается пользователем. Если кнопка не рдп-сервера, а компа юзера, предварительно WoL на комп. - По моему мнению, очень неплохой компромисс получился между удобством и защитой.

Украдено подсмотрено здесь (10-летней давности, но у меня работает):

#Checks for IP addresses that used incorrect password more than 10 times
#within 24 hours and blocks them using a firewall rule 'fail2ban'

#Check only last 24 hours
$DT = [DateTime]::Now.AddHours(-24)

#Select Ip addresses that has audit failure
$l = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DT | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }

#Get ip adresses, that have more than 10 wrong logins
$g = $l | group-object -property IpAddress | where {$_.Count -gt 10} | Select -property Name

#Get firewall object
$fw = New-Object -ComObject hnetcfg.fwpolicy2

#Get firewall rule named 'BlockAttackers' (must be created manually)
$ar = $fw.rules | where {$_.name -eq 'fail2ban'}

#Split the existing IPs into an array so we can search it for existing IPs
$arRemote = $ar.RemoteAddresses -split(',')

#Only collect IPs that aren't already in the firewall rule
$w = $g | where {$_.Name.Length -gt 1 -and !($arRemote -contains $_.Name + '/255.255.255.255') }

#Add the new IPs to firewall rule
$w| %{
  if ($ar.RemoteAddresses -eq '*') {
    $ar.remoteaddresses = $_.Name
  }else{
    $ar.remoteaddresses += ',' + $_.Name
  }
}

#Write to logfile
if ($w.length -gt 1) {
  $w| %{(Get-Date).ToString() + ' ' + $_.Name >> '.\blocked.txt'}
}

эээ

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2375 connectaddress=127.0.0.1 connectport=2375
netsh advfirewall firewall add rule name="Open Port 2375 for Docker Desktop" dir=in action=allow protocol=TCP localport=2375

Если нужно быстро и не очень точно, то есть старая добрая формула Бхаскара, работающая на отрезке от 0 до 180°.
image
НЛО прилетело и опубликовало эту надпись здесь

Запустил это Г.. под kvm

kvm
(swtpm socket --tpm2 --tpmstate dir=/mnt/qemuimg/win11tpm20 \
         --ctrl type=unixio,path=/mnt/qemuimg/win11tpm20/swtpm-sock \
         --log level=20)&

qemu-system-x86_64 -cpu host -smp 4 -enable-kvm -m 8192 \
 -name Win11 -machine pc,accel=kvm,kernel_irqchip=on,usb=off,vmport=on,mem-merge=on,dump-guest-core=off \
 -vga none \
 -device qxl-vga \
 -spice addr=127.0.0.7,port=7777,password=pass,agent-mouse=on,unix=off,ipv6=off \
 -device virtio-serial-pci -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
 -chardev spicevmc,id=spicechannel0,name=vdagent \
 -no-fd-bootchk -serial none -parallel none -no-user-config -nodefaults -msg timestamp=off \
 -boot once=c,menu=off \
 -net nic,model=virtio,addr=0x4,macaddr=c0:8b:2f:f4:5c:ea -net tap,ifname=tap0,script=/bin/true \
 -device virtio-balloon \
 -chardev socket,id=chrtpm,path=/mnt/qemuimg/win11tpm20/swtpm-sock \
 -tpmdev emulator,id=tpm0,chardev=chrtpm \
 -device tpm-tis,tpmdev=tpm0 \
 -drive file="/mnt/qemuimg/Win11.qcow2",if=virtio,format=qcow2,aio=native,cache.direct=on,index=0 \
 -vnc none
/// sin input is radian +-2pi, output 1.0:-1.0.
/// min |x|=2.62879913375e-23 error 2L
float sin_f(float value_rad)
{
    float ret, rev, res;
//  if  (abs_f(value_rad) < 2.62879913375e-23f ) return value_rad;
    ret = value_rad;
    if (ret < (PI/(-2.0f))) ret += Pi2;
    if (ret > (Pi+ PI/2.0f)) ret -= Pi2;
    else if (ret > (PI/2.0f)) ret = PI - ret;
    rev = ret * ret;
    res = rev * -2.50516549727e-08f;
    res += 2.75573984254e-06f;
    res *= rev; res += -0.000198412570171f;
    res *= rev; res += 0.00833333469927f;
    res *= rev; res += -0.166666656733f;
    res *= rev; res *= ret; res += ret;
    return res;
};

Учитывалась ошибка округления констант, общая ошибка ограниченного ряда, и ошибка приближения. Даа, это три разных типы ошибки. В сумме получилось 21 бита точности мантисы, что чуть выше значений вашего графика для Трейлера. Накопительное значение ошибки 0.1561978 младшего бита матиссы. Почти все ошибки 1L, в двойку ещё нужно попасть.

До значений +1, -1 - функция доходит.

Запустил в Debian 10 в виртуальной машине QEMU 3.1 на древнем процессоре AMD Phenom II X4 945

qemu-system-x86_64 -machine type=q35,accel=kvm -enable-kvm -cpu host -nodefaults -usb -device usb-tablet -m 3G -smp 3 -vga qxl -hda win11.img -cdrom Win11_Russian_x64.iso

Для успешной установки потребовалась правка реестра
[HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig]
"BypassTPMCheck"=dword:00000001
"BypassSecureBootCheck"=dword:00000001

Screenshot
AutoUnattend.xml для отключения привязки к TPM и требования онлайн аккаунта в Home версии
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>ru-RU; en-US</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>ru-RU</UILanguage>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserData>
                <!-- KMS keys https://docs.microsoft.com/windows-server/get-started/kmsclientkeys -->
                <ProductKey>
                    <Key></Key>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
            </UserData>
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Order>1</Order>
                    <Description>BypassTPMCheck</Description>
                    <Path>cmd /c reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassTPMCheck" /t REG_DWORD /d 1</Path>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Order>2</Order>
                    <Description>BypassSecureBootCheck</Description>
                    <Path>cmd /c reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassSecureBootCheck" /t REG_DWORD /d 1</Path>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Order>3</Order>
                    <Description>BypassRAMCheck</Description>
                    <Path>cmd /c reg add "HKLM\SYSTEM\Setup\LabConfig" /v "BypassRAMCheck" /t REG_DWORD /d 1</Path>
                </RunSynchronousCommand>
             </RunSynchronous>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>ru-RU; en-US</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>ru-RU</UILanguage>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>3</ProtectYourPC>
            </OOBE>
        </component>
    </settings>
</unattend>
Там, где не нужна особая точность, можно использовать формулу Бхаскара:
sinx = 16x(πx)/(5π²−4x(πx)), x ∈ [0, π]
Она даёт максимальную ошибку 0.0016.

Информация

В рейтинге
Не участвует
Откуда
Архангельск, Архангельская обл., Россия
Дата рождения
Зарегистрирован
Активность