Posts Tagged ‘PowerShell’

PowerShell あれこれ SPS 2010 Part1

火曜日, 1 月 5th, 2010

SPS 2010 のPowerShell は以下のメニューから利用可能です。

image

実行します(下図参照)。以下の図を見て頂くとわかると思いますが、MOSSとは違い DLL の参照は必要ありません。

image

また、特徴的なのはコマンドレットが標準で 500 以上利用できます(Beta2時点)。ただし、現時点ではここに利用できる PowerShell についての記載がありますが、ほとんどないといって良い状態です。

そこで、現時点で用意されているコマンドレットの確認方法ですが、管理コンソール起動後、「gcm」と入力します。

image

実行後は、下記のように利用できるコマンドレットなどが一覧で表示されます。ただ、コマンドプロンプトの特徴でしょうか、テキストが多い場合は「…」と表示され省略されます。省略されているテキストをすべて取得した場合はテキストファイルなどに出力するとすべての情報を取得可能です。 コマンドの末尾に「 >C:\text.txt 」などをつけます。

 image

また、ここで注意が必要ですが、単に gcm を実行すると SharePoint が提供しているコマンドレッド以外の情報なども取得します。あくまで、SharePoint が提供しているコマンドレットを取得したい場合は以下のようにコマンドレットを定期用している DLL を指定して gcm を実行します。

gcm  -pssnapin microsoft.sharepoint.powershell | fl >C:\allcmd.txt

image

実行すると約 2MB のテキストがファイルが生成されます。また、SharePoint のコマンドレットを利用したバッチ処理などを実施したい場合は、*.ps1 ファイルの一行目に

Add-pssnapin Microsoft.SharePoint.PowerShell

を記載する必要がありますのでご注意(SharePoint の管理コンソールの場合は最初から参照されている状態なので必要なし)。

PowerShell あれこれ MOSS Part3

水曜日, 12 月 30th, 2009

そのほか TIPS 的なことをつらつらと

MOSS の場合は PowerShell はローカルで実行す る必要があります(ただ、PowerShell v2 では Telnet のような利用方法でリモートから実行できるようになるそうです。SPS 2010 でリモートを実行するための情報はこちら)。

・SharePoint の DLL を参照させるスクリプトファイル(*.ps1 )を作成することで定期的なバッチ処理が可能(SPS2010ではこれを実装するときにはちょいと注意が必要です。ま、わかっている人にとっては当たり前のことですが)。

・お手軽で利用できますが、スクリプトによりメモリ領域をかなり利用するものも出てくると思います。そんな時のために格納している変数を解放する必要があります。

NG パターン

XX> $site = New-Object Microsoft.SharePoint.SPSite(“http://localhost”)
XX>$site.rootweb


結果の表示…

(下が実行画面です)image

OK パターン(直観的にはあれ?というスクリプトですが…)

XX> $site = New-Object Microsoft.SharePoint.SPSite(“http://localhost”) ; $site.rootweb ; $site.Dispose()

結果の表示…

(下が実行画面です)image

ということで 次回からは SPS 2010 の PowerShell についてです。記載する人は当然違いますw。

それでは、皆様良いお年を

 

PowerShell あれこれ MOSS Part2

火曜日, 12 月 29th, 2009

PowerShell にはコマンドレット(cmdlet)というものがあります。ざっくりいうと、ある程度実行できる「小さい処理」がまとまったものですね。なので、Exchangeとか、Windows Serverとかには、管理者が良く利用するようなユーザーの一覧を取得などの「小さい処理」が PowerShell から実行できるようになっています。SPS2010 だと Beta2 時点で 500 を越えるコマンドレットが用意されていますが、MOSS にはありません…ですので、ユーザー一覧とかを利用したい場合には DLL を参照し、コードちっくな Scripting をする必要があります。さて、そんなことはやってられまへんという方に下記Blog で自分が作成したコマンドレットを公開しています。

http://stsadm.blogspot.com/2008/12/initial-release-of-my-sharepoint.html

下記のようなコマンドレットが用意されてます。

  • Get-SPContentType-gl
  • Get-SPContentTypeUsages-gl
  • Get-SPFarm-gl
  • Get-SPField-gl
  • Add-SPList-gl
  • Get-SPList-gl
  • Get-SPSite-gl
  • Get-SPUserProfileManager-gl
  • Get-SPPrivacyPolicyManager-gl
  • Get-SPWeb-gl
  • Get-SPWebApplication-gl
  • ちなみに、上記の Blog は stsadm と PowerShell に命を捧げた Blog になっております。

    また、こちらの Blog では PowerShell と SoftWareFX 社のPowerGadget を組み合わせて下記のようなチャート作ったりなどということを実現しています…う~ん、深いですね


    ちなみに、PowerShell のスクリプトを *.ps1 ファイルとして保存することによりバッチ処理的なことが可能になります。

    ということは上記のコマンドレットなどを組み合わせたスクリプトで利用状況の把握や、あるタイミングでライブラリ内のファイルの権限を一括変更するということもできちゃうということです。

    PowerShell あれこれ MOSS Part 1

    月曜日, 12 月 28th, 2009

    (今日からWindows Live Writer を利用しているのでフォントとか、いろいろ良い感じに…ちょっとこのBlogのリッチテキストひどかったので…ちなみにフォントはメイリオで見やすいです。ただ、タイトルは変わらないし、プラグインは反映されないし…引っ越しか…)

    MOSS , SPS2010 ともに PowerShell を利用できますが、

    ちょっと、利用の方法が異なります。まずは MOSS の場合をご紹介

    MOSSの場合、SharePoint の DLL を呼び込む必要あります。

     

     

     

    [System.Reflection.Assembly]::Load("Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c")

    ちなみに、上のスクリプトを毎回書いてられんという場合は以下で OK です。

    [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.SharePoint”)

     

     

    そして、あとは、サイトコレクションの情報を下記のように読み込みんで($が変数みたいなもんです)

    $site = New-Object Microsoft.SharePoint.SPSite(“http://localhost”)

     

     

    ルートサイトの情報を読み込んで実行すると…

    $site.rootweb

     

     

    image

    こんな感じで情報が取れます。

    そのほかたとえば、以下のようにするとルートサイトのリストの中からタイトルとその ID を取得することができます(ちなみに「|」は”パイプ”と呼ぶそうです)。

    $site.rootweb.Lists | Select Title , ID

    image 

    このように、開発をしたことがあるユーザーであれば、Script感覚でいろいろできるのが魅力です。ちなみに、下記赤字部分を付け足すとファイルにその内容が記載されます。

    $site.rootweb.Lists | Select Title , ID >C:\test.txt

    うまく利用すればテストデータ作成とか運用管理系に重宝しそうです。テストデータで思い出しましたが、噂の AvePoint からテスト環境の生成と負荷シミュレート用のツールが出ています。導入時に知っていれば活用したのですが… VSTTLA を利用する必要ないしw(二度と使いたくないですw)

    AvePoint テスト環境生成ツールのリンク

    http://www.avepoint.co.jp/sharepoint-test-environment-creator/


    ホットワード PowerShell background border 火曜日
    割引クーポンまとめ情報 - クー割