PowerShell -Part 4

■ このスレッドは過去ログ倉庫に格納されています
2020/01/01(水) 16:08:31.66ID:4oQ1Kxot
前スレ
PowerShell -Part 3
https://mevius.5ch.net/test/read.cgi/tech/1539074808/

次スレは>>980が立ててね!!
441436
垢版 |
2020/06/24(水) 08:08:25.26ID:rM4tv+8j
さすがに、バッチでプログラミングしてはいけない!
可読性が低すぎる

Ruby スクリプトなどを起動するだけにしておくべき
2020/06/24(水) 08:40:10.38ID:L+v/qVAN
>>440
用途・要件次第。
業務利用という前提だけど、自分だったらこういうポリシーで緩やかに移行する。

・既存の cmd バッチや WSF、VBS → 基本的には移行(移植)しない
※例外:改修が必要になった場合は個別対応

・新規 → 基本的には PowerShell で作るべき
※例外:極々単純なもの、自分だけが使い捨てするもの
2020/06/24(水) 08:44:24.27ID:/txx2vwO
可読性w
可読性に煩いやつ程低レベルだよね
三項演算子とか
2020/06/24(水) 09:05:28.99ID:W7e3ICMc
>>441
お前はRuby禁止のスレでRubyでは〜Rubyでは〜とやるのをやめろ。ノイズにしかならない糞レスはスレの可読性を下げるだけだ。
2020/06/24(水) 09:51:09.11ID:LpqCs0qI
440で思い出したけど、powershell coreって今どうなってるんや
自分は実行環境としては5.1をメインで使ってるけど、みんなどこら辺なんや
2020/06/24(水) 10:09:13.32ID:wIzfCOgT
win10プレインストールしか使っとらんわ
というかツール勝手に入れられない客先環境で戦うためのツールって認識
2020/06/24(水) 10:48:39.06ID:oYgVDO6A
>>446
> ツール勝手に入れられない客先環境で戦うためのツール

ほんそれ。

いまメインでやってる案件だと、お客さんから貸与されてる作業用 PC があって、
お客さんの環境にはそのマシンしか繋げられない。もちろん、世に数多とある便利ツールを
好き勝手に入れることは出来ない。

でも PowerCLI などの PowerShell モジュールのインストールは純正管理ツール扱いで
許可されてるので、構築とか保守作業では PowerShell スクリプトを使いまくってる。

いちいちマウスでカッチンカッチンやってたら、日が暮れちゃうからね・・・。
448デフォルトの名無しさん
垢版 |
2020/06/24(水) 12:17:32.10ID:9MFoHisW
>>442
なるほど。
どうも。
449デフォルトの名無しさん
垢版 |
2020/06/24(水) 21:01:47.98ID:jVaXlMW4
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は書けないの?
2020/06/24(水) 22:06:24.12ID:VGKuFIs7
powershellのコマンドはプロセス作らないから無理じゃね
マルチスレッドをそんなお手軽に制御できたら夢みたいだけど
2020/06/25(木) 00:26:33.50ID:GAspYPHa
あれでもForeach-object あたりにparallelこなかったっけ
452デフォルトの名無しさん
垢版 |
2020/06/25(木) 00:40:28.26ID:BtDpxRK3
並列に動かすってことは普通にやれば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 }
2020/06/25(木) 00:44:41.05ID:LTqYJW83
シェルスクリプトみたいに各プロセスが並列的に流れてくるテキストを処理して…
みたいのをやりたいのかなと推測してる
454デフォルトの名無しさん
垢版 |
2020/06/25(木) 08:46:34.24ID:L3VdfOGw
そうそうそういうこと
イメージとしては https://ja.wikipedia.org/wiki/命令パイプライン

パイプラインのステージごとに1スレッド起動して全データで使いまわしたい
4ステージのパイプラインなら4スレッドで動かす
ForEach-Object の -Parallel はデータごとにスレッドを起動するから別物
スレッドプールで使いまわすにしてもちょっと違う

