Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Windows PowerShell 1.x/2.x/CTP

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Открыть новую тему     Написать ответ в эту тему

tcg2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Microsoft Windows PowerShell

 
Обсуждаемые темы

    * Работа с SQL
    * Работа с Visual Studio
    * etc.

 
Помощь по использованию консоли pwsh, а также встроенной в Windows консоли powershell.exe  

Всего записей: 7 | Зарегистр. 20-11-2006 | Отправлено: 19:06 29-11-2006 | Исправлено: YuS 2, 18:04 02-06-2020
SerBUser

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пoдскажите, в чем моя ошибка. Пишу скрипт по созданию группы в AD:

Код:
$gr="G-MailUsers"
$kuda="'OU=Группы,OU=Подразделение,DC=test,DC=ru'"
$descr="'Почта'"
New-ADGroup -Name $gr -SamAccountName $gr -GroupCategory Security -GroupScope Global -DisplayName $gr -Path $kuda -Description $descr
Выдает ошибку:

Цитата:
New-ADGroup : Серверу не удалось обработать запрос из-за внутренней ошибки.  Для получения дополнительной информации об ошибке включите IncludeExceptionDetailInFaults (или с помощью атрибута ServiceBehaviorAttribute, или из конфигурации поведения <serviceDebug>) на сервере с целью отправки информации об исключении клиенту, либо включите трассировку, согласно документации Microsoft .NET Framework 3.0 SDK, и изучите журналы трассировки сервера.  
строка:1 знак:12
+ New-ADGroup <<<<  -Name $gr -SamAccountName $gr -GroupCategory Security -Grou
pScope Global -DisplayName $gr -Path $kuda -Description $descr
    + CategoryInfo          : NotSpecified: (CN=G-MailUsers...C=test,DC=ru'
   :String) [New-ADGroup], ADException
    + FullyQualifiedErrorId : Серверу не удалось обработать запрос из-за внутр
   енней ошибки.  Для получения дополнительной информации об ошибке включите
  IncludeExceptionDetailInFaults (или с помощью атрибута ServiceBehaviorAttr
 ibute, или из конфигурации поведения <serviceDebug>) на сервере с целью от
правки информации об исключении клиенту, либо включите трассировку, соглас    н
о документации Microsoft .NET Framework 3.0 SDK, и изучите журналы трасси    ро
вки сервера.,Microsoft.ActiveDirectory.Management.Commands.NewADGroup

Не могу понять - в чем косяк, тем более, что если выполнить без переменных:

Код:
New-ADGroup -Name G-MailUsers -SamAccountName G-MailUsers -GroupCategory Security -GroupScope Global -DisplayName G-MailUsers -Path 'OU=Группы,OU=Подразделение,DC=test,DC=ru' -Description 'Почта'
- все отрабатывает нормально

Всего записей: 123 | Зарегистр. 31-08-2009 | Отправлено: 03:17 23-03-2011 | Исправлено: SerBUser, 03:18 23-03-2011
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SerBUser
На первый взгляд из переменных нужно убрать какие-нибудь из кавычек:

Код:
 
$descr = "Почта"
или
$descr = 'Почта'
 



----------
Вопросы в личке останутся без ответа

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:42 24-03-2011
SerBUser

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM

Цитата:
На первый взгляд из переменных нужно убрать какие-нибудь из кавычек:

Точно. Странно, что вариант без переменных отрабатывает

Всего записей: 123 | Зарегистр. 31-08-2009 | Отправлено: 04:08 25-03-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 18:21 27-04-2011 | Исправлено: ComradG, 18:22 27-04-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня возникла пара вопросов относительно PoSH версии 1.0 (увы, но на работе именно она), первый из которых звучит предельно просто: как создать контрольную точку восстановления? я лично не нашел иного способа, как через WMI:
Код:
$objCOM = New-Object -com MSScriptControl.ScriptControl
$objCOM.Language = "VBScript"
$objCOM.AddCode('strComputer = "."
                 Set objWMIService = GetObject("winmgmts:" _
                     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default")
                 Set objItem = objWMIService.Get("SystemRestore")
                 errResult = objItem.CreateRestorePoint _
                     ("Системная контрольная точка", 7, 100)')
минус данного скрипта - скорость, поэтому несколько перефразирую свой вопрос: как создать контрольную точку восстановления не потеряв при этом в скорости?
и второй вопрос. насколько я понимаю, в PoSh 1.0 не имеется поддержки перечислений, то есть создать свой собственный enum не получится? будь это PoSh 2.0, я бы не стал спраашивать, так как перечисления там можно создать примерно так:
Код:
$enum = 'enum EmpType {
   Manager,
   Contractor,
   Grunt
}'
 
add-type -type $enum -lang CSharpVersion3
однако, в PoSh 1.0 командлета add-type нема, и что делать?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 16:20 18-05-2011
OFKOFK

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мужики, помогите, в скриптах не очень силен: скрипт на Powershell который мониторит состояния DHCP (включен или выключен) помогите дописать, что бы он при опросе  мог еще опрашивать IP адрес это компьютера на котором запускается скрипт.
 
$a=Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=TRUE and Index =7" -ComputerName .
if ($a.index -eq 7)
 {Write-Host 0 }
else {Write-Host 1}

Всего записей: 3 | Зарегистр. 15-07-2011 | Отправлено: 08:06 15-07-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
$computer = "."
$host = gwmi -class Win32_NetworkAdapter -computerName $computer
$netenabled = $host | where {$_.IPenabled}
ну а далее создаешь цикл foreach, в котором пробиваешь маки.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:26 17-07-2011
OFKOFK

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
эм...
как будет выглядеть скрипт целиком, он должен опросить включен ли DHCP и что бы был ip вот такой IP:192.168.89.145. проверку маков не нужно. Если  DHCP включен и IP соответсвует "192.168.89.145" выдать 0, если нет то 1
 
 $a=Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=TRUE and Index =7" -ComputerName .  
if ($a.index -eq 7)  
 {Write-Host 0 }  
else {Write-Host 1}
$computer = "."  
$host = gwmi -class Win32_NetworkAdapter -computerName $computer  
$netenabled = $host | where {$_.IPenabled}

Всего записей: 3 | Зарегистр. 15-07-2011 | Отправлено: 03:51 18-07-2011
lavren



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OFKOFK

Код:
Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DHCPEnabled -and $_.IPEnabled} | ForEach-Object {if ($_.IPAddress -eq '192.168.89.145') {Write-Host 0} else {Write-Host 1}}  

