Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Get-adcomputer вместо ошибки ,что объект не найдет писал в файл имя этого компа

Ответить
Настройки темы
PowerShell - [решено] Get-adcomputer вместо ошибки ,что объект не найдет писал в файл имя этого компа

Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Изменения
Автор: ejik_off
Дата: 22-02-2017
Добрый день.
Не знаю как решить задачу, что бы все не найденные компы записывать в отдельный файл.
есть такой скрипт
Код: Выделить весь код
Get-Content d:\Script\PcList.txt | Get-ADComputer -Properties * | select Name,IPv4Address,Enabled,LastLogonDate,CanonicalName,DistinguishedName,OperatingSystem | 
Export-CSV -Path 'C:\Script\ListPc.csv' -Encoding UTF8
Если компьютера нет в Ad, то в консоле появляется ошибка
Цитата:
Get-ADComputer : Cannot find an object with identity: 'PC-3167' under: 'DC=city,DC=corp'.
At line:2 char:51
+ Get-Content C:\Script\PcList.txt | Get-ADComputer <<<< -Properties * | select Name,IPv4Address,Enabled,LastLogonDate,CanonicalName,DistinguishedName,OperatingSystem |
+ CategoryInfo : ObjectNotFound: (PC-3167:ADComputer) [Get-ADComputer], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Cannot find an object with identity: 'PC-3167' under: 'DC=city,DC=corp'.,Microsoft.ActiveDirectory.Management.Commands.GetADComputer
как сделать, что бы эти компы записывались в отдельный файл?

Отправлено: 09:43, 22-02-2017

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
.... | Get-ADComputer -Properties * -ErrorVariable comps |....
[string[]]$comps.TargetObject | Out-File mcomps.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:54, 22-02-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Kazun, я не совсем понял. как ваш код совместить с моим.
вот что пытался запустить
Код: Выделить весь код
Get-Content d:\Script\PcList.txt | Get-ADComputer -Properties * -ErrorVariable comps | select Name,IPv4Address,Enabled,LastLogonDate,CanonicalName,DistinguishedName,OperatingSystem | 
Export-CSV -Path 'C:\Script\ListPc.csv' -Encoding UTF8 
[string[]]$comps.TargetObject | Out-File mcomps.txt
после отроботке скрипта файл mcomps.txt пустой.

Отправлено: 10:15, 22-02-2017 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Никто же не указывает версию PowerShell.

Код: Выделить весь код
PS (STA) > "abc","dccd" | Get-ADComputer -Properties * -ErrorVariable comps
Get-ADComputer : Cannot find an object with identity: 'abc' under:
At line:1 char:16
+ "abc","dccd" | Get-ADComputer -Properties * -ErrorVariable comps
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (abc:ADComputer) [Get-ADComputer], ADIdentityNotFoundException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,M
   icrosoft.ActiveDirectory.Management.Commands.GetADComputer

Get-ADComputer : Cannot find an object with identity: 'dccd' under: 
At line:1 char:16
+ "abc","dccd" | Get-ADComputer -Properties * -ErrorVariable comps
+                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (dccd:ADComputer) [Get-ADComputer], ADIdentityNotFoundException
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,M
   icrosoft.ActiveDirectory.Management.Commands.GetADComputer

PS (STA) > [string[]]$comps.TargetObject
abc
dccd
Для v2:
Код: Выделить весь код
$comps = @()
Get-Content d:\Script\PcList.txt | Foreach {
	$pc = $null
	$pc = Get-ADComputer $_ -Properties *
	if($pc) {
		$pc | select Name,IPv4Address,Enabled,LastLogonDate,CanonicalName,DistinguishedName,OperatingSystem
	} else {
		$comps += $_
	}
} | Export-CSV -Path 'C:\Scripts\ListPc.csv' -Encoding UTF8

$comps | Out-File comps.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:22, 22-02-2017 | #4


Аватара для ejik_off

Старожил


Сообщения: 473
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Kazun:
Никто же не указывает версию PowerShell. »
Прошу прощения, не подумал даже.
Огромное спасибо за помощь!!!!

Отправлено: 10:40, 22-02-2017 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Kazun:
Никто же не указывает версию PowerShell. »
Иногда ещё и версию ОС на клиенте не мешает указывать. Лично сталкивался с различным поведением одного и того же кода одной и той же версии языка на разных ОС (конкретно v.2.0 под Windows XP и Windows 7). Коллега greg zakharov не даст соврать (если ещё помнит тот эпизод).

Отправлено: 03:06, 23-02-2017 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Get-adcomputer вместо ошибки ,что объект не найдет писал в файл имя этого компа

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Создал бесплатный блог на гугле. Не могу понят, как его кто то найдет, что бы зайти? micro8 Хочу все знать 2 16-10-2016 20:00
Разное - [решено] можно ли вместо ярлыка поставить другой объект(компонент) hackroute Оформление Windows 11/ 10 / 8 / 7 / Vista 2 17-08-2014 18:11
CMD/BAT - при включение компа по сети в определенную папку имя компа и время включения/выключен Kreatif Скриптовые языки администрирования Windows 2 20-03-2012 14:03
[решено] ObjGet находит объект экселя, но не находит объект IE, почему? evg64 AutoIt 2 21-08-2010 14:22
AVP v.5 Говорит сообщает что объект не обработан, что делать? Alon Microsoft Windows 2000/XP 3 13-11-2005 18:50




 
Переход