ちなみに sleep させてるけど時間がかかる処理の代用ね
455デフォルトの名無しさん
垢版 |
2020/06/25(木) 08:53:56.13ID:L3VdfOGw
こっちの方がイメージが近いかも
https://ja.wikipedia.org/wiki/パイプ_(コンピュータ)
2020/06/25(木) 09:37:48.10ID:piKX+XZq
普通にワンライナー諦めれば次の作業にすすめるんじゃない?
457デフォルトの名無しさん
垢版 |
2020/06/25(木) 09:50:30.28ID:L3VdfOGw
ワンライナーなんか関係ないんだけど

原理は >>416 にあるから、それを簡単に実現できるように
function threadedpipe { param([scriptblock[]] $sbs)
を書きたいと言ってる
2020/06/25(木) 09:56:30.77ID:1+fg5ofc
あぁまたこいつだったか
459デフォルトの名無しさん
垢版 |
2020/06/25(木) 10:49:27.00ID:dZiolc11
>パイプラインのステージごとに1スレッド起動して全データで使いまわしたい
これが根本的に間違ってるだろ。
パイプで連結するってことは、前後(依存)関係があるってことで、それぞれをスレッド分割したところで全く意味がない。
460デフォルトの名無しさん
垢版 |
2020/06/25(木) 11:16:02.92ID:L3VdfOGw
何言ってんの?
パイプラインってものをわかってない
これスクリプトファイルにして試してみ

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
2020/06/25(木) 11:35:16.74ID:emOdy//g
きたない
462デフォルトの名無しさん
垢版 |
2020/06/25(木) 11:41:54.06ID:L3VdfOGw
んだからfunction threadedpipeを作って見やすくしたいっつってんだろ
2020/06/25(木) 12:35:03.44ID:WfI766VN
そこじゃないだろ
2020/06/25(木) 13:13:44.27ID:sZY/v5D+
>>462
単に興味本位で聞くんだけど、差し支えなかったら教えて。
具体的にどんなデータをどんな状況で処理しようとしてるの?
2020/06/25(木) 16:37:26.69ID:MV6c2Qez
なにけんけんしてんの?
2020/06/25(木) 20:19:35.75ID:hxSOAVLp
>>462
繰り返しになるけどPSはunixシェルと仕組みが全然違うから厳しいと思う
パイプのバッファリングはどう仕組むつもりなの?
2020/06/25(木) 21:11:04.72ID:L3VdfOGw
いまだにこんな見当違いを目にしてびっくり
試せるように >>460 を書いたのに試してないのかな
Start-ThreadJobが使えない環境なら、代わりにStart-Jobを使っても動くぞ
スレッドとジョブの起動速度差で少し遅いけどちゃんと動くから試してみろよ

というわけで、動作することはちゃんと確認できてる
俺が聞いたのは、>>460 みたいにごちゃごちゃ書くのが面倒だから
threadedpipe @({recvdata}, {mul10}, {add1}, {fmtresult})
のように書けるような function threadedpipe が作れるかどうかなの
まあ制約付きで一応できたんだけど
468420
垢版 |
2020/06/25(木) 23:05:56.80ID:ZIjS4UcO
とりとめもなく、推敲もなく適当に書き散らかしてごめんなさい
レスありがとうございます

理解して、Powershell組むのはかなり困難そうなので
Myコピペライブラリでも作って、理解しないでも組めるような
体制を作っていこうと思います

ありがとうございました。


ちなみにファイル作成は >>で用は足りました
2020/06/25(木) 23:48:32.33ID:GAspYPHa
きたないコードで目的も意味不明
まさに自慰
2020/06/26(金) 01:13:06.63ID:UcUHbC3j
質問者より明らかにレベル低いのにイチャモンだけは一流だな
だまってろよお前は
2020/06/26(金) 05:47:21.88ID:ZKLfm8jC
>>466
> パイプのバッファリングはどう仕組むつもりなの?
普通にFIFOを実装するだけだろ
何が難しいと思ってるんだ?
2020/06/26(金) 06:30:47.02ID:uqHA56uo
>>470
お前もだなw
473デフォルトの名無しさん
垢版 |
2020/06/26(金) 07:02:56.31ID:rwBI62Tc
ここがどうだとかじゃなくて、
汚いとかって言い方傷つくだろうが
2020/06/26(金) 10:47:41.63ID:lJi08xny
>>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}
475474
垢版 |
2020/06/26(金) 10:49:06.76ID:lJi08xny
スクリプトブロックのバインドとか、スコープとか、面倒な問題は見ないふり。
そもそも、PowerShell のスコープはスレッドセーフにはできていないので、
問題に対処するのは、ほとんど不可能なのかも。
476デフォルトの名無しさん
垢版 |
2020/06/26(金) 12:23:31.85ID:hzH3p+iw
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
2020/07/05(日) 04:12:29.94ID:sb7IOZLx
教えてください。

powershell.exeに
"powershell.exe"が見つかりません。名前を正しく入力したかどうかを確認してから、やり直してください。
ってダイアログが出て怒られるのだが、
これってどういうことですか?
2020/07/05(日) 08:19:48.13ID:EbIp5fqD
>>477
単なるウケ狙いなら別だけど、本気でなんとかしたいのならば、
前後の経緯を含めて詳細に説明してもらわないとなんとも言えない
2020/07/05(日) 09:06:15.18ID:sb7IOZLx
そうですねすみません。

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
2020/07/05(日) 09:07:58.29ID:sb7IOZLx
です。
何か気が付くところがあれば教えてください。
481デフォルトの名無しさん
垢版 |
2020/07/06(月) 15:26:47.18ID:ENMHKR++
powershell.exeが見つからない。
だからこそ、poweshell.exeが見つからなくてはと思っている。
2020/07/06(月) 16:00:54.38ID:AV85qEaL
はいすべった
2020/07/06(月) 19:14:17.53ID:mGwQnOrU
PATHが通ってないんじゃないの
サポート切れのWindows7を使い続けてて大丈夫か
2020/07/06(月) 19:34:12.08ID:BdiDJNUx
建前上esuあるから必要な部署はそれ当てて使ってるよ
2020/07/06(月) 20:54:49.43ID:zdAH+P0d
win7だって(自分で削除しなけりゃ)普通にpathは通っているはずだけど
まあ確かめてみることだね
2020/07/06(月) 20:56:13.29ID:0H1iFJXS
ダイアログが出てる時にタスクの中にpowershell.exeがいませんでした。
誰が出しているのか追いかけてみます。
お騒がせしました。
2020/07/06(月) 21:05:43.69ID:fLXZOc4N
32bit版 or 64bit版を探しにいってるんじゃないの?
488デフォルトの名無しさん
垢版 |
2020/07/07(火) 12:27:32.25ID:Csl+eNq2
Windows 10 なら、コマンドプロンプトで、
where powershell
と入力すると、

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
2020/07/07(火) 21:09:26.46ID:IcFS4Epu
whereは10だけじゃなくて7にも標準搭載されてる
98や2000ならリソースキットに含まれてる
2020/07/11(土) 09:02:38.89ID:n9XGFFVi
NuGetパッケージ使いたい時ってどうすれば使えんの
例えばSeleniumを使いたい場合C#なら
dotnet add package Selenium.WebDriver
これで使えるようになるけどPSの場合はどうすれば
2020/07/11(土) 21:53:51.85ID:I6xaQmI+
Make using NuGet packages installed with Install-Package easier to use - make Add-Type support NuGet packages
https://github.com/PowerShell/PowerShell/issues/6724
2020/07/17(金) 09:19:06.55ID:6MuP2T5H
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
2020/07/24(金) 01:22:35.38ID:r0N61jeX
明治の「 おいしい牛乳 」ってあるけど
「 おいしい 」って自分で付けちゃうなんて
強気というかふてぶてしいよな?

「 PowerShell 」からも同じにおいがするぜ
2020/07/24(金) 01:48:02.23ID:UQ3TOH2s
Apple & IBM「…」
2020/07/24(金) 10:09:22.31ID:860vhoVN
Powerこそ力
2020/07/24(金) 10:37:13.71ID:56CkEgqB
shellこそ貝殻!
2020/07/24(金) 14:36:37.83ID:jOZb/2Gr
💪🐚
2020/07/24(金) 14:40:35.13ID:30uJqngI
powerpoint
力点?
2020/08/05(水) 12:02:30.42ID:gYncIR+S
>>131 >>132
pwshw
普通のコンソールアプリだとリンクオプション変えるだけでできる気がするが
何が長引いとるんや?
windows以外にも対応するのが大変なんかな
2020/08/13(木) 17:41:10.43ID:e4hfVbk2
ある値で、とあるファイルをgrep検索かけて
grepで引っかかったら 変数に0、grepで引っかからなかったら変数に1
ということをしたいのですが、どんな方法で実現できますでしょうか。

linux でいうとこういうものです

# cat hoge.txt | grep abc ←知りたいのはここ相当のもの
# echo $?
0 ←abcが引っかかった
#

# cat hoge.txt | grep abc ←知りたいのはここ相当のもの
# echo $?
1 ←abcが引っかからなかった
#

よろしくお願いいたします。
2020/08/13(木) 18:00:29.06ID:3scCogHG
$r = gc hoge.txt | sls abc
if ($r -ne $null) {
# 引っかかった & $rにはslsの結果
} else {
# 引っかからない
}
2020/08/13(木) 18:07:53.30ID:e4hfVbk2
>>501
ありがとうございます!ばっちりです。

追加で申し訳ないんですけど、これを変数をgrep対象にして
戻り値を取得する事ってできますでしょうか?

> Write-Output $hoge
aaa ←こんな感じで複数行はいってる変数
bbb
ccc
ddd
eee
ffff
2020/08/13(木) 18:56:58.07ID:3scCogHG
$hoge | sls abcでいいんじゃね
504デフォルトの名無しさん
垢版 |
2020/08/13(木) 19:18:09.12ID:rGVB7rFL
(cat hoge.txt) -as [string] -cmatch "abc"

とか?
TrueFalseになっちゃうけど
2020/08/13(木) 20:45:21.78ID:hEr1UF+A
ふつーはifに直接つっこむ
if (Select-String abc hoge.txt -CaseSensitive -Quiet) {
if ($hoge | Select-String abc -CaseSensitive -Quiet) {
2020/08/13(木) 21:13:55.51ID:takIe+yE
個人的には>>504のTrueFalse管理が好きかな
01なら簡単に変換出来るし
$r = (cat hoge.txt) -as [string] -cmatch "abc";
[int]!$r;
2020/08/13(木) 22:02:49.13ID:hEr1UF+A
巨大ファイルを全部なめたいの?
2020/08/14(金) 05:21:16.78ID:SCMnTycc
漏れは、Windows 10, WSL, Ubuntu 18.04 を入れているから、
grep は、Linux 側でやるか、Ruby などを使う

Windows側のPowerShell などでは、やらない。
複雑なスクリプトは、Linux側のRubyでやる
2020/08/14(金) 07:16:55.02ID:fFUBtJk9
>>501
gcの結果って配列でしたっけ?
配列の$nullとの比較の場合、nullを左辺にしないといけないんじゃなかったでしたっけ?
もうpowershell側で修正されてるかな
2020/08/14(金) 08:15:51.24ID:beR79RQl
推奨 NG ワード:
Ruby
漏れ
511デフォルトの名無しさん
垢版 |
2020/08/14(金) 23:17:26.92ID:SCMnTycc
>>502
Linux のgrep なら、

AND 検索、パイプで
grep -i 単語1 ./* | grep -i 単語2

OR 検索、-e で
grep -i -e 単語1 -e 単語2 ./*

途中で改行しても、同じ
grep -i "単語1
単語2" ./*
2020/08/15(土) 16:13:38.92ID:qyy6aN9C
>>509
-eqの配列フィルタのことだと思うけどgcやslsは$nullを含む配列は返さないから問題ない
2020/08/24(月) 20:47:25.66ID:VQq4kdHe
ストアにPowerShell Preview登場

https://www.microsoft.com/ja-jp/p/powershell-preview/9p95zzktnrn4
2020/08/25(火) 20:56:27.18ID:+ct4ya2Y
GitHubのPreviewとどう違うのかと思ったら、アイコンが違うな
なんか気持ち悪い色になってる
2020/08/25(火) 22:59:28.31ID:SeBJUZXv
powershellスクリプトで高DPI対応をしたいのですが、可能でしょうか?
やりたい事は高DPI環境で画面キャプチャを取ることですが、
スケーリングに応じて実際の解像度より小さい値が画面サイズとして返ってきてしまいます。
SetProcessDPIAware()を最初に呼んでも効果がありませんでした。
普通のアプリのようにEXEにmanifestファイルを埋め込むこともできないので無理でしょうか?
516デフォルトの名無しさん
垢版 |
2020/08/29(土) 13:02:51.79ID:z6uRv8YY
使ってるエクセルアドインのアプデが不定期に入るんだけど、
その時はエクセルを閉じなきゃいけないので、エクセルVBAでアプデ処理できない
なのでVBSでセンドキーしてたんだけど、APIなら画面ロック状態でもOKと
でも素のVBSでAPIを使うには、エクセルを呼び出すと(エクセル4マクロ)

お、パワーシェルはAPIが使えるスクリプトか、やっと使う時が来た
ググると MessageBox のサンプルはあるものの、肝心の FindWindow と PostMessage のサンプルがない
MessageBox なんかどんなバッチで使うんだと
適当に書いてみたら、しれっとウィンドウハンドル0で沈黙
ググったら、管理権限がどうとかいう話もあり、それ以上は調べてないけどハマり警戒で断念
その話がほんとだとすると、サードパーティー製のアドインを起動してる標準ユーザーに管理権限を持たせるわけにいかない(スパイ警戒)

お、ワードにもVBAあるじゃんかで普通に解決w
VBA最強w
バッチはVBAとDOSが安定
ドキュメントを持たないVBAのみのスクリプト、「VBAS」をリリースした方が良かったんじゃないかね
(パスワードの暗号化だけパワーシェル使ってるが)
もっと言うと、VBAでドットネットコンポーネントを呼べるようにするとか(呼べる?)

んでパワーシェルはわざわざ長い名前のドットネットコンポーネントを呼び出してセンドキーのサンプルばかり
センドキーならVBAでもVBSでもいいじゃんていう
名前も短いし
517デフォルトの名無しさん
垢版 |
2020/08/29(土) 13:37:55.53ID:z6uRv8YY
関係ないけどアクセス権て、最重要が情報漏洩、つまり読み取り権限であって、インストール権限なんかどうでもいいんだよな
ソフトなんか他社製だし秘密でもなんでもない
壊れても、再インストールするだけ
518デフォルトの名無しさん
垢版 |
2020/08/29(土) 13:53:57.66ID:z6uRv8YY
ていうか WindowsUpdate や OfficeUpdate がまさにその考え方だよね
最新化は自動であるべきで権限は不要

Officeのアドインもそうあるべき
初回だけ許可が必要で、アプデは自動
2020/08/29(土) 16:26:04.73ID:BYm68LqT
ID:z6uRv8YY
スレ住民に言いたいこと・聞きたいことがあるのであれば、もう少し簡潔に書いてもらえませんか?
あと、2〜3行ならともかく >>516 ぐらいのボリュームで書くなら、読点だけじゃなく句点も省略しないほうが良いですよね。正直、読みづらい。
申し訳ないのですが、斜め読みすら断念しました。
2020/08/29(土) 17:29:18.45ID:uW7NzDft
>>519
読む必要ないよ
PS腐してVBAマンセーしてるだけ
セキュリティの基本も知らず、rwxのxなんて無意味って宣ってる
2020/08/29(土) 21:29:35.58ID:2f/XylsB
スタートメニューを右クリックしたら、
一般ユーザー用・管理者用の、2種類のPowerShell がある

コードも管理者用では、ExecutionPolicy だったか忘れたけど、特別な書き方がある
522デフォルトの名無しさん
垢版 |
2020/08/30(日) 10:18:34.85ID:j2JU6h3h
>>520
セキュリティの基本が分かってないのはマイクロソフト
マイクロソフトはメーカーだからシステムを守ることをセキュリティと勘違いしてる

守るべきはユーザーの持つ秘密情報

プログラムが改変されようとも、最終的にそのユーザーコンテキストで読めてはいけないデータにアクセスできなければよい
プログラムは壊れても再インストールできるが、情報漏洩は回復できない
523デフォルトの名無しさん
垢版 |
2020/08/30(日) 10:21:08.45ID:j2JU6h3h
相変わらず、無内容の人格攻撃文化
腐ってんね
2020/08/30(日) 11:22:28.54ID:roK+ZKVb
>>522
「MS は基本がなってない!MS よりも、俺のほうが正しいぞ!」
で、あなた様はどんなバックグラウンドを持つお方で、これまでどんなことを成してきた方なのですか?
2020/08/30(日) 11:25:22.99ID:6EFwsuE9
>>523
自分の無理解を棚上げしてスレ違いでむやみにあちこち叩くの辞めた方が良いよ
人に教えを請う立場の書き込みにはとても見えない
PSスクリプトの実行に必要なのは監理者権限ではなく適切な実行ポリシーの設定
これだけ教えてあげたんだからもうここには書き込まず一人で調べてね
2020/08/30(日) 13:47:22.04ID:e/T9q/5N
昔からマイクロソフトをdisって一人前面する技術者は一定数いた
2020/08/30(日) 14:37:48.96ID:Y6JzX6tf
「Microsoftのバグ」との戦い
https://xtech.nikkei.com/it/article/COLUMN/20080819/312956/
2020/08/30(日) 15:57:42.01ID:PraMtyj1
>>526
M$とか書く奴おるねw
529デフォルトの名無しさん
垢版 |
2020/08/30(日) 17:34:08.47ID:6ShNfOXb
>>521
管理者権限じゃないと実行出来ないコマンドを使う時用くらいの認識しかなかったわ
530デフォルトの名無しさん
垢版 |
2020/08/30(日) 21:51:36.19ID:g5q4aE3p
Microsoftは「製品の問題点」と「仕様」を最初に明確にするので、それも批判されてたよね。

Linuxの場合、サポートを提供するベンダーで「バグと仕様を明確にできる」のはRedhatくらい。
その他のベンダーは明確にすることが出来ない。
Kernel作ってるのは他人だから。

「仕様として今後も維持される動作」か「バグとして修正される動作」か即座に知ることが出来るのは、待たずに作業を続けられるので、とても良いことのように感じるけど、実際は批判が多い。
531デフォルトの名無しさん
垢版 |
2020/08/31(月) 01:56:18.43ID:Sr2UUXBk
ついに公務員の副業が解禁される時代が到来した
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
532デフォルトの名無しさん
垢版 |
2020/09/01(火) 22:23:09.69ID:cXm81OcM
>>525
だって教えを請う立場じゃないから
それはそっちの勝手な思い込み
「普通に解決w」と言ってる通り、文字通り
出来事の感想を述べただけ
2020/09/01(火) 22:34:51.67ID:mz7Z6faK
>>532
「MS は基本がなってない!MS よりも、俺のほうが正しいぞ!」
の次は
「俺は教えを請う立場じゃない」
ですか。Ruby厨に次次ぐ逸材が登場ですね。

で、あなた様はどんなバックグラウンドを持つお方で、これまでどんなことを成してきた方なのですか?
2020/09/01(火) 22:57:48.88ID:XzhpNrm1
>>532
そんなのここじゃなくてTwitterにでも書いてろよ
535デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:15:36.13ID:cXm81OcM
>>524
ところで
建物でいうと、プログラムは家電等の快適装備
ユーザー情報は金庫

A.家電の設置
B.金庫の開錠

どっちがセキュリティレベル上かね?
どうも(MSというより)メーカーは、Aを最高権限と考えてる様子
(コンピューターでは物理的に、金庫機能も家電の1つに過ぎないからだろうけど)

ボタンをユーザーが押したからなんなのか
コンビニの年齢確認と同じで、何を確認したのか
ダイアログでベンダーを確認したか?
リアルな名称のダイアログなんか簡単に作れる(続く)
536デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:15:52.09ID:cXm81OcM
>>524
(続き)
たとえ本物でも、ベンダーに悪意がないことをどうやって確認するのか
まして国が株価操縦してるモラル破壊な社会、大企業だからって信用できない
そこで

A.保護ユーザー(管理者)
B.実行ユーザー(標準)

こう分け、Bでベンダーソフトを実行すれば、Aの機密情報を読めない
と思いきや、アプデ時に昇格ボタンを押してしまうと、なんでも読める権限で実行される
ボタンをユーザーが押そうがバッチで押そうが同じ
全くセキュリティになってない

ならば、あえてBを管理者にし、B自身のコンテキストでアプデさせる
Aのフォルダから「Administrators」を外しておけば、
インストール権限がありながら、Aの機密情報を読めない、はず
(この時、所有権や偽装でUACが反応しない状態なら、
その特権からも「Administrators」を外し、かわりにAを設定しておく)
537デフォルトの名無しさん
垢版 |
2020/09/01(火) 23:16:32.08ID:cXm81OcM
>>524
くしくも偶然一部を書いてたが
http://mevius.5ch.net/test/read.cgi/tech/1451927425/876-877
さらに言うと、複数の権限があり、ケルベロスによってサーバー機能による高速取込までユーザーコンテキストを通したシステム
ユーザー問合せに即時対応するため、操作ログも一元管理される
操作ログは全ユーザーに追加権限だけがあり、閲覧はシステム権限が必要
アクセス権はテーブル自身にあり、どのようなルートからも突破不可能
行政手続に係る深いプライバシーを大量に扱うので、情報漏洩が命取りになる企業

しかし、そういう別件逮捕のようなことを、「人格攻撃」と言う
別件が議論に関係してはならない
それにプライバシー侵害は「誹謗中傷」の要件の一つ
@嘘(無根拠な憶測)、Aプライバシーの侵害、B人格攻撃、「誹謗中傷」の3要件を全部兼ね備えるというw

で、お前は何をしたのか
こっちは人格攻撃気質じゃないので、当然興味ないが
2020/09/01(火) 23:29:07.92ID:XzhpNrm1
>>535
下手な例えをだすのは無理解の証
>>536
昇格ボタン押せる時点で既に怪しい
まともな運用してたら昇格ボタン押すのに監理者のアカウントが必要
例え昇格ボタンを押しても読み取り権限が得られるとは限らない
これもまともな運用してたら所有者にしか読み取り権限は得られない
つまりユーザーフォルダ内は当該ユーザーしか読み取れないのがまともな運用

結局無理解由来の誤解なわけで、まさに>>527
539デフォルトの名無しさん
垢版 |
2020/09/04(金) 06:56:56.59ID:BT/SeEq8
客先も何も自社もポリシー変更できないからバッチは実行できないわ
簡単なファイル操作とかも.batでやることになってる
Powershellに移行できない
2020/09/04(金) 08:30:44.47ID:PFscGLUJ
ps1をポリシー付きで呼び出す1行バッチを書けばいいんじゃない?
冗長だけどbatをメンテするのに比べたらずっといいと思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況