Get-childitem и Set-content для каталога программных файлов с помощью Powershell - PullRequest
0 голосов
/ 05 августа 2020

Кто угодно мог бы мне помочь с этим, пожалуйста. У меня есть рабочий сценарий, работающий на windows 10 с psversion 5 и выше, попробовал его на windows 7 с psversion 2, он работает только тогда, когда я тестирую другой файл, расположенный на рабочем столе или в загрузках, но не на этих двух путях на script.

Я также пробовал тестировать каждую строку, чтобы убедиться, что они работают, и get-childitem -path "C: .... показывает желаемые результаты

    Directory: C:\Users\user1\OpenVPN\config\test-UDP-vpn


    Mode                LastWriteTime     Length Name
    ----                -------------     ------ ----
   -a---        08/05/2020   8:05 AM        657 test-tls.key
   -a---        08/05/2020   8:12 AM        337 test.ovpn
   -a---        08/05/2020   8:05 AM       3773 test.p12

Я запускаю сценарий от имени администратора (также вошел в систему как администратор), убедился, что файл не используется и уже выполнил обход set-executionpolicy, он запускается, но не возвращает никаких ошибок или чего-либо еще. Цените вашу помощь

$include = @("*ovpn*")
$files = Get-ChildItem -Path "C:\Program Files\OpenVPN\config","C:\Users\$env:USERNAME\OpenVPN\config\*UDP4*" -Recurse -include $include | 
select-object -expandproperty fullname

foreach ($file in $files) {
$newtext = @()
$contents = get-content $file
foreach ($line in $contents) {
    if ($line -eq "remote 1.1.1.1 1194 udp") {
        $line = $line.Replace("1.1.1.1", "vpn1.domain.com")
                    $newtext += $line
                    $newtext += "remote vpn2.domain.com 1194 udp"
                    $newtext += "remote-random"
            } elseif ($line -eq "resolv-retry infinite") {
                    $line = $line.Replace("resolv-retry infinite", "resolv-retry 60")
                    $newtext += $line
            } else {
                    $newtext += $line
    }
}
$newtext | set-content $file
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...