Size: a a a

PowerShellRus - о Powershell (и не только) на русском

2020 February 26

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Если у тебя даже это отваливается
$userShortList = @(Get-ADGroupMember -Identity 'Sparkles' -Recursive:$true )

То используй
$userShortList = @( (Get-ADGroup -Identity 'Sparkles' -Properties @('Members')).Members )
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Vadim
Добрый день!
Подскажите как решить проблему при выполнении скрипта
Import-Module ActiveDirectory
Import-Csv "C:\Scripts\SetADuser\Setaduser25-02.csv" -Delimiter ";" -Encoding "Default"| ForEach-Object {
Set-ADUser $_.SamAccountName -Title $_.Title -Office $_.office -OfficePhone $_.OfficePhone -Department $_.Department}

Если попадается пустое поле ругается на не допустимое значение.
Пробовал выделять значения переменных разными ковычками в случае 'просто випсывает переменную' в случае "подставляет всю строку из csv" пробовал различные комбинации, не помогло
Полагаю, дело в том, что в 'Set-ADUser' каждый аргумент проходит валидацию: 'ValidateNotNullOrEmpty'. Логично, что при вызове командлета с указанными аргументами и передаче им пустых значений или значений, равных '$null' вы получаете ошибку.
Советую набор аргументов формировать только из тех, для которых в текущей строке исходной таблицы значения существуют.
источник

4

4c74356b41 in PowerShellRus - о Powershell (и не только) на русском
прокси функции)))
источник

WW

Wadik Wadkovich in PowerShellRus - о Powershell (и не только) на русском
Добрый день. Пытаюсь написать скрипт который  выбирает определенные компьютеры с AD , затем каждый проверяет на доступность и ищет установленные там ПО. Если определенного софта нету в списке, имя компьютера записывает в файлик. Можете помочь в этом ?
источник

WW

Wadik Wadkovich in PowerShellRus - о Powershell (и не только) на русском
import-module activedirectory


Get-ADComputer -Filter * |
Where-Object {$a=$_.name; $_.Name -like "RND*"} |
Sort-Object name | Select-Object name | Export-csv C:\RNDComputers.csv -NoTypeInformation


import-csv C:\RNDComputers.csv | foreach{
   $a=$_.name
   if ((Test-connection $a -count 2 -quiet) -eq "True")
       {    
        Get-WmiObject -Class Win32_Product | Where-Object {$s=$_.Name; $_.Name -ne "ESET Management Agent"} | Select-Object $a | Export-csv C:\RNDComputers1.csv
       }

}
На втором этапе у меня абсолютный ступор как это нужно сделать
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Wadik Wadkovich
import-module activedirectory


Get-ADComputer -Filter * |
Where-Object {$a=$_.name; $_.Name -like "RND*"} |
Sort-Object name | Select-Object name | Export-csv C:\RNDComputers.csv -NoTypeInformation


import-csv C:\RNDComputers.csv | foreach{
   $a=$_.name
   if ((Test-connection $a -count 2 -quiet) -eq "True")
       {    
        Get-WmiObject -Class Win32_Product | Where-Object {$s=$_.Name; $_.Name -ne "ESET Management Agent"} | Select-Object $a | Export-csv C:\RNDComputers1.csv
       }

}
На втором этапе у меня абсолютный ступор как это нужно сделать
На первом этапе имя компа можно вписать вместо звездочки в фильтр. Или в ЛДАП-фильтр, синтаксис запросов к ЛДАП одинаков в любой вменяемой реализации ЛДАП.
А в чем ступор на втором этапе? Установить сессию к компьютеру '$a', в нее отправить 'Get-WmiObject' с набором аргументов. Например, с 'Invoke-Command'.
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
* я щас в шелл не смотрю, пишу по памяти, могу и соврать или выбрать неоптимальный вариант
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Wadik Wadkovich
Добрый день. Пытаюсь написать скрипт который  выбирает определенные компьютеры с AD , затем каждый проверяет на доступность и ищет установленные там ПО. Если определенного софта нету в списке, имя компьютера записывает в файлик. Можете помочь в этом ?
Заебешься. Делай от обратного: скрипт который запускается на компе и выгружает данные на сетевую шару.
источник

WW

Wadik Wadkovich in PowerShellRus - о Powershell (и не только) на русском
Dr. L.S.Dee
На первом этапе имя компа можно вписать вместо звездочки в фильтр. Или в ЛДАП-фильтр, синтаксис запросов к ЛДАП одинаков в любой вменяемой реализации ЛДАП.
А в чем ступор на втором этапе? Установить сессию к компьютеру '$a', в нее отправить 'Get-WmiObject' с набором аргументов. Например, с 'Invoke-Command'.
Выборка компов по имени работает вроде нормально у меня, по крайней мере как я ожидал. А вот как этот конвеер (поправьте если ошибаюсь, скриптов не когда не писал) правильно написать не могу сообразить
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Alexey D. Filimonov 🎠
Заебешься. Делай от обратного: скрипт который запускается на компе и выгружает данные на сетевую шару.
Ну вообще да. Можно оформить как модуль и насрать в PSGallery ))
А на целевых компах его оттуда сдернуть и запустить.
источник

WW

Wadik Wadkovich in PowerShellRus - о Powershell (и не только) на русском
Alexey D. Filimonov 🎠
Заебешься. Делай от обратного: скрипт который запускается на компе и выгружает данные на сетевую шару.
У меня не так много компутеров. Да и в принципе хочется разобраться как правильно писать
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Wadik Wadkovich
Выборка компов по имени работает вроде нормально у меня, по крайней мере как я ожидал. А вот как этот конвеер (поправьте если ошибаюсь, скриптов не когда не писал) правильно написать не могу сообразить
Если комп доступен:
Invoke-Command -ComputerName $a -Scriptblock {...} -ArgumentList <Your args here>...
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Вроде как-то так звучит.
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Это было для вызова этой, гм, инвентаризации с управляющего компа, так сказать.
источник

4

4c74356b41 in PowerShellRus - о Powershell (и не только) на русском
вот у меня чердак сейчас поехал, думал что среднее арифметическое 1,2,5 = 8/3, среднее арифметическое 1,1,6 = 8/3, а если их сложить то среднее арифметическое будет 2.5 (почему-то в голове сложил эти последовательности и получил 15)
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Dr. L.S.Dee
Это было для вызова этой, гм, инвентаризации с управляющего компа, так сказать.
От обратного — вот это вот Get-WmiObject на целевом компе запускать и выводить результат в ту же табличку — но на сетевой шаре, возможно, с именем компа. Разложить скриптик по компам и с админской станции пинать.
Можно также выводить не в табличку, положим, а в джейсон, совать его по http в какое-нибудь api, где с серверной стороны вся эта параша будет оформляться в сводный отчет.
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
А вообще, КМК, вы тут SCCM изобретаете.
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
По крайней мере, в части инвентаризации.
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Нет денег на SCCM? Пинайте Ансиблом, уверен, в Галактике найдется что-нибудь подходящее. Да хоть Каспером, в самом деле.
источник

D

Dr. L.S.Dee in PowerShellRus - о Powershell (и не только) на русском
Кек. В девопсарне то же самое чувак спрашивает: https://t.me/devops_ru/675212
источник