Windows PowerShell Part4

このエントリーをはてなブックマークに追加
396名無し~3.EXE:2015/01/17(土) 21:37:57.28 ID:KYtNM984
あと、IT系は、政府が優先的に派遣法改悪の最初の犠牲者にするから、
選ばない方が良い。
397名無し~3.EXE:2015/01/18(日) 09:48:48.16 ID:4W85U26x
>>394
比べるほうがおかしいだろ
398名無し~3.EXE:2015/01/18(日) 17:07:30.94 ID:i1TnYdID
>>394
あれ、おれがやったら、それほどの差はでない。
Millisecondsで
137
28 
という値になったよ。
399名無し~3.EXE:2015/01/24(土) 22:29:55.72 ID:uv0cNTa6
Powershell vs Applescript
http://www.techwars.io/fight/powershell/applescript/

圧倒的じゃないか、我が軍は
400名無し~3.EXE:2015/01/25(日) 02:20:00.69 ID:a6TGa4RQ
ようし、つぎはシェルスクリプトと比べてみよう
401名無し~3.EXE:2015/01/25(日) 20:36:31.98 ID:1bBvdYii
cygwin 相手に速度負けするから止めて
402名無し~3.EXE:2015/01/26(月) 20:39:07.28 ID:exIsBPN9
今回のWindows10previewのバージョン情報
OSのビルド番号とPowerShellのマイナー番号が同じになってるっぽい
細かい違いはわからん

Name               Value
----               -----
PSVersion             5.0.9926.2
WSManStackVersion      3.0
SerializationVersion        1.1.0.1
CLRVersion            4.0.30319.0
BuildVersion           10.0.9926.2
PSCompatibleVersions     {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion  2.2
403名無し~3.EXE:2015/01/28(水) 21:32:43.23 ID:cM3+Q5uH
ノーマルのWindows8.1で
PowershellでQoSの設定をしたけど
機能しないのですが、いい方法とか見落としていることとかありませんかね・・・?
(8.1 Proだと動作するのを確認しました。ローカルグループポリシーとPowershellの両方で)

New-netqospolicy -Name "Mail" -IPDstPort 465 -IPProtocol TCP -ThrottleRateActionBitsPerSecond 500KB
404名無し~3.EXE:2015/01/29(木) 09:48:32.80 ID:iGSye7VZ
違うかもしれないけど、WoW64かな?
405名無し~3.EXE:2015/01/29(木) 17:37:54.39 ID:quBhVR6D
どちらも手動設定で64bit版だから、おそらく大丈夫なはず。
Proとノーマルだと使うレジストリが違うようで
ノーマルだとどうやっても無理ですかね・・・
406名無し~3.EXE:2015/01/30(金) 01:17:06.33 ID:+yrsPmcC
ノーマルだと初期状態ではQoSパケットスケジューラ入ってない、ってことはないかさすがに
407名無し~3.EXE:2015/01/30(金) 02:23:57.46 ID:umW5aLIt
408名無し~3.EXE:2015/01/30(金) 20:18:28.83 ID:voHe85QL
>>406
さすがにそこは大丈夫です。

>>407
対象が鯖っぽいから
クライアントだと違うかな・・・?
409名無し~3.EXE:2015/01/30(金) 20:21:23.94 ID:voHe85QL
所詮、家庭内LANなので・・・
410名無し~3.EXE:2015/01/30(金) 21:49:47.18 ID:bYtcW2zm
コマンド自体は存在するの?
411名無し~3.EXE:2015/01/31(土) 15:51:34.73 ID:n4CehBsX
コマンド自体は成立していて、
設定もGet-NetQoSPolicyで見ると反映されています。

ただ、Proとは違う場所に設定を書き込んでいる模様・・・
"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\QoS"
Proだとここに書き込まれるのですが、無印8.1だとここではないようです。
412名無し~3.EXE:2015/02/01(日) 13:33:16.68 ID:A2uiqx+f
Powershellでサーバ構築とかできるもん?
サイトあれば教えて
413名無し~3.EXE:2015/02/01(日) 15:08:42.98 ID:Ja35gSiY
サーバー構築というのをどういう意味で言っているのかわからないしサーバーの種類もわからない
ソフトのサイレントインストールとか設定ならものによってはある程度可能だけど
0からPowershellでサーバーを作るのは骨が折れると思う

どういうサーバーをどうやって構築したいのかを決めてからググってみてください
414名無し~3.EXE:2015/02/03(火) 21:24:46.54 ID:PZfcBf+r
構築というより設定です。
FTPサイトの追加とかDNSの設定とか
415名無し~3.EXE:2015/02/03(火) 22:14:33.94 ID:fDeLHIlw
そのへんのキーワードにpowershellって追加して検索してみるといい
英語のほうが出てきやすいかもしれんが日本語でもたぶんあるよ
416名無し~3.EXE:2015/02/23(月) 21:04:15.56 ID:Ok+2rOTR
try catch がクソすぎないか?
Reason : ItemNotFoundException
だというので
catch [System.Management.Automation.ItemNotFoundException]
と書いてみたがキャッチできない
catch [System.Management.Automation.RuntimeException]
ならキャッチできた。はぁ?なにこれ。
417名無し~3.EXE:2015/02/24(火) 23:03:42.26 ID:/tjktPOU
Microsoft、「Windows PowerShell ISE」のアドオン「Module Browser」を無償公開
http://www.forest.impress.co.jp/docs/news/20150224_689793.html
418名無し~3.EXE:2015/02/25(水) 10:14:06.05 ID:6wL9ooQ6
>>416
どーゆー場面での話?
うちの環境だと例えばGet-Itemが投げるItemNotFoundExceptionは
catch [System.Management.Automation.ItemNotFoundException] でキャッチできたけど
419名無し~3.EXE:2015/02/25(水) 13:06:04.95 ID:izOR9dvm
>>418
マジか
例えばこんなコード。本当はItemNotFoundExceptionをキャッチしたい

$ErrorActionPreference = "Stop"

$targetfiles = @()
try {
  foreach ($target in $Args) {
    $targetfiles = $targetfiles + @(ls $target | ?{ $_.Name -cmatch ".*\.csv$" })
  }
} catch [System.Management.Automation.RuntimeException] {
  "引数に指定したファイルが存在しません`n$target"
  exit 1
}
420名無し~3.EXE:2015/02/25(水) 21:52:03.36 ID:o0l3e0bG
>>419
.csvが無い時にエラーにしてほしいの?
そのコードだと.csvファイルが無い時はエラーも何も起きない気がするんだけど
421名無し~3.EXE:2015/02/25(水) 23:05:04.97 ID:izOR9dvm
>>420
引数にcsvファイル名を指定する前提だからその場合は ls $target の時点でエラーになるんだよ
$targetfilesが空かのチェックは後続コードでやってる

ていうかそういうことはいいんだよ。
>>419を実行するとItemNotFoundExceptionではキャッチできないのが問題なんだよ。結局PSのバグなのか?
$ErrorはErrorRecordオブジェクトだったり面倒くさい実装しやがって
422名無し~3.EXE:2015/02/25(水) 23:06:24.37 ID:o0l3e0bG
ls $target の所か
$targetに存在しないファイルが来るとItemNotFoundExceptionが投げられる

http://i.imgur.com/T9c0F8U.png
423名無し~3.EXE:2015/02/26(木) 08:33:12.39 ID:9w8clM8u
>>421
もしかしてPowerShellのバージョンは2.0?
バージョンによって挙動が違うらしいけど
それが関係してる?

https://twitter.com/mutaguchi/status/570562195479597057
https://twitter.com/mutaguchi/status/570564740134514688
https://twitter.com/mutaguchi/status/570564935328997377
https://twitter.com/mutaguchi/status/570569659281317889
https://twitter.com/mutaguchi/status/570572243035512833

ActionPreferenceStopExceptionの基底クラスがRuntimeExceptionだから
RuntimeExceptionでもcatchできると

https://msdn.microsoft.com/en-us/library/system.management.automation.actionpreferencestopexception.aspx
424421:2015/02/26(木) 17:51:58.02 ID:AgWRqx80
>>423
おお
わざわざ調べてくれてありがとう
まさにそれっぽいわ

PS C:\Windows\system32> $PSVersionTable

Name                 Value
----                 -----
CLRVersion             2.0.50727.5485
BuildVersion             6.1.7601.17514
PSVersion              2.0
WSManStackVersion       2.0
PSCompatibleVersions      {1.0, 2.0}
SerializationVersion         1.1.0.1
PSRemotingProtocolVersion  2.1

バージョン上げてみる
425名無し~3.EXE:2015/02/26(木) 21:05:12.07 ID:AgWRqx80
バージョン上げたらキャッチできた。
で、>>423https://twitter.com/mutaguchi/status/570572243035512833
も検証してみたがその通りだった。

try {
  ls $Args[0]
} catch [System.Management.Automation.ItemNotFoundException] {
  "ItemNotFoundException"
} catch [System.Management.Automation.ActionPreferenceStopException] {
  "ActionPreferenceStopException"
}

結果:ActionPreferenceStopException

まあこれは百歩譲るとして

} catch [System.Management.Automation.ItemNotFoundException] {
  "ItemNotFoundException"
} catch [System.Management.Automation.RuntimeException] {
  "RuntimeException"
}

結果:RuntimeException
426名無し~3.EXE:2015/02/26(木) 21:09:56.69 ID:AgWRqx80
} catch [System.Management.Automation.ItemNotFoundException] {
  "ItemNotFoundException"
} catch [System.Exception] {
  "Exception"
}

結果:Exception
おいふざけんなコラ

try {
  try {
    ls $Args[0]
  } catch [System.Management.Automation.ItemNotFoundException] {
    "ItemNotFoundException"
  }
} catch [System.Exception] {
  "Exception"
}

これならItemNotFoundExceptionになる 👀
427名無し~3.EXE:2015/02/26(木) 21:19:49.34 ID:AgWRqx80
結論
ver3.0以降ではthrowされた例外をまずActionPreferenceStopExceptionとして
catchブロックをスキャンし、catchできるブロックがない場合に
本来の例外型でcatchブロックをスキャンしなおす

そのためActionPreferenceStopExceptionのスーパークラスである
RuntimeException、SystemException、Exceptionのcatchを
RuntimeExceptionのサブクラスのcatchと並べて書いてはいけない。

マイクロソフトは死ね
428名無し~3.EXE:2015/02/27(金) 01:35:28.89 ID:0XcQcnoR
>>426
なんで426に目玉がつくの?
429名無し~3.EXE:2015/02/27(金) 08:53:44.23 ID:bSthd26A
&amp#128064;
👀
430名無し~3.EXE:2015/02/27(金) 08:54:19.35 ID:bSthd26A
👀
こうか
431名無し~3.EXE:2015/02/27(金) 18:29:37.90 ID:9x7T7vro
練習

&amp#128064;
432名無し~3.EXE:2015/02/27(金) 18:33:06.04 ID:9x7T7vro
あれ?

&$128064
433名無し~3.EXE:2015/02/27(金) 18:35:40.04 ID:9x7T7vro
こうかな?

👀
434名無し~3.EXE:2015/02/27(金) 18:37:45.80 ID:9x7T7vro
ぱちぱち
ユニコードの指定か〜
👏
435名無し~3.EXE:2015/02/27(金) 18:40:26.39 ID:8jWPI845
/*--------------*/
/*---main.asm---*/
/*--------------*/
436名無し~3.EXE:2015/02/28(土) 20:55:47.33 ID:hGktvx7/
俺も目玉練習👀…じゃなくて質問があります

ユーザーが入力した文字列をオプションとしてコマンドに渡したいのですが
どのようにすればいいですか?

$options = ReadHost
> -i input.mp3 -ac 1 -ab 64k output.mp3
ffmpeg $options
例えば↑のようにすると$options文字列全体が単一のオプション
として解釈されてしまうのですが、これを複数のオプションとして渡したいです。

ご存知の方、ご回答お願いします
437名無し~3.EXE:2015/02/28(土) 23:00:28.59 ID:moTz53+a
$options = (Read-Host) -split " "
ffmpeg @options
438名無し~3.EXE:2015/02/28(土) 23:19:54.76 ID:moTz53+a
439436:2015/03/01(日) 00:30:09.87 ID:4pMWpHBt
>437-438
レスありがとうございます!
なるほど、配列にすればいいんですね
目から鱗です

出先から携帯でレスしてるので帰ってから試してみます
めちゃくちゃ助かりました
440名無し~3.EXE:2015/03/01(日) 07:19:23.87 ID:OSMqI2rj
>>437
そっか -split というオプションあるのね。
.NETの機能そのまま使って
(Read-Host).Split(" ")
でもいいですね。
cmdletの中身自体がこれだろうな。
441名無し~3.EXE:2015/03/01(日) 09:08:26.40 ID:8xk8MoFK
>>440
-splitはRead-Hostのパラメータじゃなくて演算子だよ

about_split
https://technet.microsoft.com/ja-jp/windows/dd347708.aspx
442名無し~3.EXE:2015/03/01(日) 18:09:34.71 ID:/aHo9vmY
あ、ほんとだね。
ありがと
443名無し~3.EXE:2015/03/05(木) 03:22:42.31 ID:pIr+FJWY
組織変更に伴い、ファイルサーバとADの置換を行いたいとおもいます。
NTFSのアクセス権をSIDで検索してSIDできれば権限を置換したいのですが可能でしょうか?置換する元データはExcelで旧SIDと新SIDと権限を用意して、上から検索してEOFまで実行していきたいです。
444名無し~3.EXE:2015/03/05(木) 14:58:15.21 ID:v2jdIrjM
>>443
夜中にレスがつかないからってマルチやめれ
http://peace.2ch.net/test/read.cgi/tech/1378978504/373
445名無し~3.EXE
マルチってぜんぜん違う板なんだからいいと思うよ