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

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

Модерирует : KLASS, IFkO

KLASS (06-03-2018 00:43): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

   

Uriu

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

PowerShell 1.0 -  На текущий момент совершенно неактуальная версия, интересная только для истории. /Прямые ссылки/
PowerShell 2.0 и WinRM 2.0 - Последняя версия, работающая на Windows XP и Windows 2003 (Ещё) /Прямые ссылки/
PowerShell 3.0 (Windows Management Framework 3.0)
PowerShell 4.0 (Windows Management Framework 4.0)
PowerShell 5.0 (Windows Management Framework 5.0)
PowerShell 5.1 (Windows Management Framework 5.1)
PowerShell Core 6.0 (не заменяет PowerShell 5.1)



Ассоциация

Что бы ассоциировать скрипты с PowerShell, аналогично выполнению .bat/.cmd-файлов
нужно в командной строке набрать следующую команду(ы)
Версии 1.0-5.1 для 32-битных ОС: ftype microsoft.powershellscript.1=%windir%\system32\windowspowershell\v1.0\powershell.exe -file "%1"  
%*
 
Версии 1.0-5.1 для 32-битных ОС: ftype microsoft.powershellscript.1=%windir%\sysWOW64\windowspowershell\v1.0\powershell.exe -file "%1"  
%*
 
Версия 6.0 дя 32-битной ОС: ftype microsoft.powershellscript.1="C:\Program Files (86)\PowerShell\6.0.0\pwsh.exe"  -file "%1" %*
Версия 6.0 дя 64-битной ОС: ftype microsoft.powershellscript.1="C:\Program Files\PowerShell\6.0.0\pwsh.exe"  -file "%1" %*



вопрос о подписи скриптов

Что бы PowerShell не задавал вопрос о том, что скрипты не подписаны, ввести в нем команду
set-executionpolicy unrestricted
или в командной строке
powershell Set-ExecutionPolicy Unrestricted -force
(для этих 2-х действий требуются административные права)



Прочее


  • Если используете "белый список" в брандмауэре Windows, то для работы сценариев в сети необходимо создать 2 исходящих правила для svchost.exe и PowerShell.exe.
  • В отличие от батников кодировка скриптов на PowerShell должна быть 1251 (ANSI)




Расширение возможностей PowerShell
Функции
* Write-Color
* PowerTab --- Расширение функций клавиши Tab
Провайдеры
Готовые скрипты
* Ошибки и предупреждения в журнале событий по электронной почте (в4.0)
 


Работа со сценариями в Windows PowerShell
Раздел в MSDN
Краткие справочники по Windows PowerShell 3.0 (english)
Windows PowerShell Франк Кох (БЕРН)  Разработчик и пропагандист платформы. На русском языке в формате pdf и doc

Всего записей: 340 | Зарегистр. 25-11-2004 | Отправлено: 07:13 23-03-2006 | Исправлено: KapralBel, 09:31 29-01-2018
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Это тоже оболчки
Цитата:
Оболочки для работы с PowerShell  

платная и бесплатная
 
2ю скачал но пока руки не дошли попробовать

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:31 06-12-2011
vasili777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
 
Исправил.

Всего записей: 620 | Зарегистр. 03-12-2004 | Отправлено: 17:18 06-12-2011
Baggurd

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что я делаю не так?  
Взял скрипт отсюда http://www.howtogeek.com/50187/how-to-create-multiple-users-in-server-2008-with-powershell/  
 
тупо скопировал его
поменял домен
$objOU=[ADSI]“LDAP://OU=abc,DC=contoso,DC=com”
$dataSource=import-csv “users.csv”
foreach($dataRecord in $datasource) {
$cn=$dataRecord.FirstName + ” ” + $dataRecord.LastName
$sAMAccountName=$dataRecord.FirstName + “.” + $dataRecord.LastName
$givenName=$dataRecord.FirstName
$sn=$dataRecord.LastName
$sAMAccountName=$sAMAccountName.ToLower()
$displayName=$sn + “, ” + $givenName
$userPrincipalName=$sAMAccountName + “@contoso.com”
$objUser=$objOU.Create(“user”,”CN=”+$cn)
$objUser.Put(“sAMAccountName”,$sAMAccountName)
$objUser.Put(“userPrincipalName”,$userPrincipalName)
$objUser.Put(“displayName”,$displayName)
$objUser.Put(“givenName”,$givenName)
$objUser.Put(“sn”,$sn)
$objUser.SetInfo()
$objUser.SetPassword(“P@assw0rd”)
$objUser.psbase.InvokeSet(“AccountDisabled”,$false)
$objUser.SetInfo()
}
 
так выглядит csv
FirstName;LastName
Avis;Flamm
Kurt;Pharris
 
 
В результате получаю кучу ошибок
 
