XML файл не может быть добавлен / сохранен / обновлен с помощью powershell - PullRequest
0 голосов
/ 22 апреля 2020

Я пытался автоматизировать добавление общих принтеров на наших сетевых серверах и добавить их в файл XML, чтобы я мог импортировать xml в настройки принтера GPO.

Вот код Я использую (test.csv содержит 3 сервера):

$shops = (Import-Csv C:\test.csv).Name
foreach ($shop in $shops)
    { 
        $Serverip = (Test-Connection -ComputerName $shop -count 1).IPV4Address.IPaddressToString
        $a,$b,$c,$d = $Serverip.split(".")

        $FilterMin = "$a.$b.$c.0"
        $FilterMax = "$a.$b.$c.254"


        $Server = (Get-Printer -ComputerName $shop | where {$_.PortName -like "10.1*" -and $_.Shared -like "True"}).ComputerName
        $Printer = (Get-Printer -ComputerName $shop | where {$_.PortName -like "10.1*" -and $_.Shared -like "True"}).Name
        $SharedP = "\\" + $server + "\" + $Printer

        $path = 'C:\Desktop\printers_test.xml'
        $xml = [xml](Get-Content $path)


        $CurrentDateTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
        $uid = "{" + [System.Guid]::NewGuid().toString() + "}"


        $newPrinter = $xml.Printers.SharedPrinter.Clone()


        $newprinter.uid="$uid"
        $newPrinter.status="$Printer"
        $newPrinter.name="$printer"
        $newPrinter.changed="$CurrentDateTime"

    # XML Properties
        $newPrinter.Properties.default="1"
        $newprinter.Properties.path="$SharedP"
        $newPrinter.Properties.action="R"

    # XML Filters
        $newPrinter.Filters.FilterIpRange.max="$FilterMax"
        $newPrinter.Filters.FilterIpRange.min="$FilterMin"

        $xml.Printers.AppendChild($newPrinter)

        $xml.Save($path)


    }

Почему-то при запуске l oop я получаю следующие ошибки:

Свойство 'uid' не может быть найдено на этом объекте. Убедитесь, что свойство существует и может быть установлено.

Свойство 'status' не может быть найдено для этого объекта. Убедитесь, что свойство существует и может быть установлено.

Свойство 'имя' не может быть найдено для этого объекта. Убедитесь, что свойство существует и может быть установлено.

Похоже, что настройки из файла XML очищаются во время l oop.

Я что-то делаю неправильные или отсутствующие шаги?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...