Войти

Показать полную графическую версию : Инвентаризация копмьютерного парка через PowerShell 2.0


JackieInIT
21-05-2012, 09:12
Всем доброго времени суток! Не очень силен в PS, но получилось собрать вот такой скрипт:
$name = "Computer_Name"
$Day = get-date -format "yyyyMMdd"
$file = "d:\inventory\"+$name+"_"+$Day+".html"
"---------------$name---------------" | Out-File $file -append
Get-WMIObject Win32_OperatingSystem -ComputerName $name | select-object @{name="System"; expression={$_.Caption}} | convertto-html -head "<link rel='stylesheet' href='d:\myscripts\styles.css' type='text/css' />" | Out-File $file -Append
Get-WmiObject win32_operatingsystem -ComputerName $name | Select-Object CSDVersion, OSLanguage | convertto-html | Out-File $file -Append
"---Процессор---" | out-file $file -append
Get-WmiObject win32_processor -ComputerName $name | Select-Object @{name="Name"; expression={$_.Name}} | convertto-html | out-file $file -append
"---Материнская Плата---" | out-file $file -append
Get-WmiObject win32_baseboard -ComputerName $name | Select-Object @{Name="Manufacturer"; expression={$_.manufacturer}}, @{Name="Model"; expression={$_.product}}, serialnumber | convertto-html | out-file $file -append
"---Жесткий диск---" | out-file $file -Append
Get-WmiObject win32_diskdrive -ComputerName $name | Select-Object Model, Partitions, @{Name="Size, Gb"; Expression={$_.Size/1Gb}}, Interfacetype | convertto-html | Out-File $file -Append
"---Оперативная память---" | Out-File $file -Append
Get-WmiObject win32_physicalmemory -computername $name | Select-Object @{Name="Size, Mb"; Expression={$_.capacity/1Mb}}, DeviceLocator, @{Name="Speed"; Expression={$_.Speed}}| convertto-html | Out-File $file -Append

Подставляю для каждого компьютера в переменную $name имя и запускаю. На некоторых компьютерах отрабатывает нормально, на некоторых выдает такую ошибку:
Get-WmiObject : Отказано в доступе. (Exception from HRESULT: 0x80070005 (E_ACCE
SSDENIED))
D:\MyScripts\dyn_inventory_html.ps1:5 знак:14
+ Get-WMIObject <<<< Win32_OperatingSystem -ComputerName $name | select-object
@{name="System"; expression={$_.Caption}} | convertto-html -head "<link rel='s
tylesheet' href='d:\myscripts\styles.css' type='text/css' />" | Out-File $file
-Append
+ CategoryInfo : NotSpecified: (:) [Get-WmiObject], UnauthorizedA
ccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.Pow
erShell.Commands.GetWmiObjectCommand
PS запущен от имени доменного администратора. Хотя на эти же компы через c$ захожу нормально. Может кто подскажет. Заранее спасибо!

drak-han
13-10-2012, 07:20
Попробуйте добавить такую штуку:

$cred = get-credential example@domain.ru


И дальше по аналогии с вашим скпиптом.

Get-WMIObject Win32_OperatingSystem -credential $cred -ComputerName $name | select-object @{name="System"; expression={$_.Caption}} | convertto-html -head "<link rel='stylesheet' href='d:\myscripts\styles.css' type='text/css' />" | Out-File $file -Append

Kazun
13-10-2012, 12:46
Лучше скачать WinAudit - http://www.pxserver.com/WinAudit.htm ,отчет в html присутствует.

drak-han
18-10-2012, 07:30
Лучше скачать WinAudit - http://www.pxserver.com/WinAudit.htm ,отчет в html присутствует. »

Интересная программа, а там аудит компьютеров в сети есть? Или она только на локальной машине действует?

Kazun
18-10-2012, 08:55
drak-han,есть ключи командной строки,которые позволяют автоматизировать процесс,а запуск на удаленных компьютерах,можно произвести через psexec или Win32_Process и метода Create,или создать разовое задание с помощью GPP.




© OSzone.net 2001-2012