PowerShell для поиска строки во всех папках пользователей и добавления строки, если она не существует - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь написать скрипт, который будет

  1. Искать определенную строку в файле, который находится в каждом профиле пользователя на C: \ users \ USERNAME \ AppData \ Roaming \ Nextcloud \ nextcloud.cfg
  2. Если строка
    "[BWLimit]","downloadLimit=250","uploadLimit=250","useDownloadLimit=1","useUploadLimit=1"
    
    существует, файл не следует трогать
  3. Если строка не существует, ее следует добавить

Что я делал доТеперь я создал скрипт, используя примеры с этого замечательного сайта, который работает, НО он работает только тогда, когда я запускаю его локально. Мне нужно, чтобы скрипт работал удаленно (я использую PDQ, чтобы протолкнуть скрипт)

Сценарий выглядит следующим образом

$content = Get-Content "C:\users\$($env:USERNAME)\AppData\Roaming\Nextcloud\nextcloud.cfg"
$sites   = "[BWLimit]","downloadLimit=250","uploadLimit=250","useDownloadLimit=1","useUploadLimit=1"

if (!(Test-Path "C:\users\$($env:USERNAME)\AppData\Roaming\Nextcloud\nextcloud.cfg")) {
    New-Item -Path "C:\users\$($env:USERNAME)\AppData\Roaming\Nextcloud" -Name nextcloud.cfg -Type "file"
} else {
    foreach ($site in $sites) {
        if (-not ($content -contains $site)) {
            $site | Out-File "C:\users\$($env:USERNAME)\AppData\Roaming\Nextcloud\nextcloud.cfg" -Append -Encoding utf8
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...