スポンサーリンク

2013年8月28日水曜日

オフライン PC に .NET Framework 4.0 をインストールする方法

 .NET Framework はフルパッケージをダウンロードしてもインストール時に Language Pack をダウンロードしてインストールしようとするので、結局インターネット接続が必要になってしまう。

 ここで、インストール時のオプションで同時に Language Pack をインストールしないように指定する。
 DOS 窓を立ち上げて、以下のようにオプションを追加して実行する。

D:\dotNetFx40_Full_x86_x64.exe /lang:enu

 これが終わったら、合わせてダウンロードした Language Pack をインストールすれば完了。

2013年8月27日火曜日

PowerShell スクリプトで DOS コマンドを管理者権限で実行する方法

 とある要望で、route print コマンドで表示されるインターフェースの一覧から特定のインターフェースの番号を取得して、それを route add コマンドと使ってルートを設定したい、というのがあった。
 DOS シェルだとこういうのは無理なのかな?というよりそれらしき情報が見当たらなかったので PowerShell でやることに。
 route print してその出力を受け取って、指定のインタフェースの行を抜き出して番号を取得。ここまではいい。
 それを使って route add するところで問題発生。管理者権限を付与した DOS 窓じゃないとルートが追加されない。
 つまり、PowerShell から発行する DOS コマンドに管理者権限を付与しなければならない。
 PowerShell シェル自体を管理者権限で起動し、そこからスクリプトを実行すればいける(と思う、試してはいない)。
 けど、そんな面倒なことはしたくなくて、クリック操作だけでやりたい。
 いろいろ調べたところ、海外のサイトにそれらしきものを発見。
 やり方は「管理者権限でプロセスを実行する」、まんまだけどまさにこの通り。
 要は、.NET Framework の Process クラスを使えばいい、と。
 ほうほう、こういうやり方もあるのかー、というちょっと目から鱗でした。
 重要なポイントだけ抜き出すと以下のような感じ。
$startinfo = new-object System.Diagnostics.ProcessStartInfo   
$startinfo.FileName = $exe  
$startinfo.Arguments = $arguments  
$startinfo.verb = "RunAs"  
$process = [System.Diagnostics.Process]::Start($startinfo)  
ただ、どうしても管理者権限で実行しますけどいいですか?的なダイアログは出ちゃう、仕方ないね。

2013年8月23日金曜日

Zend Framework 2 勉強中

勉強中。 ずーっと頭の中で構想を練っていたブラウザゲームを作りたい。 ただ、画才がないからテキストOnlyのゲーム。シンプルに。