by manamana
13. March 2013 11:00
多くのサイトに設置されている 「いいね」や「Tweet」ボタンを設置してみました。
当ブログは BlogEngine.Net を使っているので、使えそうな拡張機能を探してみると・・・
AddThis for BE2.5 - 2.2.0.0
AddThis は多くのブックマークボタンをサポートしていますが、今回は FB と Twitter に限定です。
BlogEngine の拡張は C# ソースを置くだけなので(改造も含め)すごく便利ですね。
追記:
テストしたら、Twitter は日本語URLに未対応だったので削除です
追記2:
どうも動きがしっくりこないのでOFFにしました。
BlogEngine.Net もバージョンアップしているので、切替時に再挑戦してみます。
追記3:
別の方法で Facebook の "いいね" を付けてみました。
88da2e44-1b37-473e-82d1-2ca196f022e2|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
BlogEngine.NET
by manamana
11. March 2013 15:00
SharePoint 2010 は .Net Framework 4.0 ではサポートされないわけですがうまく回避出来ません。
Excel PowerShell Tool は Visual Studio 2012 の VSTO で作成していますが、
このバージョンでは Framewwok 4.0 以降しか選択出来ません。
そこで作成された dll から Runspace (≒PowerShell) を作ると、CLR 4.0 が選ばれてしまうのです...
← CLRVersion に注目!
dll.config の設定や、アウトプロセスで PowerShell を呼び出す等の技を試してみましたが、うまく行きません。
うまく行ったとしても、Framework 4.0 に加え WMF3.0 も必須になるので本末転倒です。
(※アウトプロセス起動はWMF3.0からの機能)
いろいろ考えたのですが、PS Tool を PowerShell 2.0 と 3.0 用で分けるのが良いと判断しています。
そのためには Visual Studio 2010 に再登場願わなければ…
PowerShell 3.0 は、Framework 4 + WMF3.0 が必須なのでWin7/Server 2008R2 では追加インストールとなりますが、
Win8/Server 2012 の時代だし問題ないでしょう。
それより、WMF3.0 を入れた環境で、あえて PowerShell 2.0 を使う…といった場合に問題が出そうです。
PowerShell のバージョンを選択できるメニューを追加するなりで対処できるつもりですが、そんなに需要はないでしょうww
それよりも PS Tool にコンソール機能をつけるとかをやりたいです。
追記:
ちょっと考えてみれば、PS Tool を SharePoint 2010 の環境で動かす必要は全くないですね。
Invoke-Command をリモートから投げてやればOKじゃないです...orz
SharePoint PC に開発環境を入れるのが当たり前になっていたので基本を忘れていました。
Invoke-Command の戻り値は多少癖がありますが、PowerShell のバージョン毎に PS Tool を作るより全然楽です。
22ebfbe3-0a95-4d74-b497-8ba1b6b8d28e|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
PowerShell | VSTO
by manamana
8. March 2013 08:00
Excel PowerShell Tool は .Net Framework 4.0 を採用しています。
SharePoint 2010 用のスクリプトを組んで検証しようとした所、次のようなエラーに会いました。
どうやら SP2010 のコマンドレットは .Net Framework 4.0 環境と相性が悪いようです。
そういえば、PowerShell 3.0 (≒WinMF 3.0) を導入すると SP2010 の管理ができなくなるという話がありました…
これは PowerShell の呼び出しに -version 2 オプションを付けることで回避できる様ですが、
PS Tool にはそのようなオプションはありません…
SharePoint 2013 なら問題ないハズですが、こちらはまだ未経験。なにせリソース食い過ぎで入れる環境がない...orz
SP2010 を無視するわけにはいかないので、対応が必要となりそうです。
f71d2c13-f2d3-425a-9b3e-a9acd17b7f87|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
by manamana
4. March 2013 11:00
管理者をやっていると、各PCにどのようなプログラムがインストールされているかの把握が必要になります。
一台ずつ回って確認するわけにもいかないし、標準の管理ツールでクリックするのも手間です。
PowerShell からリモート上のPCに対して WMI の制御ができることがわかったので、
例によって Excel PowerShell Tool 用のスクリプトを書いてみました。
PcTable と名付けたテーブルに必要な項目を記述しておきます。
ユーザー名が空欄なら、ログインユーザーの権限でアクセスする約束です。※データは環境に合わせて編集してください
この状態で、"Get-Win32Product.ps1" を呼び出すと…
こんな感じで、インストールされているソフトウェアの一覧を取得することができます。
これは、WMI の Win32_product クラスの情報を表示しているだけなので、「プログラムと機能」の一覧とは微妙に異なります。
一致させるためにはレジストリの探索等も必要になりますが、今回はこれで良しとしましょう。
↓↓↓ダウンロード
Get-Win32Product.zip (8.90 kb)
a97c21f3-0e88-44aa-8e21-53c333db015c|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
PowerShell
by manamana
4. March 2013 06:00
PowerShell には WMI を操作するため幾つかのコマンドレットが用意されています。
WMI(=Windows Management Instrumentation)は OS の管理基盤です。
アプリケーションやプロセスの一覧を取得したり削除したりできますが、GUIからそれを意識する事はありません。
Get-WmiObject を使って、XP32というPCにインストールされたアプリの一覧を得るには次のようにします
> Get-WmiObject -ComputerName XP32 -class win32_product -Credetial $c
※$c には認証情報が代入されている
でもこれ、大抵の場合 FireWall で弾かれます。
WMIはRPCの動的ポートを利用しますが、今時のFireWallはRPCの動的ポートからの侵入を許してくれません。
※レジストリを弄ればOKです
こんな時でも WimRM の環境が整っていれば大丈夫です。
> Invoke-Command -ComputerName XP32 -Credential $c { Get-WmiObject -class win32_product }
Invoke-Command を利用して、Get-WmiObject をリモート実行すれば良いだけです。
83e8e2ba-4cb5-4b96-8691-fb92f8d8e98c|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
PowerShell