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

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

Ответить
Настройки темы
PowerShell - Справочный материал PowerShell

Аватара для IVa_

Старожил


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


Конфигурация

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


Изменения
Автор: IVa_
Дата: 28-03-2016
Описание: Редактироваие
Сайты с примерами скриптов, нововведениями, обсуждениями модулей и т.д.
Ссылки на сайты
  • Код: Выделить весь код
    #Архив Сценариев PowerShell – примеры использования PowerShell с некоторыми программами например  ExcelAplication, Active directory.
    $ie = New-Object -ComObject InternetExplorer.Application
    $ie.Visible = $true
    $ie.Navigate(‘http://www.electricmonk.org.uk’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # Сайт посвящён командной оболочке, примеры, книги, форум и все для успешного изучения и обмена опыта с другими участниками.
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘http://powershell.com/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # Был рад этому интернет ресурсу, Нашел много интересного, примеры скриптов PowerShell, описания и много удивительных людей.
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true
    $ie.Navigate(‘https://github.com/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # Программа для работы с Active Directory и прочая иформация касающиеся оболочки Powershell
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘https://www.manageetngine.com/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # В блоге PowerShell  - Обсуждаются нововведения, технологические идеи.
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘http://www.tomsitpro.com/tags/?refine=powershell’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # Сайт целиком посвящен командной оболочке PowerShell
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘http://powershelldistrict.com/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    #Ссылка на ссылки интернет ресурсы для более детального изучения
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘http://sqlvariant.com/powershell-links/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # Предоставляю вашему обзору ресурс на котором рассматриваются Модули, Скрипты, нововведения -  CodePlex является свободным открытым исходным кодом проекта хостинг сайта компании Microsoft.
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘https://www.codeplex.com/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # команды оболочек  PowerShell, CMD, VB script Bach, и других
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘http://ss64.com/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # Примеры использования PowerShell
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘http://www.itninja.com/tag/powershell/’) 
    $ie 
    $ie.Document
  • Код: Выделить весь код
    # Полезный ресурс для изучения и повышения знания командной оболочки PowerShell
    $ie = New-Object -ComObject InternetExplorer.Application 
    $ie.Visible = $true 
    $ie.Navigate(‘http://www.powershellpro.com/')
    $ie 
    $ie.Document

Коллекция книг.Много полезного материала для тех кто начал изучать оболочку PowerShell
Загрузка книг
  • Код: Выделить весь код
    #	
    # .NOTES
    #=========================================================================== 	 
    #	 Created with: 	SAPIEN Technologies, Inc., PowerShell Studio 2014 v4.1.75
    #	 Created on:   	16.05.2015 21:01
    #	 Created by:   	Iva_
    #	 Organization: 	OSzone
    #	 Filename:     	Загрузка книг средствами PowerShell                                                                                                    
    #=========================================================================== 	
    #            .DESCRIPTION                                                                                                                                                         
    #            A description of the file.                                                                                                                                            
    ############################################################################
    $flesh = "J:\"
    # Диск для записи
    $WebClient = New-Object -TypeName NET.WebClient 
    $hTable = @{ 
    # Создаем Хэш таблицу 'ссылка' = "переменная/Название док-та" 	
    'http://powershell.com/cs/media/p/23856/download.aspx' = "$Flesh\File_system_tasks.pdf"; 	
    'http://powershell.com/cs/media/p/24814/download.aspx' = "$flesh\Arrays_and_Hash_Tables.pdf"; 	
    'http://powershell.com/cs/media/p/25742/download.aspx' = "$flesh\Date_Time_and_Culture.pdf"; 	
    'http://powershell.com/cs/media/p/26784/download.aspx' = "$flesh\Objects_and_Types.pdf"; 	
    'http://powershell.com/cs/media/p/28283/download.aspx' = "$flesh\WMI.pdf"; 	
    'http://powershell.com/cs/media/p/29098/download.aspx' = "$flesh\Regular_Expressions.pdf"; 	
    'http://powershell.com/cs/media/p/29920/download.aspx' = "$flesh\Functions.pdf"; 	
    'http://powershell.com/cs/media/p/30542/download.aspx' = "$flesh\Static_.NET_Methods.pdf"; 	
    'http://powershell.com/cs/media/p/31297/download.aspx' = "$flesh\Registry.pdf"; 	
    'http://powershell.com/cs/media/p/32274/download.aspx' = "$flesh\Internet-Related_Tasks.pdf"; 	
    'http://powershell.com/cs/media/p/33169/download.aspx' = "$flesh\XML-Related Tasks.pdf"; 	
    'http://powershell.com/cs/media/p/38383/download.aspx' = "$flesh\Security-Related_Tasks.pdf";
     } 
    $hTable.GetEnumerator() | ForEach-Object -Process { 	
    Write-Host "From: $($_.Name)" 	
    Write-Host "Into: $($_.Value)" 	
    $WebClient.DownloadFile($_.Name, $_.Value) 	
     }

Administration Windows Server and PowerShell Windows Book's
Download Book's. Administration Windows Server and PowerShell Windows Book's
  • Код: Выделить весь код
    <#	 	
    .NOTES 	
    =========================================================================== 	 
    Created with: 	SAPIEN Technologies, Inc., PowerShell Studio 2014 v4.1.75 	 
    Created on:   	15.05.2015 21:36 	
    Created by:   	Iva_ 	 
    Organization: 	 	Oszone 
    Filename:     	 	Download book
    =========================================================================== 	
    .DESCRIPTION 		
    A description of the file.
     #>
    function Get-Webclient { 	
              $wc = New-Object Net.WebClient 	
              $wc.UseDefaultCredentials = $true 	
              $wc.Proxy.Credentials = $wc.Credentials 	
              $wc 
    } 
    $url = 'Ссылку на загрузку' 
    $object = Get-Webclient 
    $localPath = "$home\Documents\название док-та.формат(pdf,doc,xml)"
    $object.DownloadFile($url, $localPath) explorer.exe "/SELECT,$LocalPath"
    Invoke-Item -Path $localPath

Free Tools
Download PowerShellPlus Professional Edition

Код: Выделить весь код
#Для загрузки нужно заполнить форму
$ie = New-Object -ComObject InternetExplorer.Application
$ie.Visible = $true
$ie.Navigate(‘https://www.idera.com/productssolutions/freetools/powershellplus/')
$ie
$ie.Document

Скрипт
EventLog Windows seven

Код: Выделить весь код
   
    # Вывести список событий за указанный интервал времени
       $from = (Get-Date) - (New-Timespan -Minutes 60 ) 
     # переменная from, создает интервал времени(промежуток), за который отображает события из журнала событий
     #командлейт get-date получает дату, командлейтом new-timespan задать, интервал времени.
    get-eventlog -List | Select-Object -ExpandProperty Log |  
      # Получаем список журналов событий,вывод сведений записей журнала событий,
        Foreach-Object { Write-Progress 'Напишите тут что не будь' $_; $_} |  
        # индикатор выполнения твоих действий,
        Foreach-Object {$log = $_;   
        #Соблюдая последовательность, создаем условия, сохраняем объекты, глобальная переменная.
        try { Get-EventLog -after $from -LogName $log -ea stop |  
        #Получить список событий, из переменной $from, записи журнала
        Add-Member NoteProperty EventLog $log -pass  }  
        # добавляем свойства, свойства записи журнала событий с параметром pass.
        catch { Write-Warning "Unable to access $log : $_"} } | 
        #Индикатор выполнения, предупреждение при отсутствии заданных условий для списков журнала событий.
        Sort-Object TimeGenerated -desc  |  
        # Сортирует объекты , формирует список по убыванию.
        Select-Object EventLog, TimeGenerated, EntryType, Source, Message |  
        #Выбирает свойства объекта.
        Format-Table -Auto 
        #формируем вывод
При выводе уведомления об ошибки разрешения выполнения, смените правило политики выполнения.
Уяснить установленную политику нужно командой
Код: Выделить весь код
get-executionPolicy
установить политику выполнения, возможно с помощью командлейта set, сменив надоедливый get на set выбрав нужную политику, из списка политик выполнения.
Example
Код: Выделить весь код
* set-executionPolicy RemoteSigned
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:56, 03-12-2014

 

Аватара для IVa_

Старожил


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

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


Да верно, но с пустой строкой это выражение теряет смысл, виду его основного предназначения вывод истинности с символами верхних и нижних регистров.

-------
Одна и та же информация в разное время может быть полезной и бесполезной.


Отправлено: 17:07, 04-06-2017 | #11



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

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


Ветеран


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

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


IVa_, выражение не теряет смысла. Приведённое Вами описание некорректно. Пустая строка — точно такая же строка, как и любая другая.

Для «проверить наличие строчных букв в строке» регулярное выражение для оператора «-cmatch» должно выглядеть так:
Код: Выделить весь код
"[a-zа-яё]"
Для «все буквы нижнего регистра» регулярное выражение для оператора «-cmatch» должно выглядеть так:
Код: Выделить весь код
"^[a-zа-яё]+$"
Пустая строка данными регулярными выражениями обрабатывается должным и корректным образом.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:59, 04-06-2017 | #12


Забанен


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

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


Пацаны! Это ж ох**ть крутая вещь обращаться к драйверу из pwsh без сторонних тулз и дллэлок! Надеюсь greg zakharov не будет против если скопипижжу его код отсюда прямо сюда.
Наглый копипаст
Код: Выделить весь код
using namespace System.Text
using namespace System.Reflection
using namespace System.ComponentModel
using namespace System.Reflection.Emit
using namespace System.Linq.Expressions
using namespace System.Runtime.InteropServices
#################################################################################################
#############     Accessing Beep driver without third party tools and assemblies     ############
#############                        Add-Type cmdlet free                            ############
#############                                                                        ############
#################################################################################################
if (![Environment]::Is64BitOperatingSystem) {
  throw [InvalidOperationException]::new('PoC requires x64 system.')
}

$requires = @{GetProcAddress = [IntPtr]::Zero; GetModuleHandleW = [IntPtr]::Zero}
$ib = ($ps = Get-Process -Id $pid).Modules.Where{$_.ModuleName -match 'kernel32'}.BaseAddress
$ps.Dispose()

$va = [Marshal]::ReadInt32([IntPtr]([Marshal]::ReadInt32($ib, 0x3C) + $ib.ToInt64() + 0x88))
$nn = [Marshal]::ReadInt32($ib, $va + 0x18) # number of names
$af = [Marshal]::ReadInt32($ib, $va + 0x1C) # address of functions
$an = [Marshal]::ReadInt32($ib, $va + 0x20) # address of names

$tmp = $ib.ToInt64()
(0..($nn - 1)).ForEach{
  if (($name = [Marshal]::PtrToStringAnsi(
    [IntPtr]($tmp + [Marshal]::ReadInt32([IntPtr]($tmp + $an + $_ * 4)))
  )) -in $requires.Keys) {
    $requires[$name] = $tmp + [Marshal]::ReadInt32([IntPtr]($tmp + $af + $_ * 4))
  }
}

$delegate = {
  param([IntPtr]$a, [Type]$p, [CallingConvention]$cc = 'StdCall')

  end {
    $method = $p.GetMethod('Invoke')
    $returntype, $parameters = $method.ReturnType, $method.GetParameters().ParameterType
    $il = ($holder = [DynamicMethod]::new('Invoke', $returntype, $parameters, $p)).GetILGenerator()

    if ($parameters) {
      (0..($parameters.Length - 1)).ForEach{ $il.Emit([OpCodes]::ldarg, $_) }
    }
    $il.Emit([OpCodes]::ldc_i8, $a.ToInt64())
    $il.EmitCalli([OpCodes]::calli, $cc, $returntype, $parameters)
    $il.Emit([OpCodes]::ret)

    $holder.CreateDelegate($p)
  }
}

$delegates = {
  param([String]$d, [ScriptBlock]$s)

  end {
    $GetProcAddress = & $delegate $requires.GetProcAddress ([Func[IntPtr, String, IntPtr]])
    $GetModuleHandle = & $delegate $requires.GetModuleHandleW ([Func[[Byte[]], IntPtr]])

    if (($mod = $GetModuleHandle.Invoke([Encoding]::Unicode.GetBytes($d))) -eq [IntPtr]::Zero) {
      throw [DllNotFoundException]::new("Cannot find $d library.")
    }

    $funcs = @{}
    for ($i, $m, $fn, $p = 0, ([Expression].Assembly.GetType(
        'System.Linq.Expressions.Compiler.DelegateHelpers'
       ).GetMethod('MakeNewCustomDelegate', [BindingFlags]'NonPublic, Static')
       ), [Marshal].GetMethod('GetDelegateForFunctionPointer', ([IntPtr])),
       $s.Ast.FindAll({$args[0].CommandElements}, $true).ToArray();
       $i -lt $p.Length; $i++
    ) {
      $fnret, $fname = ($def = $p[$i].CommandElements).Value

      if (($fnsig = $GetProcAddress.Invoke($mod, $fname)) -eq [IntPtr]::Zero) {
        throw [InvalidOperationException]::new("Cannot find $fname signature.")
      }

      $fnargs = $def.Pipeline.Extent.Text
      [Object[]]$fnargs = [String]::IsNullOrEmpty($fnargs) ? $fnret : (
        ($fnargs -replace '\[|\]' -split ',\s+').ForEach{
          $_.StartsWith('_') ? (Get-Variable $_.Remove(0, 1) -ValueOnly) : $_
        } + $fnret
      )

      $funcs[$fname] = $fn.MakeGenericMethod(
        [Delegate]::CreateDelegate([Func[[Type[]], Type]], $m).Invoke($fnargs)
      ).Invoke([Marshal], $fnsig)
    }

    Set-Variable -Name $d -Value $funcs -Scope Script -Force
  }
}

$buf, $ptr, $ptr_ = [Byte[]], [IntPtr], [IntPtr].MakeByRefType()

& $delegates kernel32 {
  bool CloseHandle([_ptr])
  bool DeviceIoControl([_ptr, uint, _buf, uint, _ptr, uint, _buf, _ptr])
}

& $delegates ntdll {
  void RtlInitUnicodeString([_buf, _buf])
  int  RtlNtStatusToDosError([int])
  int  NtCreateFile([_ptr_, int, _buf, _buf, _ptr, uint, uint, uint, uint, _ptr, uint])
}

$uni = [Byte[]]::new(($psz = [IntPtr]::Size) * 2) # UNICODE_STRING
$ntdll.RtlInitUnicodeString.Invoke($uni, [Encoding]::Unicode.GetBytes('\Device\Beep'))

$isb = [Byte[]]::new($psz * 2) # IO_STATUS_BLOCK (take but not check)
try {
  $gch = [GCHandle]::Alloc($uni, [GCHandleType]::Pinned)
  [Byte[]]$obj = [BitConverter]::GetBytes($psz * 6) + (
    ,0 * (4 + $psz) # OBJECT_ATTRIBUTES initialization
  ) + [BitConverter]::GetBytes(
    $gch.AddrOfPinnedObject().ToInt64()
  ) + (,0 * ($psz * 3))

  $hndl = [IntPtr]::Zero
  if (0 -ne ($nts = $ntdll.NtCreateFile.Invoke(
    [ref]$hndl, 0x80000000, $obj, $isb, [IntPtr]::Zero, 128, 1, 3, 0, [IntPtr]::Zero, 0
  ))) { throw [Win32Exception]::new($ntdll.RtlNtStatusToDosError.Invoke($nts)) }

  [Byte[]]$beep = [BitConverter]::GetBytes(1000) + [BitConverter]::GetBytes(700)
  $ret = [Byte[]]::new(4)
  [void]$kernel32.DeviceIoControl.Invoke(
    $hndl, (1 -shl 16), $beep, $beep.Length, [IntPtr]::Zero, 0, $ret, [IntPtr]::Zero
  )
}
catch { Write-Host $_ }
finally {
  if ($hndl -and $hndl -ne [IntPtr]::Zero) {
    if (!$kernel32.CloseHandle.Invoke($hndl)) { Write-Warning 'device has not been released.' }
  }

  if ($gch) { $gch.Free() }
}

Отправлено: 19:01, 23-03-2021 | #13



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Microsoft изменит материал корпуса планшетов Surface OSZone News Новости и события Microsoft 1 10-07-2012 13:15
Справочный материал по Windows Mobile 6 svetohka Мобильные ОС, смартфоны и планшеты 8 28-09-2008 09:58
[решено] Маршрутизация win2k3, у когонибудь есть материал? minion Microsoft Windows NT/2000/2003 5 21-06-2006 09:00
Interlaced материал, 29,970, 23,976, etc... MMrrTT Видео и аудио: обработка и кодирование 3 18-08-2005 08:56




 
Переход