Попытка создать скрипт, который получит мой отфильтрованный список Get-Adcomputer, а затем запустить команду на каждом

Во-первых, я очень новичок в powershell. Каждый раз, когда я думаю, что я понимаю логику, я иду WTF.. Если бы это был bash, это было бы так легко и т. Д..

что я пытаюсь сделать именно...

Получить все компьютеры из AD, которые встречают Xiopwb* критерии. Как только у меня есть список, мне нужно изменить разрешения на \\Xiopwb20\Nsiwebroot Директория только для администраторов домена и группы безопасности "webadmins"

Моя логика:

Получить все компьютеры из AD, которые встречаются Xio*PWB*Возьмите только НАИМЕНОВАНИЕ объектов в этом списке навсегда "имя" в этом списке сделать Get-ACL \\Name from list\Nsiwebrootудалить * добавить пользователя / группу.

Что я имею:

PS C:\Windows\system32> Get-ADComputer -filter * | Where-Object {$_.Name -like "xiopwb*"} | Select Name |  ForEach-Object { Get-Acl \\$_.Name\nsiwebroot}

все до "ForEach" работает... Я получаю только имена ПК, которые мне нужны, и т.д..

По-простому, мне не нужен скрипт на 100 строк.

Спасибо

** Обновить **

это двойной \ его просто не показывает... не знаю почему

Похоже, он делает то, что я хочу до определенной степени. Однако его выплевывать формат в стиле фанк. @{Name=XIOPWB09}

PS C:\Windows\system32> Get-ADComputer -filter * | Where-Object {$_.Name -like "xiopwb*"} | Select Name | ForEach-Object {get-acl "\\$_\D$\nsiwebroot"} 

get-acl: Невозможно найти путь '\@{Name=XIOPWB09}\D$\nsiwebroot', так как он не существует. В строке:1 символ:99 + ... opwb*"} | Выбрать имя | ForEach-Object {get-acl "\$_\D$\nsiwebroot"} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (:) [Get-Acl], ItemNotFoundException + FullyQualifiedErrorId: GetAcl_PathNotFound_Exception,Microsoft.PowerShell.Commands.GetAclCommand

get-acl: Невозможно найти путь '\@{Name=XIOPWB06}\D$\nsiwebroot', так как он не существует. В строке:1 символ:99 + ... opwb*"} | Выбрать имя | ForEach-Object {get-acl "\$_\D$\nsiwebroot"} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (:) [Get-Acl], ItemNotFoundException + FullyQualifiedErrorId: GetAcl_PathNotFound_Exception,Microsoft.PowerShell.Commands.GetAclCommand

1 ответ

"Select Namemsgstr "возвращает объект с именем заголовка таблицы."Select -ExpandProperty Name"Это то, что нужно здесь, что преобразует его в строку.

С Уважением,

kvprasoon

Другие вопросы по тегам