タグ

ブックマーク / blog.powershell-from.jp (15)

  • [PowerShell Core 入門] 動的配列の使用方法

    前回の記事で紹介した PowerShell Core における配列は、値の追加をすることはできますが、任意の要素の削除や全要素の削除をしても配列のサイズ自体が変わることはありませんでした。このため、実際に格納されている値の数は「.Count」プロパティを参照してもわかりません。 この問題は .NET Core が持つ List クラスを使用した動的配列を使用することで解決することができます。 今回は、PowerShell Core で動的配列を作成する方法と、その操作方法について説明します。 動的配列を生成するには? PowerShell Core で動的配列を生成するには以下の書式でコマンドを実行します。 変数 = New-Object System.Collections.Generic.List[データ型] 例えば、文字列を扱う動的配列を作成したい場合は、「データ型」に string

    [PowerShell Core 入門] 動的配列の使用方法
  • [PowerShell Core 入門] PowerShell Core のインストール

    そもそも PowerShell とは 米マイクロソフト社は、MS-DOSの時代から、今日の Windows に至るまで、コマンドラインツールを提供し続けてきました。 このコマンドラインツールとは、一般的には「シェル」と呼ばれます。 OS は、中核をなすカーネルと呼ばれるソフトウェアがあります。カーネルだけでは OS は成り立たたないため、さまざまなソフトウェアとの組み合わせで成り立っています。カーネルがさまざまなソフトウェアを管理していますので、コンピュータに命令するためには、カーネルとの会話が必要となります。しかし、人とカーネルは直接会話をすることができないため、仲介役としてシェルが必要となります(下図参照)。 Windows には、コマンドプロンプトというシェル(コマンドラインツールと呼ばれています)と、Windows PowerShell が標準で搭載されています。 コマンドプロンプ

    [PowerShell Core 入門] PowerShell Core のインストール
  • PowerShell のバックグラウンドジョブ

    unix系のシェルだとコマンド後に置く & (ampersand) で簡単に作れるバックグラウンドジョブですが、

    PowerShell のバックグラウンドジョブ
  • PowerShellの起動を速くする

    PowerShellのコンソールを起動すると普通のコマンドラインに比べて起動が遅いなと感じる。これは.NETの性質に由来するもので、MSIL(中間言語)を実行時にJITJust in Time)コンパイルするためである。実行時に機械言語へのコンパイルを行っているのだ。このJITコンパイル方式はあらゆるCPUやOSに対応させるためにインタプリタの利点を生かしたまま実行時には機械言語の処理速度を保てるという利点がある。 でも考えても見るとPowerShellが必要な環境では多種のOSで動く必要が今のところはない。速く起動してくれるに越したことはないのだ。それを実現するためにはMSILをすでに機械言語にコンパイルさせていればその実行時にその過程が不必要になるために速くなる。.NET Frameworkにはngenというのがあってこれを使うと事前コンパイルを可能にしてくれる。 ネイティブ イメー

    PowerShellの起動を速くする
  • プロパティを抽出する Select-Object (PowerShell入門)

    この記事は以前 http://hiros-dot.net/ へ書いたものです。。 今回は、パイプ演算子と共に使用する Select-Objectコマンドレットを紹介します。 Select-Objectコマンドレットはオブジェクトまたは一連のオブジェクトの指定されたプロパティを選択します。 Get-ChildItemコマンドレットが持つプロパティの指定したものだけを抜き出してみましょう。 その前に Get-ChildItemコマンドレットで取得可能なプロパティを調査してみます。 Get-Memberコマンドレットで-MmemberTypeパラメータにpropertyと指定することでプロパティのみを表示します。 PS C:\Work> Get-ChildItem | Get-Member -MemberType property TypeName: System.IO.FileInfo Nam

    プロパティを抽出する Select-Object (PowerShell入門)
  • [WMI] OS情報を取得する

    WMIのWin32_OperatingSystemクラスを使用すると、OS情報を取得することができます。 Win32_OperatingSystemクラスについては http://msdn.microsoft.com/en-us/library/windows/desktop/aa394239(v=vs.85).aspx が参考になるでしょう。 代表的なプロパティは下記の通りです。

    [WMI] OS情報を取得する
  • [Tips]一定時間経過後にスクリプトを実行する

    PowerShellで一定時間経過した後にスクリプトを実行させたくて、下記のような関数を作ってみました。 function Execute-Script([int]$Time, [ScriptBlock]$ScriptBlock, [String]$ComputerName = ".") { [System.Threading.Thread]::Sleep($Time) Invoke-Command -ComputerName $ComputerName -ScriptBlock $ScriptBlock } この関数を使用する際の書式は Execute-Script スクリプトを実行させるまでの待機時間(mSec), 実行させるスクリプト, [スクリプトを実行するリモートコンピュータ名] です。 [スクリプトを実行するリモートコンピュータ名]は省略可能で、省略した場合にはローカルコンピュ

    [Tips]一定時間経過後にスクリプトを実行する
  • PowerShellでリモートマシンのサービスをリストする

    多くのコンピューターを管理をすることはIT関係の仕事をしているとよくあることです。特に最近は仮想マシンの技術が発達して、より多くのコンピューターを管理する機会が多くなりました。それぞれのコンピューターにリモートログインをしてあるWindowsサービスがインストールされているかどうかをチェックするのは、数台のコンピューターだったら大したことはないのですが、10台、20台になるとそれだけで結構時間のかかるものです。 そこで、PowerShellのスクリプトでリモートマシンのWindowsサービスをリストすることができます。以下の例ではすべてのリモートマシンが同じ資格情報(Administrator)を使用できるものとします。 $credential = Get-Credential -Credential Administrator $computers = “server1″,”server

    PowerShellでリモートマシンのサービスをリストする
  • PowerShellでRSS2.0取得!

    ▼ PowerShell_ISE.exe $uri = "http://rss.rssad.jp/rss/itmatmarkit/fdotnet/rss.xml" #▼ Ver.Invoke-RestMethod Invoke-RestMethod -Uri $uri <# #▼ Ver.Invoke-WebRequest $x1 = Invoke-WebRequest -Uri $uri $x2 = [System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($x1.Content)) ($x2).rss.channel.item #> <# #▼ Ver.System.Net.WebClient $wc = New-Object System.Net.

    PowerShellでRSS2.0取得!
  • PowerShellでイベントログを取得!

    Get-WinEvent -FilterHashtable @{ LogName=”Application”; Level=3 } -MaxEvents 3

    PowerShellでイベントログを取得!
    shigiryou
    shigiryou 2013/12/16
  • PowerShell 2.0 RC

    Microsoft.PowerShell.ConsoleHost.dllの場所 New-PSDrive -Name "chiakiGAC" -PSProvider "FileSystem" -Root "C:\WINDOWS\assem...

    PowerShell 2.0 RC
  • Windows PowerShell によるリモート制御 ~その1 準備編~

    Windows PowerShell 2.0 からリモート制御がサポートされます。 Windows PowerShell 2.0がインストールされているだけではリモート処理を行うことはできません。 リモート制御を行う側とされる側の双方にPowerShell 2.0がインストールされ、リモート処理用に構成されている必要があります。 記事は Wndows PowerShellをリモート処理用に構成する ローカルマシンからリモート接続する リモート接続を解除する について説明します。 リモート処理用に構成する PowerShell でリモート処理が行えるようにするには、下記条件が必要になります。 ローカルマシンとリモート制御するマシンの双方にPowerShellがインストールされていること リモート処理用の構成がされていること リモート接続するマシンのPowerShellは管理者モードで起動す

    Windows PowerShell によるリモート制御 ~その1 準備編~
  • [Tips] エクスプローラの右クリックメニューにpowershellを追加する

    記事は、レジストリを操作します。必ず自己責任の下において実行してください。 エクスプローラの右クリックメニューからPowerShellが起動できたら便利だとは思いませんか? ということで、やってみたのでその方法を紹介します。 まず レジストリエディタを起動します。 powershell(コマンドプロンプトでもOK。ファイル名を指定して実行でもOK)上から regedit[Enter] で起動します。 HKEY_CLASSES_ROOT\Folder\Shellに新しいキーとしてpowershellを作成します。 つぎに、powershellの下にcommandを作成して、値のデータを「powershell.exe -noexit -command “cd ‘%L’ “」にします(下図参照)。 編集が終わったら、エクスプローラを開いて、任意のフォルダを右クリックしてみてください。コンテキス

    [Tips] エクスプローラの右クリックメニューにpowershellを追加する
  • PowerShellでSQLiteを使用する(4)

    前回は SQLiteでInsert文を使用する方法について説明しました。 データを追加したら、やはり取得できなくては意味がないですね。 ということで、今回はSELECT文を使用する方法について説明します。 INSERT文の時と異なる部分は、ヒア文字列の中身がSELECT文になるということ、 コマンドの実行が、ExecuteNonQueryからExecuteReaderに代わることです。 ExequteRederは実行したSQL文で影響を受けた行が返されます。 戻り値のReadメソッドを実行すると、SQL文に合致するレコードの有無がわかるので、While文でループして各データの取り出しを行います。 [void][System.Reflection.Assembly]::LoadFile("C:\Work\DB\System.Data.sqlite.dll") $sqlite = New-Ob

    PowerShellでSQLiteを使用する(4)
    shigiryou
    shigiryou 2013/09/10
  • 日付取得で使える便利なメソッドまとめ

    たとえば、2ヶ月後を求めたい場合はAddMonthsメソッドの引数に2を渡します。 (Get-Date).AddMonths(2) 2ヶ月前を求めることも可能で、この場合は-2を指定します。 (Get-Date).AddMonths(-2) 日付のみ、時間のみを文字列として取得することも可能です。 日付のみを文字列として取得したい場合はToShortDateStringメソッドを使用します。 (Get-Date).ToShortDateString() 時刻のみを文字列として取得したい場合はToShortTimeStringメソッドを使用します。 (Get-Date).ToShortTimeString() 任意の書式で日付を出力したい場合はToStringメソッドを使用します。 ToStringメソッドの引数には、様々な書式を指定することができます。指定可能な書式についてはhttp://

    日付取得で使える便利なメソッドまとめ
  • 1