или для проверки адаптера под №7:

Код:
$a=Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.Index -eq 7}
if ($a.DHCPEnabled)  
    {"DHCP ON!";  
     if ($a.IPAddress -eq 192.168.89.145')  
        {$s=$a.IPAddress; "Good IP address: $s"}  
        else {$s=$a.IPAddress; "Bad IP address: $s"}}
    else {"DHCP OFF!"}

Всего записей: 545 | Зарегистр. 29-05-2007 | Отправлено: 12:52 18-07-2011 | Исправлено: lavren, 13:18 18-07-2011
leoadm



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Жаль что тема небольшая. Хотелось бы использовать PowerShell в паре с VBS для целей администрирования. Может кто подскажет какую литературу на русском по PS?

Всего записей: 218 | Зарегистр. 06-09-2007 | Отправлено: 23:50 30-07-2011 | Исправлено: leoadm, 21:05 01-08-2011
lavren



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
leoadm
По VBS немного говорится в книге  Введение в Windows PowerShell Андрей Попов
Отдельно по VBA не встречал.

Всего записей: 545 | Зарегистр. 29-05-2007 | Отправлено: 09:35 01-08-2011
leoadm



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lavren
Спасибо. я опечатался сорри, VBS конечно же имел в виду...

Всего записей: 218 | Зарегистр. 06-09-2007 | Отправлено: 20:57 01-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
leoadm
а чего пробовать-то? вызвать vbs-код из posh'а что ли? дык это песня стара как мир:
Код:
$sc = New-Object -com MSScriptControl.ScriptControl
$sc.language="VBScript"
$sc.addcode("Set strMsg = `"Hello from VBScript!`"
MsgBox strMsg, 0, `"VBScript`"")

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 23:00 01-08-2011
leoadm



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ComradG
Круг выполняемых задач конечно шире, чем MsgBox, но все равно спасибо... Скачал книжку - буду вникать

Всего записей: 218 | Зарегистр. 06-09-2007 | Отправлено: 23:20 01-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
leoadm
дядь, тебе пример нужен был как вызвать VBScript из PoSh'а или нет? если ты посмотришь чуточку внимательней то обнаружишь еще один мой пост о PoSh'е v1.0 в котором показывается как создать точку восстановления системы, используя при этом VBScript.
Код:
$objCOM = New-Object -com MSScriptControl.ScriptControl  
 $objCOM.Language = "VBScript"  
 $objCOM.AddCode('strComputer = "."  
                  Set objWMIService = GetObject("winmgmts:" _  
                      & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default")  
                  Set objItem = objWMIService.Get("SystemRestore")  
                  errResult = objItem.CreateRestorePoint _  
                      ("Системная контрольная точка", 7, 100)')
тут и вникать-то нечего, если знаешь VBScript.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 00:20 02-08-2011
leoadm



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ComradG
Да, пример оказался полезен, не переживай ты так, спасибо.

Всего записей: 218 | Зарегистр. 06-09-2007 | Отправлено: 09:32 02-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
leoadm
рекомендую к прочтению еще пару документов для более глубоко понимания сабжа:Спецификация WinHost сценариев  
от M$
и ECMAScript обе на английском, но довольно вменяемые и без литья воды.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 16:19 02-08-2011 | Исправлено: ComradG, 16:21 02-08-2011
qik



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как сделать окно консоли активным?
Так как start-process не имеет опции запуска в фоновом режиме, возникла необходимость сразу после запуска возвращать фокус на окно консоли.

Всего записей: 473 | Зарегистр. 10-01-2004 | Отправлено: 13:01 18-08-2011 | Исправлено: qik, 08:46 19-08-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как сделать окно консоли активным?
в скрипте или в текущей сессии?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 20:42 19-08-2011
qik



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ComradG
Если честно не совсем вас понял.
Вот пример:
Write-host "Загружаю Блокнот"
Start-process notepad.exe
# в этот момент открывается блокнот и перекрывает окно консоли
Тут нужна инструкция которая сделает активным консоль, то есть фокус перейдет на консоль (как будто я кликну на нее мышкой)

Всего записей: 473 | Зарегистр. 10-01-2004 | Отправлено: 21:39 19-08-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Windows PowerShell 1.x/2.x/CTP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru