Windows PowerShell Part5 [無断転載禁止]©2ch.net

1名無し~3.EXE2016/09/18(日) 14:06:24.15ID:aFEI7ykR

223名無し~3.EXE2017/08/27(日) 14:49:12.76ID:BZUzZkbu
先輩方お世話になります

PowerShellではIEやExcelについては、内部情報がわかっているのでセル内の数値を読みだしたり、
IEでWeb上のデータをExcelに読み出したりできますが、
知らないソフトを操作することはできるのでしょうか。
パスワード管理ソフトがそこにあった場合、それを自動で操作できるものでしょうか。

224名無し~3.EXE2017/08/28(月) 22:42:01.77ID:qICVwGLd

2252232017/08/29(火) 21:14:26.67ID:7bPgRSF4
>>224
それを見て安心しました。
PowerShellを本格的に使います。
ありがとうございました。

226名無し~3.EXE2017/09/10(日) 12:26:26.59ID:YsDxJ9ZZ
引数で渡されたcsvヘッダーなしファイルを、
1レコードづつ分割して、
各レコード中の5番目の項目をファイル名にしたく
色々調べて何となくパワーシェルでできそうかもと感じたのですが、
パワーシェルでは難しいものでしょうか

227名無し~3.EXE2017/09/10(日) 12:53:01.82ID:0mVKrcBD
>>226
コンピューターは使う人の知性を映す鏡

228名無し~3.EXE2017/09/10(日) 13:34:51.33ID:72pY/uhV
簡単だよ
その用途ならAWKも良い

229名無し~3.EXE2017/09/11(月) 12:45:03.65ID:Gp/rMbPi
エラー表示を出したくないのですが、
invoke-restmethod -uri http://127.0.0.1/ -ErrorAction SilentlyContinue
invoke-restmethod -uri http://127.0.0.1/ | out-null
invoke-restmethod -uri http://127.0.0.1/ 2> $null
のいずれもエラーが出てしまいます。何か良い手はないでしょうか。

230名無し~3.EXE2017/09/11(月) 22:46:08.52ID:pDTfTVG6
>>226
PowerShell csv
とかでググることもしない君には無理かも

2312292017/09/12(火) 15:39:58.62ID:FurOIcDq
自己解決。
try {invoke-restmethod -uri http://169.254.169.254/} catch {}

232名無し~3.EXE2017/09/18(月) 18:01:59.09ID:z0dfOjEc
使い始めて半年になるけど、コマンドプロンプトよか遥かにマシだけど、MSのスクリプト言語はやっぱうんこだね

233名無し~3.EXE2017/09/18(月) 19:06:44.92ID:QH/6RVNP
>>232
あなたの考えるうんこでないスクリプト言語は何?

234名無し~3.EXE2017/09/18(月) 19:32:27.48ID:+WRQpGhp
>>232
理由を説明することが出来ず結果だけ述べるやつは頭蓋骨の中にウンコが詰まってるらしいね

235名無し~3.EXE2017/10/25(水) 11:06:28.36ID:JtsQ00zm
負荷テストのために下記コードを書いて見ましたがこれって音は全部鳴ってるのかな?
# 下記サイトより効果音をお借りしました。
# http://maoudamashii.jokersounds.com/archives/se_maoudamashii_explosion06.html
# d:\indexフォルダは好きなように変更してください。
$loopcont = 128
$list = New-Object 'System.Collections.Generic.List[System.Media.SoundPlayer]'
for ($i=0; $i -lt $loopcont; $i++){
$a = New-Object Media.SoundPlayer("d:\Index\se_maoudamashii_explosion06.wav")
$list.Add($a)
#$list[$i] = New-Object Media.SoundPlayer("d:\Index\se_maoudamashii_explosion06.wav")
Write-Output "サウンド $i を追加しました。"
}
for ($i=0; $i -lt $loopcont; $i++){
$list[$i].PlayLooping()
Write-Output "サウンド $i を再生しました。"
Start-Sleep -m 10
}
Start-Sleep -s 15
for ($i=0; $i -lt $loopcont; $i++){
$list[$i].Stop()
Write-Output "サウンド $i を停止しました。"
}
Start-Sleep -s 5

236名無し~3.EXE2017/10/25(水) 11:25:25.12ID:JtsQ00zm
プログラムスレ行きます
>>235は取り下げします

237名無し~3.EXE2017/10/25(水) 20:59:37.67ID:PDzaCZ5k
UI Automation Extensionで#32770のダイアログを取得してくれないのってどう対応すればいいんでしょうか
UIAutomationSpyで見る限り取得先は間違ってないんですが、Sleep入れたりしても改善しません

238名無し~3.EXE2017/11/18(土) 18:06:45.29ID:UcLIZr65
>>226
練習のつもりでそれやってみた。私がやったのはこんな感じ。
もっといい方法あるんでしょうけど。
$lines=get-content c:\Test.csv
$head=($lines[4].Split(",")).ForEach({$_})
$data=($lines|ConvertFrom-Csv -Header $head)[0..3+5..($lines.Length-1)]

239名無し~3.EXE2017/11/18(土) 23:11:51.44ID:Mf7cpqpp
テキスト変換ならawkも楽しい
gawk -F ',' -- '{print>>$5}' %1

2402262017/11/18(土) 23:56:55.00ID:Ygx0l9RN
あ〜〜〜、
私、問題を取り違えてる
5列めをファイル名にすんのね。
5行目をラベルにすると勘違い。
またトライしてみよう。

2412402017/11/18(土) 23:58:36.40ID:Ygx0l9RN
ごめん、いまの226じゃなく238ね、
何度も申し訳ない。

2422382017/11/19(日) 00:10:05.38ID:nfO6ObjC
こんな感じかな。
ファイル名にして、中身を何にするのかわからないんで
単に5列めを取り出しただけだけになるけど

$lines=Get-Content c:\test csv -Encoding Default
$lines|%{$_.Split(",")[5]}

243名無し~3.EXE2017/11/19(日) 00:14:55.58ID:nfO6ObjC
同じことを短く書くとこうかな
(Get-Content C:\Test.csv).Foreach({$_.Split(",")[5]})

244名無し~3.EXE2017/11/19(日) 00:26:02.63ID:nfO6ObjC
さらに短くすると、こんな感じかな
(GC C:\test.csv).foreach({$_.Split(",")[5]})

PowerShellって
他のスクリプトに比べると可読性がいいね

245名無し~3.EXE2017/11/19(日) 02:22:08.54ID:LCql9sHm
>>244
cat C:\test.csv | %{$_.Split(",")[5]}
とか?

Get-Content はcatと書きたい派

246名無し~3.EXE2017/11/19(日) 02:36:06.41ID:LCql9sHm
まあ、ヘッダーがないなら付けた方がいいよね。
単純に「,」で分割しちゃうとエスケープされた,が入っている時に困る

cat C:\test.csv | ConvertFrom-Csv -Header @('a', 'b', 'c', 'd', 'filename') | %{$_.filename}

247名無し~3.EXE2017/11/19(日) 02:37:06.89ID:nfO6ObjC
パイプ経由だったら
cat C:\test.csv|Select ({$_.split(",")[5]})

の方が速いかもしれない

248名無し~3.EXE2017/11/19(日) 09:34:58.92ID:TgXrsdVc
>>239以外は5列目を取り出すというスクリプトにしかなってない
エクササイズにしたってそれでいいの?
質問者の「ファイル名にしたい」というキーワードは、行ごとに個別ファイルに分割出力したいってことと考えるのが自然
いろいろ調べてパワーシェルでできそうかも?パワーシェルでは難しいですか?って疑問ともよりマッチする
質問者の言葉足らずも、プログラマのできる範囲ややってみたいことも「顧客が本当に必要だったもの」っていうブランコの風刺絵を連想させるゾ

249名無し~3.EXE2017/11/19(日) 12:46:31.72ID:1tHYW+l5
ファイル名にしたいっていうのが良く分からんかったからスルーしてたわ。

とりあえず、csvの5列目の値をファイル名にもつ、空ファイルを作るならこんな感じかな?
(動かしてないけど)
cat C:\test.csv | ConvertFrom-Csv -Header @('a', 'b', 'c', 'd', 'filename') | %{eco "" > $_.filename}

250名無し~3.EXE2017/11/19(日) 16:02:25.58ID:Nsr/SpEW
$path = 'C:\test.csv'
gc $path | % {sc (ConvertFrom-Csv $_ -h (1..5)).(5) $_}

別に質問スレじゃないから、古い質問をダシに遊んでたっていいんじゃね?

251名無し~3.EXE2017/11/19(日) 22:35:40.93ID:sJdRKCTL
出力ファイルの内容を何にするのか意味がとれなかったよ。
その行ということなんだな。こんなやり方にしてみた。
GC C:\test.csv|%{out-file -i $_ -fi $($_.Split(",")[0]+".csv")}

2522512017/11/19(日) 22:37:25.19ID:sJdRKCTL
あ、配列のインデックス間違った
0 じゃなく 4 ですね。

253名無し~3.EXE2017/12/11(月) 11:48:54.63ID:75DGGivq
powershellのバグ発見しちゃったんですけど。
chdir "test.txt" 2> clip
ってやってもエラー出力がクリップボードにコピーされません。

254名無し~3.EXE2017/12/11(月) 12:51:32.49ID:75DGGivq
chdir "test.txt" 2>&1 | clip
ってやったらできました。
バグなんて言ってすいませんでした、powershellさん。

255名無し~3.EXE2017/12/13(水) 05:24:58.05ID:Dgxm2rhe
生成されたゴミファイルには気づくだろうか

256名無し~3.EXE2017/12/16(土) 23:54:25.16ID:dXayVCuU
gc aaa.txt

↑のコマンドでaaa.txtの中身を表示できますが、この時に

1行目
2行目
3行目
4行目
5行目

と行順に表示するのではなく

3行目
2行目
5行目
1行目
4行目

のようにランダムに表示することはできるのでしょうか?

257名無し~3.EXE2017/12/17(日) 09:38:12.67ID:SwwokNJs
$txt = gc aaa.txt
random $txt -c $txt.Length

258名無し~3.EXE2017/12/19(火) 12:49:03.00ID:uzBHC9yI
友達がWindowsで稼げている情報など。ニュースというか参考までに。
⇒ http://kuchibeta.sblo.jp/article/181868190.html

興味がある方のために書きました。

OEE18BYXAP

2592562017/12/28(木) 06:25:36.92ID:PKks4Rou
>>257
返信遅れてすみません。
うまく出来ました。ありがとうございます!

randomってかなり初期バージョンのPowerShellですら使えるんですね。存在すら知りませんでした(^_^;)

260名無し~3.EXE2017/12/31(日) 14:07:24.19ID:uMg2oS0T
こんなの作る暇あるならオブジェクトリテラルくれよ

PowerShell should support creating an List similar to how it supports arrays
https://github.com/PowerShell/PowerShell/issues/5643

261名無し~3.EXE2018/01/11(木) 14:51:39.12ID:DkLZZA6a

262名無し~3.EXE2018/01/26(金) 22:26:10.90ID:6YGWYbRS

263名無し~3.EXE2018/02/04(日) 08:55:56.61ID:Gd7BsbuR
powershellすごく便利よね。これなんで流行らないの・・・。

264名無し~3.EXE2018/02/04(日) 22:17:28.96ID:YGlvT8zB
>>263
頭の良い人にしか使いこなせない
使いはじめるハードルも高い

265名無し~3.EXE2018/02/04(日) 23:05:10.68ID:MtFkKGzP
>>263
VBA感がものすごいから。

266名無し~3.EXE2018/02/04(日) 23:12:22.58ID:xSDaepPc
>>265
どの部分にVBAを感じたんだ?

267名無し~3.EXE2018/02/05(月) 00:11:48.68ID:/JfnECNa
>>266
ありようがVBAそのものじゃん。

268名無し~3.EXE2018/02/05(月) 00:18:02.36ID:qNbCl3Zr
裏方だけど十分流行ってると思うよ。
MSのサーバー系の管理はほとんどPowerShellに置き換わってるし
Azureの管理もPowerShellが主流。
Win10でもちょっと探ってみれば随所で使われてる。
MS系のシステム管理者はだいたい大なり小なり使ってるんでは。

269名無し~3.EXE2018/02/05(月) 00:30:43.55ID:IUjinH7k
ちょっとしたBootstrapperとかもそうやね

270名無し~3.EXE2018/02/05(月) 05:33:47.60ID:3n996GsU
>>263
とっつきにくいんだよねw
自分も最初はCMDと行ったり来たりしてた。
今は慣れちゃったからCMDと使い分けてるよ。
SQLのハンドブックでSqlServerやOracleの構文が併記されてる書籍があるけど
同じようにCMDとPowershellを併記した書籍なりサイトがあれば初心者も入りやすいかもね。

271名無し~3.EXE2018/02/05(月) 07:40:41.05ID:WHgcmSCO
コマンドレット予測しやすい。

272名無し~3.EXE2018/02/08(木) 11:30:54.85ID:aYkXkrLi
☆ 私たち日本人の、日本国憲法を改正しましょう。現在、
衆議員と参議院の両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
――――

273名無し~3.EXE2018/02/08(木) 20:34:29.10ID:A6gE9qPG
https://blogs.technet.microsoft.com/jpsecurity/2018/02/06/now-you-see-me-exposing-fileless-malware/

PowerShell を無効化すべきですか?

いいえ。PowerShell は強力で安全な管理ツールであり、多くのシステム機能や IT 機能にとって重要なものです。
攻撃者が使用する悪意のある PowerShell スクリプトは、最初の侵害が起こった後にのみ有効な悪用後のテクニックです。
PowerShell の悪用はソフトウェア エクスプロイト、ソーシャル エンジニアリング、または資格情報の盗難など
他の悪意のあるアクションで開始される攻撃の兆候となります。
重要なのは、攻撃者が PowerShell を悪用できるポジションに立つことを防止することです。

新着レスの表示
レスを投稿する