Исключение при вызове "Create" с "2" аргументами: "Был передан недопустимый путь службы каталогов
"
C:\ADscripts\testscript.ps1:11 знак:23
+ $objUser=$objOU.Create <<<< (“user”,”CN=”+$cn)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))"
C:\ADscripts\testscript.ps1:15 знак:13
+ $objUser.Put <<<< (“givenName”,$givenName)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))"
C:\ADscripts\testscript.ps1:16 знак:13
+ $objUser.Put <<<< (“sn”,$sn)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)"
C:\ADscripts\testscript.ps1:17 знак:17
+ $objUser.SetInfo <<<< ()
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "SetPassword" с "1" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)"
C:\ADscripts\testscript.ps1:18 знак:21
+ $objUser.SetPassword <<<< (“P@assw0rd”)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "InvokeSet" с "2" аргументами: "Свойства службы каталогов не могут быть найдены в кэше.
"
C:\ADscripts\testscript.ps1:19 знак:26
+ $objUser.psbase.InvokeSet <<<< (“AccountDisabled”,$false)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodTargetInvocation
 
Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)"
C:\ADscripts\testscript.ps1:20 знак:17
+ $objUser.SetInfo <<<< ()
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "Create" с "2" аргументами: "Был передан недопустимый путь службы каталогов
"
C:\ADscripts\testscript.ps1:11 знак:23
+ $objUser=$objOU.Create <<<< (“user”,”CN=”+$cn)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))"
C:\ADscripts\testscript.ps1:15 знак:13
+ $objUser.Put <<<< (“givenName”,$givenName)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "Put" с "2" аргументами: "Неопознанная ошибка (Исключение из HRESULT: 0x80004005 (E_FAIL))"
C:\ADscripts\testscript.ps1:16 знак:13
+ $objUser.Put <<<< (“sn”,$sn)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)"
C:\ADscripts\testscript.ps1:17 знак:17
+ $objUser.SetInfo <<<< ()
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "SetPassword" с "1" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)"
C:\ADscripts\testscript.ps1:18 знак:21
+ $objUser.SetPassword <<<< (“P@assw0rd”)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
 
Исключение при вызове "InvokeSet" с "2" аргументами: "Свойства службы каталогов не могут быть найдены в кэше.
"
C:\ADscripts\testscript.ps1:19 знак:26
+ $objUser.psbase.InvokeSet <<<< (“AccountDisabled”,$false)
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodTargetInvocation
 
Исключение при вызове "SetInfo" с "0" аргументами: "Указан недопустимый dn-синтаксис. (Исключение из HRESULT: 0x80072032)"
C:\ADscripts\testscript.ps1:20 знак:17
+ $objUser.SetInfo <<<< ()
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI

Всего записей: 22 | Зарегистр. 28-12-2008 | Отправлено: 15:15 27-12-2011
korggrodno



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите как можно найболее оптимально получить список дисков такого то компьютера в сети. Нынче делаю так http://www.everfall.com/paste/id.php?9tvk54zs52se . Но этот скрипт уж учень туповат. Мот есть готовая какая утилитка консольная. Или как нибудь по другому переписать?

Всего записей: 381 | Зарегистр. 15-11-2007 | Отправлено: 15:49 19-01-2012
Scaramanga



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

Цитата:
Что я делаю не так?

 

Цитата:
Был передан недопустимый путь службы каталогов

 
Видимо нет доступа к КД по LDAP  у вас

Всего записей: 514 | Зарегистр. 24-04-2008 | Отправлено: 10:32 31-01-2012
tashkent



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Други, не силен в программировании, потому нужна ваша помощь. Нужно провести некую инвентаризацию компов в домене. Права админа на всех компах есть. Не админ домена. Есть 2 подсети - 192.168.0.0/24 и 192.168.1.0/24.  Все компы WINXP. Требуется:
 
1. Именно по IP определить доступность компа в сети
2. Узнать по IP имя компа
3. Узнать кто владелец компа (для кого инсталлировался)  
4. Кто в данный момент залогинен в системе
5. По каждому компу вывести инфу в общий файл в формате ("Имя_компа";"IP";"Владелец";"Кто_залогинен")
 
Скрипт достаточно простой для знающего человека. Спасибо тому, кто поможет в этом деле.

Всего записей: 144 | Зарегистр. 23-08-2004 | Отправлено: 20:26 02-02-2012
Oldster



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

Цитата:
Все компы WINXP

Боюсь не по теме обратился, на XP по умолчанию нет PowerShell, если только сам не ставил. Попробуй тут спросить.
А если все таки установлен везде PowerShell, то можно накидать скрипт.

----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 20:45 02-02-2012
tashkent



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Oldster
На всех компах стоит PSh. Потому и обратил взор на него. Пасиб, почитаю там тоже.

Всего записей: 144 | Зарегистр. 23-08-2004 | Отправлено: 20:58 02-02-2012
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tashkent
почитай по запуску скриптов на удаленных компах, думаю это то, что надо.

----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 16:14 03-02-2012
Freiberufler2

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
По Remoting из свеженького можно поискать по автору Ravikanth Chaganti  
""Learn the basics of PowerShell 2.0 remoting, methods of remoting and how to use remoting to manage systems in a datacenter. ""

