Size: a a a

2021 October 07

m

maxxxxxxxx in Powershell Rus
ну так а в чем разница?)
источник

m

maxxxxxxxx in Powershell Rus
тут 2 запроса на 1 объект
источник

m

maxxxxxxxx in Powershell Rus
тут в форич надо обернуть, но будет 1 запрос
источник

VB

Vector BCO in Powershell Rus
тут 1 запрос всего
источник

VB

Vector BCO in Powershell Rus
а не 2 на каждый обьект
источник

A

Aleksandr in Powershell Rus
get-aduser -filter {} | foreach {$u = @{}} {$u.id = $_}
$a = $a | select-object san,upn,@{l='name';e={$u[$id].name}},@{l='distiguishedname';e={$u[$id].distiguishedname}}
источник

m

maxxxxxxxx in Powershell Rus
ща, лучше по другому
источник

m

maxxxxxxxx in Powershell Rus
$Users = $Users | Select-Object @{l='SamAccountName';e={(Get-ADUser -Filter ('msDS-ExternalDirectoryObjectId -like "*{0}"' -f $_.id)).SamAccountName}},UserPrincipalName,AuthMethods
источник

m

maxxxxxxxx in Powershell Rus
сейчас это выглядит так
источник

m

maxxxxxxxx in Powershell Rus
мне надо еще взять из aduser параметр Enabled и добавить его в $Users
источник

m

maxxxxxxxx in Powershell Rus
над было сразу так. чет туплю под вечер
источник

A

Aleksandr in Powershell Rus
сделай через foreach-object и pscustomobject
источник

m

maxxxxxxxx in Powershell Rus
в голову сразу приходило | foreach-object {} {}
источник

m

maxxxxxxxx in Powershell Rus
$out = @()
$out += [pscustomobject]@{$Users | foreach-object {$prop = (Get-ADUser -Filter ('msDS-ExternalDirectoryObjectId -like "*{0}"' -f $_.id) | select samaccountname,enabled;$_ | select-object UserPrincipalName,AuthMethods,@{l='Enabled';e={$prop.enabled}},@{l='samaccountname';e={$prop.samaccountname}}
источник

m

maxxxxxxxx in Powershell Rus
видимо что-то похожее
источник

A

Aleksandr in Powershell Rus
$Users | Foreach-Object {
   $u = Get-ADUser -Filter ('msDS-ExternalDirectoryObjectId -like "*{0}"' -f $_.id)
   [pscustomobject]@{
       SamAccountName = $u.SamAccountName
       Name = ...
   }
}
источник

m

maxxxxxxxx in Powershell Rus
ну по сути то же, спс.
источник

ИМ

Игорь Минниханов... in Powershell Rus
Коллеги, доброй ночи! Опять в тупике) В общем, есть Excel c наполнением. Основные поля это Code и ParentCode. Задача вычленить из екселя строки, в которых все строки где:
1. parentCode = code
2. parentCode != code во всем столбце, за исключением parentCode = null

С пунктом №1 справился, пункт №2 уже начал делать отдельно,но нифига не выходит. Пытаюсь старыми способами, через вложенные циклы. Понимаю, что наверно быстрее и проще работать с перебором массива, но знаний совсем чуть-чуть в этой области.

Приложу не рабочий код, чтобы понимать, че я пытаюсь сделать) Если подправите, направите и подскажете, буду очень благодарен

$ExcelWB = new-object -comobject excel.application
$Workbook = $ExcelWB.Workbooks.Open("D:\Norma\123.xlsx")
$SheetName = "TDSheet"
$WorkSheet = $WorkBook.sheets.item($SheetName)
$dateTime = get-date -format s
$Exit = 1


$W=0
$C=1
#Field Num
$I=2
$J=2
$CodeTemp = $WorkSheet.Columns.Item($C).Rows.Item($J).Text
$Code = $WorkSheet.Columns.Item($C).Rows.Item($I).Text
$ParentCode = $WorkSheet.Columns.Item($C+2).Rows.Item($I).Text


while($Code -ne ''){



$Code = $WorkSheet.Columns.Item($C).Rows.Item($I).Text
$ParentCode = $WorkSheet.Columns.Item($C+2).Rows.Item($I).Text
$CodeTemp = $WorkSheet.Columns.Item($C).Rows.Item($J).Text

While($CodeTemp -ne ''){
$CodeTemp = $WorkSheet.Columns.Item($C).Rows.Item($J).Text
switch($CodeTemp){

 ''{
# $J=$J+1

break

}

$ParentCode {

#$J=$J+1

break

}

default{
$J=$J+1


}
}

$W=1
}

if($W -eq 1){

Echo "Попался гад!"
Add-Content -path $pErrorLog -value ($dateTime + " Родитель отсутствует в списке " + $Code)
        $WorkSheet.Cells.Item($i, $C).EntireRow.Delete()
        $J=2
 # $I=$I+1      

} else{

$I=$I+1
Echo "С этим всё ок"

}

}


$Workbook.save()
#$Workbook.SaveAs("D:\Norma\123.xlsx",6)
$Workbook.Close()
$ExcelWB.quit()
источник

ИМ

Игорь Минниханов... in Powershell Rus
Оххх. Вроде добил)))



$ExcelWB = new-object -comobject excel.application
$Workbook = $ExcelWB.Workbooks.Open("D:\Norma\123.xlsx")
$SheetName = "TDSheet"
$WorkSheet = $WorkBook.sheets.item($SheetName)
$dateTime = get-date -format s
$Exit = 1


$W=1
$C=1
#Field Num
$I=2
$J=2
$CodeTemp = $WorkSheet.Columns.Item($C).Rows.Item($J).Text
$Code = $WorkSheet.Columns.Item($C).Rows.Item($I).Text
$ParentCode = $WorkSheet.Columns.Item($C+2).Rows.Item($I).Text


while($Code -ne ''){

$W=1

$Code = $WorkSheet.Columns.Item($C).Rows.Item($I).Text
$ParentCode = $WorkSheet.Columns.Item($C+2).Rows.Item($I).Text
$CodeTemp = $WorkSheet.Columns.Item($C).Rows.Item($J).Text

While($CodeTemp -ne ''){
$CodeTemp = $WorkSheet.Columns.Item($C).Rows.Item($J).Text


if ($ParentCode -eq "$CodeTemp"){
$W=0
break
} elseif($ParentCode -eq ''){
$W=0
break
} else {$J=$J+1
$W=1}



}

if($W -eq 1){

Echo "Попался гад!"
Add-Content -path $pErrorLog -value ($dateTime + " Родитель отсутствует в списке " + $Code)
        $WorkSheet.Cells.Item($i, $C).EntireRow.Delete()
        $J=2
 # $I=$I+1      

} else{

$I=$I+1
Echo "С этим всё ок"

}

}


$Workbook.save()
#$Workbook.SaveAs("D:\Norma\123.xlsx",6)
$Workbook.Close()
$ExcelWB.quit()
источник

AF

Alexey D. Filimonov ... in Powershell Rus
Говорящие имена переменных, мммм
источник