|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Скрипт удаленного удаления софта с компа в сети, выдает ошибку, но софт удаляет :/ ?! |
|
PowerShell - Скрипт удаленного удаления софта с компа в сети, выдает ошибку, но софт удаляет :/ ?!
|
Старожил Сообщения: 169 |
Профиль | Отправить PM | Цитировать Здравствуйте,
Подскажите пожалуйста: Есть скрипт удаленного удаления софта с указанного компьютера - по наименованию софта, но при выполнении "рандомом" может выдать ошибку непредвиденное исключение, подскажите пожалуйста почему так получается ? #Generated Form Function function GenerateForm { function listprograms { Get-WmiObject win32_product -ComputerName $text1.Text | Out-GridView } function remoteuninstall { $app = Get-WmiObject win32_product -ComputerName $text1.Text | Where-Object {$_.name -match $text2.Text} $app.uninstall() | Select-Object -Property returnvalue } #region Import the Assemblies [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null [reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null #endregion #region Generated Form Objects $form1 = New-Object System.Windows.Forms.Form $label2 = New-Object System.Windows.Forms.Label $label1 = New-Object System.Windows.Forms.Label $Text2 = New-Object System.Windows.Forms.RichTextBox $Text1 = New-Object System.Windows.Forms.RichTextBox $Button2 = New-Object System.Windows.Forms.Button $Button1 = New-Object System.Windows.Forms.Button $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState #endregion Generated Form Objects #---------------------------------------------- #Generated Event Script Blocks #---------------------------------------------- #Provide Custom Code for events specified in PrimalForms. $Button1_OnClick= { #TODO: Place custom script here remoteuninstall } $handler_label2_Click= { #TODO: Place custom script here } $handler_EnterComputerName_TextChanged= { #TODO: Place custom script here } $handler_label1_Click= { #TODO: Place custom script here } $handler_button2_Click= { #TODO: Place custom script here listprograms } $OnLoadForm_StateCorrection= {#Correct the initial state of the form to prevent the .Net maximized form issue $form1.WindowState = $InitialFormWindowState } #---------------------------------------------- #region Generated Form Code $form1.BackColor = [System.Drawing.Color]::FromArgb(255,212,208,200) $form1.Text = "Uninstall program" $form1.Name = "form1" $form1.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 490 $System_Drawing_Size.Height = 219 $form1.ClientSize = $System_Drawing_Size $label2.TabIndex = 5 $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 154 $System_Drawing_Size.Height = 23 $label2.Size = $System_Drawing_Size $label2.Text = "Enter Application Name" $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 271 $System_Drawing_Point.Y = 91 $label2.Location = $System_Drawing_Point $label2.DataBindings.DefaultDataSourceUpdateMode = 0 $label2.Name = "label2" $label2.add_Click($handler_label2_Click) $form1.Controls.Add($label2) $label1.TabIndex = 4 $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 141 $System_Drawing_Size.Height = 23 $label1.Size = $System_Drawing_Size $label1.Text = "Enter Computer Name" $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 24 $System_Drawing_Point.Y = 92 $label1.Location = $System_Drawing_Point $label1.DataBindings.DefaultDataSourceUpdateMode = 0 $label1.Name = "label1" $label1.add_Click($handler_label1_Click) $form1.Controls.Add($label1) $Text2.Name = "Text2" $Text2.Text = "" $Text2.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 271 $System_Drawing_Point.Y = 36 $Text2.Location = $System_Drawing_Point $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 175 $System_Drawing_Size.Height = 29 $Text2.Size = $System_Drawing_Size $Text2.TabIndex = 3 $form1.Controls.Add($Text2) $Text1.Name = "Text1" $Text1.Text = "" $Text1.DataBindings.DefaultDataSourceUpdateMode = 0 $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 24 $System_Drawing_Point.Y = 36 $Text1.Location = $System_Drawing_Point $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 175 $System_Drawing_Size.Height = 29 $Text1.Size = $System_Drawing_Size $Text1.TabIndex = 2 $Text1.add_TextChanged($handler_EnterComputerName_TextChanged) $form1.Controls.Add($Text1) $Button2.TabIndex = 1 $Button2.Name = "Button2" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 75 $System_Drawing_Size.Height = 23 $Button2.Size = $System_Drawing_Size $Button2.UseVisualStyleBackColor = $True $Button2.Text = "List installed programs" $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 371 $System_Drawing_Point.Y = 162 $Button2.Location = $System_Drawing_Point $Button2.DataBindings.DefaultDataSourceUpdateMode = 0 $Button2.add_Click($handler_button2_Click) $form1.Controls.Add($Button2) $Button1.TabIndex = 0 $Button1.Name = "Button1" $System_Drawing_Size = New-Object System.Drawing.Size $System_Drawing_Size.Width = 75 $System_Drawing_Size.Height = 23 $Button1.Size = $System_Drawing_Size $Button1.UseVisualStyleBackColor = $True $Button1.Text = "Uninstall" $System_Drawing_Point = New-Object System.Drawing.Point $System_Drawing_Point.X = 24 $System_Drawing_Point.Y = 162 $Button1.Location = $System_Drawing_Point $Button1.DataBindings.DefaultDataSourceUpdateMode = 0 $Button1.add_Click($Button1_OnClick) $form1.Controls.Add($Button1) #endregion Generated Form Code #Save the initial state of the form $InitialFormWindowState = $form1.WindowState #Init the OnLoad event to correct the initial state of the form $form1.add_Load($OnLoadForm_StateCorrection) #Show the Form $form1.ShowDialog()| Out-Null } #End Function #Call the Function GenerateForm |
|
Отправлено: 20:38, 17-10-2012 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Пока только несколько предположений:
1)Если не указаны поля,при выполнении функции 2)Get-WmiObject win32_product -ComputerName $text1.Text - Компьютер недоступен,поэтому можем получить ошибку 3)$app.uninstall() | Select-Object -Property returnvalue - Проблема во второй строке,то и тут получим ошибку,т.к. будет пустой объект и если программа не найдена тоже получим ошибку. Поэтому стоит ограничить круг только одной функцией remoteuninstall и попробовать смоделировать результат,так же добавить доп.условия проверки. function remoteuninstall { param($comp,$prog) $app = Get-WmiObject win32_product -ComputerName $comp| Where-Object {$_.name -match $prop} $app.uninstall() | Select-Object -Property returnvalue } |
Отправлено: 21:21, 17-10-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать dark-------13, какие ОС, какая версия Windows Installer на машинах («-ComputerName $text1.Text»), для которых возникает непредвиденное исключение?
|
Отправлено: 04:17, 18-10-2012 | #3 |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Спасибо за помощь уважаемый Kazun, буду разбираться.
Уважаемый Iska - я на своей локальной машине пока пробовал, у меня WIN 7 x64, windows installer пока не смотрел, - сейчас пишу не из дома. |
Отправлено: 07:55, 18-10-2012 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Помогите найти скрипт для удаленного удаления програм | magwolf | Скриптовые языки администрирования Windows | 20 | 01-02-2016 23:35 | |
Установка - Выдает ошибку | keysib | Microsoft Windows 7 | 6 | 18-12-2011 22:07 | |
Вопрос - Антивирус выдает ошибку | Shera_Best | Защита компьютерных систем | 10 | 08-09-2009 00:45 | |
Загрузка - Dreamweaver 8 выдает ошибку... | slava400 | Microsoft Windows Vista | 0 | 18-12-2008 13:37 | |
Как загрузится с удаленного компа (то есть загрузка по сети) | MJR | Microsoft Windows 95/98/Me (архив) | 2 | 09-01-2003 22:18 |
|