Я пишу сценарий, который берет имя принтера из файла csv, и для каждого принтера предполагается изменить настройки принтера xml, изменить имя принтера, создать новый guid и вывести новый файл xml. Это почти работает. Проблема в том, что скрипт также изменяет clsid, потому что он имеет то же регулярное выражение, что и uid. Предполагается, что изменится только uid, другими словами: только второе вхождение соответствующего регулярного выражения.
Вот как выглядит файл xml:
<SharedPrinter clsid="{9A5E9697-9095-436d-A0EE-4D128FDFBCE5}" name="cop-fibu-eink" status="cop-fibu-eink" image="1" changed="2021-02-18 14:52:29" uid="{7D783062-5840-4CBD-BE9A-6334FD87A8D6}" removePolicy="1" userContext="1" bypassErrors="1"><Properties action="R" comment="" path="\\srv-print01\cop-fibu-eink" location="" default="1" skipLocal="0" deleteAll="0" persistent="0" deleteMaps="0" port=""/><Filters><FilterGroup bool="AND" not="0" name="EKBDOM1\cop-fibu-eink" sid="S-1-5-21-356607561-1380008178-1848903544-16152" userContext="0" primaryGroup="0" localGroup="0"/></Filters></SharedPrinter>
А это скрипт Powershell:
Import-Csv .\printer_groups.csv | ForEach-Object {
$uid = ([guid]::NewGuid()).guid
((Get-Content -path C:\pc_inst\druckerliste\cop-it.xml -Raw) -replace "cop-fibu-eink", $($_.name)` -replace "\{[0-9a-z\-]*\}", $uid ) | Set-Content -Path .\xmls\$($_.name).xml
}
Я не могу понять это. Надеюсь, вы, ребята, можете мне помочь. (:
Export-Clixml
вместоSet-Content
- person PowerCat   schedule 25.02.2021