Всего записей: 115 | Зарегистр. 12-01-2007 | Отправлено: 17:31 03-02-2012
tashkent



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Oldster
Да уже кучу всякого набрал Скрипт написал по своим требованиям. Не красивый по стилю, но главное результат выдает какой мне надо. А щас вот попутно наполеоновские планы появились по модернизации и дальнейшему использованию его. Тут уж dsquery со всем набором пришлось подтянуть

Всего записей: 144 | Зарегистр. 23-08-2004 | Отправлено: 22:06 03-02-2012
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Freiberufler2
Я с самого начала не стал приводить ссылку на свой блог но там есть базовая настройка + ссылки на сайт Ravikanth Chaganti
tashkent
WMI не проще? Имхо там есть то, что надо.

----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 23:30 03-02-2012
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.
Подскажите пожалуйста про логирование.
Хочу видеть весь результат выполенения скрипта в логе.
В батнике я обычно объявлял лог и использовал перенаправление.
Тут такое так же работает. Но есть в PS вот такое:

Код:
 
$CurrentDate = Get-Date -format "yyyy-MM-dd" | Out-File D:\SysInfops.txt -append
 

Хотелось бы объявить лог в самом началескрипта и затем всё что бы в него записывалось без конвейера.
Возможно ли так сделать ?
 
Спасибо.

Всего записей: 4890 | Зарегистр. 10-11-2004 | Отправлено: 01:33 06-02-2012 | Исправлено: slech, 01:34 06-02-2012
VovaMozg



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
slech
Посмотрите в сторону Tee-Object

----------
В конце концов причина причин оказалась в начале начал...

Всего записей: 761 | Зарегистр. 02-06-2005 | Отправлено: 07:07 06-02-2012
temio



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
Start-Transcript & Stop-Transcript

Всего записей: 163 | Зарегистр. 27-09-2009 | Отправлено: 11:52 06-02-2012
slech



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

Цитата:
Tee-Object

 
Не совсем то.
 

Цитата:
Start-Transcript & Stop-Transcript

Заработало, но не так как хочется.
При запуске ручками я вижу всё что нужно в фале, при запуске из скрипта - буквально пара строчек
 
Unable to capture ALL session output into a transcript
Powershell Transcript is empty when running script from SQL Agent Job in 2005 SQL Server
 

Код:
cmd /c powershell.exe -file "C:\temp\backup script.ps1" > backup.log

на рузультат вроде не повлияло.

Всего записей: 4890 | Зарегистр. 10-11-2004 | Отправлено: 23:15 17-02-2012 | Исправлено: slech, 01:33 18-02-2012
kharkovmax

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

Код:
 
$lists_files = "*.doc,*.rtf,*.docx,*.docm,*.xls,*.xlsx,*.xlsm,*.xlsb,*.ods,*.csv,*.slk,*.odt,*.ods,*.eml"
echo $lists_files
Get-ChildItem “c:\*” -Include $lists_files -Force -ErrorAction SilentlyContinue
 

 
если так:
 

Код:
 
Get-ChildItem “c:\*” -Include *.doc,*.rtf,*.docx,*.docm,*.xls,*.xlsx,*.xlsm,*.xlsb,*.ods,*.csv,*.slk,*.odt,*.ods,*.eml -Force -ErrorAction SilentlyContinue
 

 
 
то все работает, но значания расширений файлов в -include необходимо передать именно через переменную $lists_files.
 
Как это правильно сделать ?
Спасибо

Всего записей: 188 | Зарегистр. 26-03-2008 | Отправлено: 14:54 11-04-2012
jeykey

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kharkovmax
$lists_files = "*.doc","*.rtf","*.docx","*.docm","*.xls","*.xlsx","*.xlsm","*.xlsb","*.ods","*.csv","*.slk","*.odt","*.ods","*.eml"
Get-ChildItem “c:\*” -Include $lists_files -Force -ErrorAction SilentlyContinue

Всего записей: 21 | Зарегистр. 29-08-2006 | Отправлено: 19:01 11-04-2012
lDeNl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сделал GUI интерфейс показывающий IP и еще некоторую информацию, но если человек запускает этот скрипт, то загружается он не очень быстро секунд 5, может больше, можно ли это как ускорить, подгружить какие либо либы или еще что то в этом роде?

Всего записей: 14 | Зарегистр. 16-02-2010 | Отправлено: 17:22 05-05-2012
Mordavorot



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можно так настроить чтобы при загрузке винды ярлыки появлялись на рабочем столе  не сразу а секунд через 5?
Голый рабочий стол нужен.  
Ибо  там картинки что любоваться охота
 
Добавлено:
.

Всего записей: 1195 | Зарегистр. 01-09-2011 | Отправлено: 00:56 23-07-2012
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » PowerShell
KLASS (06-03-2018 00:43): Объединение тем по сценариям: Сценарии Windows


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru