1 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 16:08:31.66 ID:4oQ1Kxot.net] 前スレ PowerShell -Part 3 https://mevius.5ch.net/test/read.cgi/tech/1539074808/ 次スレは>>980 が立ててね!!
445 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 08:44:24 ID:/txx2vwO.net] 可読性w 可読性に煩いやつ程低レベルだよね 三項演算子とか
446 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 09:05:28.99 ID:W7e3ICMc.net] >>441 お前はRuby禁止のスレでRubyでは〜Rubyでは〜とやるのをやめろ。ノイズにしかならない糞レスはスレの可読性を下げるだけだ。
447 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 09:51:09 ID:LpqCs0qI.net] 440で思い出したけど、powershell coreって今どうなってるんや 自分は実行環境としては5.1をメインで使ってるけど、みんなどこら辺なんや
448 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 10:09:13.32 ID:wIzfCOgT.net] win10プレインストールしか使っとらんわ というかツール勝手に入れられない客先環境で戦うためのツールって認識
449 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 10:48:39.06 ID:oYgVDO6A.net] >>446 > ツール勝手に入れられない客先環境で戦うためのツール ほんそれ。 いまメインでやってる案件だと、お客さんから貸与されてる作業用 PC があって、 お客さんの環境にはそのマシンしか繋げられない。もちろん、世に数多とある便利ツールを 好き勝手に入れることは出来ない。 でも PowerCLI などの PowerShell モジュールのインストールは純正管理ツール扱いで 許可されてるので、構築とか保守作業では PowerShell スクリプトを使いまくってる。 いちいちマウスでカッチンカッチンやってたら、日が暮れちゃうからね・・・。
450 名前:デフォルトの名無しさん [2020/06/24(水) 12:17:32.10 ID:9MFoHisW.net] >>442 なるほど。 どうも。
451 名前:デフォルトの名無しさん [2020/06/24(水) 21:01:47.98 ID:jVaXlMW4.net] scriptblock[] を受け取って、scriptblockをそれぞれスレッドで動かして パイプでつないで実行するfunctionを書きたいんだがうまく書けない ようするに $s = [datetime]::Now 1 .. 10 | % { sleep 1; ">$_" } | % { sleep 1; ">$_" } | % { sleep 1; ">{0} {1} " -f $_, ([datetime]::Now - $s).TotalSeconds } を実行すると >>>1 3.1179897 >>>2 6.1354357 >>>3 9.1403334 >>>4 12.1434852 と3秒間隔で結果が出るんで $s = [datetime]::Now threadedpipe @( { 1 .. 10 }, { % { sleep 1; ">$_" } }, { % { sleep 1; ">$_" } }, { % { sleep 1; ">{0} {1} " -f $_, ([datetime]::Now - $using:s).TotalSeconds }}) みたいに書いて、最初が3秒目で1秒間隔で結果出力したい いろいろ試して諦めたんだが、そもそもPowerShellではこういうfunctionは書けないの?
452 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 22:06:24.12 ID:VGKuFIs7.net] powershellのコマンドはプロセス作らないから無理じゃね マルチスレッドをそんなお手軽に制御できたら夢みたいだけど
453 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 00:26:33.50 ID:GAspYPHa.net] あれでもForeach-object あたりにparallelこなかったっけ
454 名前:デフォルトの名無しさん [2020/06/25(木) 00:40:28.26 ID:BtDpxRK3.net] 並列に動かすってことは普通にやれば1秒間隔じゃなくてほぼ同時に出力されることになる どういう意図なのかはわからないけど無理やりやるんなら入力側で一秒ずつ待ってやるか $sw = [Diagnostics.Stopwatch]::StartNew() 1..10 | % { ">$_"; sleep 1 } | % -pa { sleep 1; ">$_" } | % -pa { sleep 1; ">$_" } | % { "{0} {1:F2} " -f $_, $sw.Elapsed.TotalSeconds } もしくは出力側で一秒ずつ待ってやるか 1..10 | % -pa { sleep 1; ">$_" } | % -pa { sleep 1; ">$_" } | % { sleep 1; "{0} {1:F2} " -f $_, $sw.Elapsed.TotalSeconds }
455 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 00:44:41.05 ID:LTqYJW83.net] シェルスクリプトみたいに各プロセスが並列的に流れてくるテキストを処理して… みたいのをやりたいのかなと推測してる
456 名前:デフォルトの名無しさん [2020/06/25(木) 08:46:34.24 ID:L3VdfOGw.net] そうそうそういうこと イメージとしては https://ja.wikipedia.org/wiki/命令パイプライン パイプラインのステージごとに1スレッド起動して全データで使いまわしたい 4ステージのパイプラインなら4スレッドで動かす ForEach-Object の -Parallel はデータごとにスレッドを起動するから別物 スレッドプールで使いまわすにしてもちょっと違う ちなみに sleep させてるけど時間がかかる処理の代用ね
457 名前:デフォルトの名無しさん [2020/06/25(木) 08:53:56.13 ID:L3VdfOGw.net] こっちの方がイメージが近いかも https://ja.wikipedia.org/wiki/パイプ_(コンピュータ)
458 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 09:37:48.10 ID:piKX+XZq.net] 普通にワンライナー諦めれば次の作業にすすめるんじゃない?
459 名前:デフォルトの名無しさん [2020/06/25(木) 09:50:30.28 ID:L3VdfOGw.net] ワンライナーなんか関係ないんだけど 原理は >>416 にあるから、それを簡単に実現できるように function threadedpipe { param([scriptblock[]] $sbs) を書きたいと言ってる
460 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 09:56:30.77 ID:1+fg5ofc.net] あぁまたこいつだったか
461 名前:デフォルトの名無しさん [2020/06/25(木) 10:49:27.00 ID:dZiolc11.net] >パイプラインのステージごとに1スレッド起動して全データで使いまわしたい これが根本的に間違ってるだろ。 パイプで連結するってことは、前後(依存)関係があるってことで、それぞれをスレッド分割したところで全く意味がない。
462 名前:デフォルトの名無しさん [2020/06/25(木) 11:16:02.92 ID:L3VdfOGw.net] 何言ってんの? パイプラインってものをわかってない これスクリプトファイルにして試してみ function recvdata { foreach ($i in 1 .. 10) { sleep 1; $i }} filter mul10 { sleep 1; $_ * 10 } filter add1 { sleep 1; $_ + 1 } filter fmtresult { "{0} {1}" -f $_, ([datetime]::Now - $script:s).TotalSeconds } "スレッドなし" $s = [datetime]::Now recvdata | mul10 | add1 | fmtresult "ステージごとに別スレッド" $s = [datetime]::Now Start-ThreadJob { filter add1 { sleep 1; $_ + 1 } Start-ThreadJob { filter mul10 { sleep 1; $_ * 10 } Start-ThreadJob { function recvdata { foreach ($i in 1 .. 10) { sleep 1; $i }} recvdata } | Receive-Job -Wait -AutoRemoveJob | mul10 } | Receive-Job -Wait -AutoRemoveJob | add1 } | Receive-Job -Wait -AutoRemoveJob | fmtresult
463 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 11:35:16.74 ID:emOdy//g.net] きたない
464 名前:デフォルトの名無しさん [2020/06/25(木) 11:41:54.06 ID:L3VdfOGw.net] んだからfunction threadedpipeを作って見やすくしたいっつってんだろ
465 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 12:35:03.44 ID:WfI766VN.net] そこじゃないだろ
466 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 13:13:44.27 ID:sZY/v5D+.net] >>462 単に興味本位で聞くんだけど、差し支えなかったら教えて。 具体的にどんなデータをどんな状況で処理しようとしてるの?
467 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 16:37:26 ID:MV6c2Qez.net] なにけんけんしてんの?
468 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 20:19:35.75 ID:hxSOAVLp.net] >>462 繰り返しになるけどPSはunixシェルと仕組みが全然違うから厳しいと思う パイプのバッファリングはどう仕組むつもりなの?
469 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 21:11:04 ID:L3VdfOGw.net] いまだにこんな見当違いを目にしてびっくり 試せるように >>460 を書いたのに試してないのかな Start-ThreadJobが使えない環境なら、代わりにStart-Jobを使っても動くぞ スレッドとジョブの起動速度差で少し遅いけどちゃんと動くから試してみろよ というわけで、動作することはちゃんと確認できてる 俺が聞いたのは、>>460 みたいにごちゃごちゃ書くのが面倒だから threadedpipe @({recvdata}, {mul10}, {add1}, {fmtresult}) のように書けるような function threadedpipe が作れるかどうかなの まあ制約付きで一応できたんだけど
470 名前:420 mailto:sage [2020/06/25(木) 23:05:56.80 ID:ZIjS4UcO.net] とりとめもなく、推敲もなく適当に書き散らかしてごめんなさい レスありがとうございます 理解して、Powershell組むのはかなり困難そうなので Myコピペライブラリでも作って、理解しないでも組めるような 体制を作っていこうと思います ありがとうございました。 ちなみにファイル作成は >>で用は足りました
471 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 23:48:32.33 ID:GAspYPHa.net] きたないコードで目的も意味不明 まさに自慰
472 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 01:13:06.63 ID:UcUHbC3j.net] 質問者より明らかにレベル低いのにイチャモンだけは一流だな だまってろよお前は
473 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 05:47:21.88 ID:ZKLfm8jC.net] >>466 > パイプのバッファリングはどう仕組むつもりなの? 普通にFIFOを実装するだけだろ 何が難しいと思ってるんだ?
474 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 06:30:47.02 ID:uqHA56uo.net] >>470 お前もだなw
475 名前:デフォルトの名無しさん [2020/06/26(金) 07:02:56.31 ID:rwBI62Tc.net] ここがどうだとかじゃなくて、 汚いとかって言い方傷つくだろうが
476 名前:デフォルトの名無しさん mailto:sage [2020/06/26(金) 10:47:41 ID:lJi08xny.net] >>449 こんな感じ? ただ動くだけのサンプル。エラー処理とかオブジェクトの後始末とか何もしていない。 function Invoke-ThreadedPipeline([ScriptBlock[]] $ScriptBlock) { $p = $ScriptBlock | % { $p = [RunspaceFactory]::CreateRunspace().CreatePipeline() $p.Commands.AddScript($_) $p.Runspace.Open(); $p.InvokeAsync() $p } while ($p = @($p | ? {-not $_.Output.EndOfPipeline})) { $i = [Threading.WaitHandle]::WaitAny(($p | % {$_.Output.WaitHandle})) $o = $p[$i].Output.Read($p[$i].Output.Count) if ($i -lt $p.Length - 1) { $null = $p[$i + 1].Input.Write($o, $true) if ($p[$i].Output.EndOfPipeline) {$p[$i + 1].Input.Close()} } else { $o } } } $o = Get-Date Invoke-ThreadedPipeline ( {1..10}, {process {Start-Sleep 1; ">$_"}}, {process {Start-Sleep 1; ">$_"}}, {process {Start-Sleep 1; ">$_"}} ) | % {'{0} : {1}' -f $_, (New-TimeSpan $o).TotalSeconds}
477 名前:474 mailto:sage [2020/06/26(金) 10:49:06 ID:lJi08xny.net] スクリプトブロックのバインドとか、スコープとか、面倒な問題は見ないふり。 そもそも、PowerShell のスコープはスレッドセーフにはできていないので、 問題に対処するのは、ほとんど不可能なのかも。
478 名前:デフォルトの名無しさん [2020/06/26(金) 12:23:31.85 ID:hzH3p+iw.net] IT掲示板群 ttp://x0000.net/forum.aspx?id=15 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net 数学 物理学 化学 生物学 天文学 地理地学 IT 電子 工学 言語学 国語 方言 など simulationライブラリで純粋な関数式プログラミングをする ttp://x0000.net/topic.aspx?id=3631-0 UIライブラリ (C#, 2D) を作ったよ ttp://x0000.net/topic.aspx?id=3688-0 連続と離散を統一した! ttp://x0000.net/topic.aspx?id=3709-0 4Dエンジン(画像有り) ttp://x0000.net/topic.aspx?id=3677-0 matrixのライブラリ ttp://x0000.net/topic.aspx?id=3711-0 ある強力なFor関数 ttp://x0000.net/topic.aspx?id=3630-0 SQLライブラリ ttp://x0000.net/topic.aspx?id=3675-0 PS malloc / free を実装してみた (C#) ttp://up.x0000.net/files/TMallocTest.zip
479 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 04:12:29.94 ID:sb7IOZLx.net] 教えてください。 powershell.exeに "powershell.exe"が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。 ってダイアログが出て怒られるのだが、 これってどういうことですか?
480 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 08:19:48.13 ID:EbIp5fqD.net] >>477 単なるウケ狙いなら別だけど、本気でなんとかしたいのならば、 前後の経緯を含めて詳細に説明してもらわないとなんとも言えない
481 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 09:06:15.18 ID:sb7IOZLx.net] そうですねすみません。 Python3.6、Bazel 2.0.0、MSYS2、Visual C++ Build Tools 2019、WMF5.1、 CUDA toolkit 10.1、cuDNN 7.6を入れて、Tensorflow 2.2をビルド。 x64 Native Tools Command Prompt for VS 2019から、bazel buildでビルド中に、 「powershell.exeが見つかりません。〜」のダイアログが出る。ダイアログの左上はpowershell.exe。 放置すると最大4個出てビルトが一時停止するが、ダイアログの「OK」で閉じると再開する。しばらくすると、また出る。 PCは、 OS:Windows7pro sp1 x64 CPU:Core2Quad Q9550 GPU:Geforce GTX1650super MEM:8G
482 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 09:07:58.29 ID:sb7IOZLx.net] です。 何か気が付くところがあれば教えてください。
483 名前:デフォルトの名無しさん [2020/07/06(月) 15:26:47.18 ID:ENMHKR++.net] powershell.exeが見つからない。 だからこそ、poweshell.exeが見つからなくてはと思っている。
484 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 16:00:54.38 ID:AV85qEaL.net] はいすべった
485 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 19:14:17.53 ID:mGwQnOrU.net] PATHが通ってないんじゃないの サポート切れのWindows7を使い続けてて大丈夫か
486 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 19:34:12.08 ID:BdiDJNUx.net] 建前上esuあるから必要な部署はそれ当てて使ってるよ
487 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 20:54:49 ID:zdAH+P0d.net] win7だって(自分で削除しなけりゃ)普通にpathは通っているはずだけど まあ確かめてみることだね
488 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 20:56:13 ID:0H1iFJXS.net] ダイアログが出てる時にタスクの中にpowershell.exeがいませんでした。 誰が出しているのか追いかけてみます。 お騒がせしました。
489 名前:デフォルトの名無しさん mailto:sage [2020/07/06(月) 21:05:43.69 ID:fLXZOc4N.net] 32bit版 or 64bit版を探しにいってるんじゃないの?
490 名前:デフォルトの名無しさん [2020/07/07(火) 12:27:32.25 ID:Csl+eNq2.net] Windows 10 なら、コマンドプロンプトで、 where powershell と入力すると、 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
491 名前:デフォルトの名無しさん mailto:sage [2020/07/07(火) 21:09:26.46 ID:IcFS4Epu.net] whereは10だけじゃなくて7にも標準搭載されてる 98や2000ならリソースキットに含まれてる
492 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 09:02:38.89 ID:n9XGFFVi.net] NuGetパッケージ使いたい時ってどうすれば使えんの 例えばSeleniumを使いたい場合C#なら dotnet add package Selenium.WebDriver これで使えるようになるけどPSの場合はどうすれば
493 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 21:53:51.85 ID:I6xaQmI+.net] Make using NuGet packages installed with Install-Package easier to use - make Add-Type support NuGet packages https://github.com/PowerShell/PowerShell/issues/6724
494 名前:デフォルトの名無しさん mailto:sage [2020/07/17(金) 09:19:06 ID:6MuP2T5H.net] v6.2.7 https://github.com/PowerShell/PowerShell/releases/tag/v6.2.7 v7.0.3 https://github.com/PowerShell/PowerShell/releases/tag/v7.0.3
495 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 01:22:35.38 ID:r0N61jeX.net] 明治の「 おいしい牛乳 」ってあるけど 「 おいしい 」って自分で付けちゃうなんて 強気というかふてぶてしいよな? 「 PowerShell 」からも同じにおいがするぜ
496 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 01:48:02.23 ID:UQ3TOH2s.net] Apple & IBM「…」
497 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 10:09:22 ID:860vhoVN.net] Powerこそ力
498 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 10:37:13 ID:56CkEgqB.net] shellこそ貝殻!
499 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 14:36:37.83 ID:jOZb/2Gr.net] 💪🐚
500 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 14:40:35.13 ID:30uJqngI.net] powerpoint 力点?
501 名前:デフォルトの名無しさん mailto:sage [2020/08/05(水) 12:02:30 ID:gYncIR+S.net] >>131 >>132 pwshw 普通のコンソールアプリだとリンクオプション変えるだけでできる気がするが 何が長引いとるんや? windows以外にも対応するのが大変なんかな
502 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 17:41:10.43 ID:e4hfVbk2.net] ある値で、とあるファイルをgrep検索かけて grepで引っかかったら 変数に0、grepで引っかからなかったら変数に1 ということをしたいのですが、どんな方法で実現できますでしょうか。 linux でいうとこういうものです # cat hoge.txt | grep abc ←知りたいのはここ相当のもの # echo $? 0 ←abcが引っかかった # # cat hoge.txt | grep abc ←知りたいのはここ相当のもの # echo $? 1 ←abcが引っかからなかった # よろしくお願いいたします。
503 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 18:00:29.06 ID:3scCogHG.net] $r = gc hoge.txt | sls abc if ($r -ne $null) { # 引っかかった & $rにはslsの結果 } else { # 引っかからない }
504 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 18:07:53.30 ID:e4hfVbk2.net] >>501 ありがとうございます!ばっちりです。 追加で申し訳ないんですけど、これを変数をgrep対象にして 戻り値を取得する事ってできますでしょうか? > Write-Output $hoge aaa ←こんな感じで複数行はいってる変数 bbb ccc ddd eee ffff
505 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 18:56:58.07 ID:3scCogHG.net] $hoge | sls abcでいいんじゃね
506 名前:デフォルトの名無しさん [2020/08/13(木) 19:18:09 ID:rGVB7rFL.net] (cat hoge.txt) -as [string] -cmatch "abc" とか? TrueFalseになっちゃうけど
507 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 20:45:21.78 ID:hEr1UF+A.net] ふつーはifに直接つっこむ if (Select-String abc hoge.txt -CaseSensitive -Quiet) { if ($hoge | Select-String abc -CaseSensitive -Quiet) {
508 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 21:13:55.51 ID:takIe+yE.net] 個人的には>>504 のTrueFalse管理が好きかな 01なら簡単に変換出来るし $r = (cat hoge.txt) -as [string] -cmatch "abc"; [int]!$r;
509 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 22:02:49.13 ID:hEr1UF+A.net] 巨大ファイルを全部なめたいの?
510 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 05:21:16 ID:SCMnTycc.net] 漏れは、Windows 10, WSL, Ubuntu 18.04 を入れているから、 grep は、Linux 側でやるか、Ruby などを使う Windows側のPowerShell などでは、やらない。 複雑なスクリプトは、Linux側のRubyでやる
511 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 07:16:55.02 ID:fFUBtJk9.net] >>501 gcの結果って配列でしたっけ? 配列の$nullとの比較の場合、nullを左辺にしないといけないんじゃなかったでしたっけ? もうpowershell側で修正されてるかな
512 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 08:15:51.24 ID:beR79RQl.net] 推奨 NG ワード: Ruby 漏れ
513 名前:デフォルトの名無しさん [2020/08/14(金) 23:17:26.92 ID:SCMnTycc.net] >>502 Linux のgrep なら、 AND 検索、パイプで grep -i 単語1 ./* | grep -i 単語2 OR 検索、-e で grep -i -e 単語1 -e 単語2 ./* 途中で改行しても、同じ grep -i "単語1 単語2" ./*
514 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 16:13:38.92 ID:qyy6aN9C.net] >>509 -eqの配列フィルタのことだと思うけどgcやslsは$nullを含む配列は返さないから問題ない
515 名前:デフォルトの名無しさん mailto:sage [2020/08/24(月) 20:47:25.66 ID:VQq4kdHe.net] ストアにPowerShell Preview登場 https://www.microsoft.com/ja-jp/p/powershell-preview/9p95zzktnrn4
516 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 20:56:27.18 ID:+ct4ya2Y.net] GitHubのPreviewとどう違うのかと思ったら、アイコンが違うな なんか気持ち悪い色になってる
517 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 22:59:28.31 ID:SeBJUZXv.net] powershellスクリプトで高DPI対応をしたいのですが、可能でしょうか? やりたい事は高DPI環境で画面キャプチャを取ることですが、 スケーリングに応じて実際の解像度より小さい値が画面サイズとして返ってきてしまいます。 SetProcessDPIAware()を最初に呼んでも効果がありませんでした。 普通のアプリのようにEXEにmanifestファイルを埋め込むこともできないので無理でしょうか?
518 名前:デフォルトの名無しさん [2020/08/29(土) 13:02:51.79 ID:z6uRv8YY.net] 使ってるエクセルアドインのアプデが不定期に入るんだけど、 その時はエクセルを閉じなきゃいけないので、エクセルVBAでアプデ処理できない なのでVBSでセンドキーしてたんだけど、APIなら画面ロック状態でもOKと でも素のVBSでAPIを使うには、エクセルを呼び出すと(エクセル4マクロ) お、パワーシェルはAPIが使えるスクリプトか、やっと使う時が来た ググると MessageBox のサンプルはあるものの、肝心の FindWindow と PostMessage のサンプルがない MessageBox なんかどんなバッチで使うんだと 適当に書いてみたら、しれっとウィンドウハンドル0で沈黙 ググったら、管理権限がどうとかいう話もあり、それ以上は調べてないけどハマり警戒で断念 その話がほんとだとすると、サードパーティー製のアドインを起動してる標準ユーザーに管理権限を持たせるわけにいかない(スパイ警戒) お、ワードにもVBAあるじゃんかで普通に解決w VBA最強w バッチはVBAとDOSが安定 ドキュメントを持たないVBAのみのスクリプト、「VBAS」をリリースした方が良かったんじゃないかね (パスワードの暗号化だけパワーシェル使ってるが) もっと言うと、VBAでドットネットコンポーネントを呼べるようにするとか(呼べる?) んでパワーシェルはわざわざ長い名前のドットネットコンポーネントを呼び出してセンドキーのサンプルばかり センドキーならVBAでもVBSでもいいじゃんていう 名前も短いし
519 名前:デフォルトの名無しさん [2020/08/29(土) 13:37:55.53 ID:z6uRv8YY.net] 関係ないけどアクセス権て、最重要が情報漏洩、つまり読み取り権限であって、インストール権限なんかどうでもいいんだよな ソフトなんか他社製だし秘密でもなんでもない 壊れても、再インストールするだけ
520 名前:デフォルトの名無しさん [2020/08/29(土) 13:53:57.66 ID:z6uRv8YY.net] ていうか WindowsUpdate や OfficeUpdate がまさにその考え方だよね 最新化は自動であるべきで権限は不要 Officeのアドインもそうあるべき 初回だけ許可が必要で、アプデは自動
521 名前:デフォルトの名無しさん mailto:sage [2020/08/29(土) 16:26:04.73 ID:BYm68LqT.net] ID:z6uRv8YY スレ住民に言いたいこと・聞きたいことがあるのであれば、もう少し簡潔に書いてもらえませんか? あと、2〜3行ならともかく >>516 ぐらいのボリュームで書くなら、読点だけじゃなく句点も省略しないほうが良いですよね。正直、読みづらい。 申し訳ないのですが、斜め読みすら断念しました。
522 名前:デフォルトの名無しさん mailto:sage [2020/08/29(土) 17:29:18.45 ID:uW7NzDft.net] >>519 読む必要ないよ PS腐してVBAマンセーしてるだけ セキュリティの基本も知らず、rwxのxなんて無意味って宣ってる
523 名前:デフォルトの名無しさん mailto:sage [2020/08/29(土) 21:29:35.58 ID:2f/XylsB.net] スタートメニューを右クリックしたら、 一般ユーザー用・管理者用の、2種類のPowerShell がある コードも管理者用では、ExecutionPolicy だったか忘れたけど、特別な書き方がある
524 名前:デフォルトの名無しさん [2020/08/30(日) 10:18:34.85 ID:j2JU6h3h.net] >>520 セキュリティの基本が分かってないのはマイクロソフト マイクロソフトはメーカーだからシステムを守ることをセキュリティと勘違いしてる 守るべきはユーザーの持つ秘密情報 プログラムが改変されようとも、最終的にそのユーザーコンテキストで読めてはいけないデータにアクセスできなければよい プログラムは壊れても再インストールできるが、情報漏洩は回復できない
525 名前:デフォルトの名無しさん [2020/08/30(日) 10:21:08 ID:j2JU6h3h.net] 相変わらず、無内容の人格攻撃文化 腐ってんね
526 名前:デフォルトの名無しさん mailto:sage [2020/08/30(日) 11:22:28.54 ID:roK+ZKVb.net] >>522 「MS は基本がなってない!MS よりも、俺のほうが正しいぞ!」 で、あなた様はどんなバックグラウンドを持つお方で、これまでどんなことを成してきた方なのですか?
527 名前:デフォルトの名無しさん mailto:sage [2020/08/30(日) 11:25:22.99 ID:6EFwsuE9.net] >>523 自分の無理解を棚上げしてスレ違いでむやみにあちこち叩くの辞めた方が良いよ 人に教えを請う立場の書き込みにはとても見えない PSスクリプトの実行に必要なのは監理者権限ではなく適切な実行ポリシーの設定 これだけ教えてあげたんだからもうここには書き込まず一人で調べてね
528 名前:デフォルトの名無しさん mailto:sage [2020/08/30(日) 13:47:22.04 ID:e/T9q/5N.net] 昔からマイクロソフトをdisって一人前面する技術者は一定数いた
529 名前:デフォルトの名無しさん mailto:sage [2020/08/30(日) 14:37:48.96 ID:Y6JzX6tf.net] 「Microsoftのバグ」との戦い https://xtech.nikkei.com/it/article/COLUMN/20080819/312956/
530 名前:デフォルトの名無しさん mailto:sage [2020/08/30(日) 15:57:42.01 ID:PraMtyj1.net] >>526 M$とか書く奴おるねw
531 名前:デフォルトの名無しさん [2020/08/30(日) 17:34:08 ID:6ShNfOXb.net] >>521 管理者権限じゃないと実行出来ないコマンドを使う時用くらいの認識しかなかったわ
532 名前:デフォルトの名無しさん [2020/08/30(日) 21:51:36.19 ID:g5q4aE3p.net] Microsoftは「製品の問題点」と「仕様」を最初に明確にするので、それも批判されてたよね。 Linuxの場合、サポートを提供するベンダーで「バグと仕様を明確にできる」のはRedhatくらい。 その他のベンダーは明確にすることが出来ない。 Kernel作ってるのは他人だから。 「仕様として今後も維持される動作」か「バグとして修正される動作」か即座に知ることが出来るのは、待たずに作業を続けられるので、とても良いことのように感じるけど、実際は批判が多い。
533 名前:デフォルトの名無しさん [2020/08/31(月) 01:56:18.43 ID:Sr2UUXBk.net] ついに公務員の副業が解禁される時代が到来した https://hybridstyle.net/side-job065/ フリーランス市場規模が20兆円を突破 -副業は8兆円- https://hybridstyle.net/work-style020/ 時代は週休3日制へ【週休3日制導入企業まとめ】 https://hybridstyle.net/work-style016/ 会社員の副業が急増、副業フリーランス4年で3倍、経済規模は約8兆円??副業収入は平均74万円 https://www.businessinsider.jp/post-165077#cxrecs_s 本業のストレス解消、副業で月70万、転職のお試し…会社に内緒で副業する人たちの本音 https://www.businessinsider.jp/post-176835#cxrecs_s どんな仕事でいくら稼いでいる? 副業をしている13人に聞いたそのリアル https://www.businessinsider.jp/post-180772#cxrecs_s 会社が個人を縛り付ける時代は終わった。これからは、個人が仕事を求めて、チャンネルのように会社を切り替えていく。 https://www.wantedly.com/companies/newpeace/post_articles/65530 誰も教えてくれなかった「フリーランスは厳しい」ではなく「甘い」という真実。 https://www.wantedly.com/companies/newpeace/post_articles/54124 【特集】年収1000万円以上「フリーランスの流儀」vol.2 https://tabi-labo.com/286733/journey-six-figure-freelance-nathan 「排出物ゼロ、廃棄物ゼロ、貧困ゼロ」究極のエコ・リゾートがフィリピンに https://tabi-labo.com/284193/nautilus-eco-resort 仕事は9割外注すれば売り上げが爆増する https://headlines.yahoo.co.jp/article?a=20190416-00028392-president-bus_all
534 名前:デフォルトの名無しさん [2020/09/01(火) 22:23:09.69 ID:cXm81OcM.net] >>525 だって教えを請う立場じゃないから それはそっちの勝手な思い込み 「普通に解決w」と言ってる通り、文字通り 出来事の感想を述べただけ
535 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:34:51 ID:mz7Z6faK.net] >>532 「MS は基本がなってない!MS よりも、俺のほうが正しいぞ!」 の次は 「俺は教えを請う立場じゃない」 ですか。Ruby厨に次次ぐ逸材が登場ですね。 で、あなた様はどんなバックグラウンドを持つお方で、これまでどんなことを成してきた方なのですか?
536 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:57:48.88 ID:XzhpNrm1.net] >>532 そんなのここじゃなくてTwitterにでも書いてろよ
537 名前:デフォルトの名無しさん [2020/09/01(火) 23:15:36.13 ID:cXm81OcM.net] >>524 ところで 建物でいうと、プログラムは家電等の快適装備 ユーザー情報は金庫 A.家電の設置 B.金庫の開錠 どっちがセキュリティレベル上かね? どうも(MSというより)メーカーは、Aを最高権限と考えてる様子 (コンピューターでは物理的に、金庫機能も家電の1つに過ぎないからだろうけど) ボタンをユーザーが押したからなんなのか コンビニの年齢確認と同じで、何を確認したのか ダイアログでベンダーを確認したか? リアルな名称のダイアログなんか簡単に作れる(続く)
538 名前:デフォルトの名無しさん [2020/09/01(火) 23:15:52.09 ID:cXm81OcM.net] >>524 (続き) たとえ本物でも、ベンダーに悪意がないことをどうやって確認するのか まして国が株価操縦してるモラル破壊な社会、大企業だからって信用できない そこで A.保護ユーザー(管理者) B.実行ユーザー(標準) こう分け、Bでベンダーソフトを実行すれば、Aの機密情報を読めない と思いきや、アプデ時に昇格ボタンを押してしまうと、なんでも読める権限で実行される ボタンをユーザーが押そうがバッチで押そうが同じ 全くセキュリティになってない ならば、あえてBを管理者にし、B自身のコンテキストでアプデさせる Aのフォルダから「Administrators」を外しておけば、 インストール権限がありながら、Aの機密情報を読めない、はず (この時、所有権や偽装でUACが反応しない状態なら、 その特権からも「Administrators」を外し、かわりにAを設定しておく)
539 名前:デフォルトの名無しさん [2020/09/01(火) 23:16:32.08 ID:cXm81OcM.net] >>524 くしくも偶然一部を書いてたが mevius.5ch.net/test/read.cgi/tech/1451927425/876-877 さらに言うと、複数の権限があり、ケルベロスによってサーバー機能による高速取込までユーザーコンテキストを通したシステム ユーザー問合せに即時対応するため、操作ログも一元管理される 操作ログは全ユーザーに追加権限だけがあり、閲覧はシステム権限が必要 アクセス権はテーブル自身にあり、どのようなルートからも突破不可能 行政手続に係る深いプライバシーを大量に扱うので、情報漏洩が命取りになる企業 しかし、そういう別件逮捕のようなことを、「人格攻撃」と言う 別件が議論に関係してはならない それにプライバシー侵害は「誹謗中傷」の要件の一つ @嘘(無根拠な憶測)、Aプライバシーの侵害、B人格攻撃、「誹謗中傷」の3要件を全部兼ね備えるというw で、お前は何をしたのか こっちは人格攻撃気質じゃないので、当然興味ないが
540 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 23:29:07 ID:XzhpNrm1.net] >>535 下手な例えをだすのは無理解の証 >>536 昇格ボタン押せる時点で既に怪しい まともな運用してたら昇格ボタン押すのに監理者のアカウントが必要 例え昇格ボタンを押しても読み取り権限が得られるとは限らない これもまともな運用してたら所有者にしか読み取り権限は得られない つまりユーザーフォルダ内は当該ユーザーしか読み取れないのがまともな運用 結局無理解由来の誤解なわけで、まさに>>527
541 名前:デフォルトの名無しさん [2020/09/04(金) 06:56:56.59 ID:BT/SeEq8.net] 客先も何も自社もポリシー変更できないからバッチは実行できないわ 簡単なファイル操作とかも.batでやることになってる Powershellに移行できない
542 名前:デフォルトの名無しさん mailto:sage [2020/09/04(金) 08:30:44.47 ID:PFscGLUJ.net] ps1をポリシー付きで呼び出す1行バッチを書けばいいんじゃない? 冗長だけどbatをメンテするのに比べたらずっといいと思う
543 名前:デフォルトの名無しさん mailto:sage [2020/09/04(金) 09:00:17.63 ID:nHf7diD2.net] CurrentUserすら許さずbatはOKって 客先はともかく自社でそれは謎
544 名前:デフォルトの名無しさん mailto:sage [2020/09/04(金) 10:38:48.17 ID:HOWqt3vZ.net] >>539 まともな情シスを抱えていて、かつ運用ルールが徹底している会社なら、 きちんと申請すれば大丈夫なように思えるけど。
545 名前:デフォルトの名無しさん mailto:sage [2020/09/04(金) 10:55:49.00 ID:9bn0no2k.net] Powershellってマイクロソフト提供のスクリプトですら証明書の期限切れがあるからちょっと不安になる