PowerShell -Part 3

■ このスレッドは過去ログ倉庫に格納されています
2018/10/09(火) 17:46:48.32ID:G4IJkzod
前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/
2018/10/11(木) 19:36:48.45ID:BCqcg04E
こっちは1809だが-Version 2 指定してもセミコロンで繋いでも問題が再現しないよ
PowerShell core 6.1でも問題でない

$PSVersionTable
PSVersion 5.1.17763.1
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.1
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
2018/10/11(木) 19:38:43.55ID:DkVh6b/o
どうも Select-Object のバグっぽい
Get-ChildItem |Select BaseName でも起きる
Selectが後にパイプの別処理か、標準入力から改行受け取らないとコマンド終了判定できないっぽい
2018/10/11(木) 19:39:17.99ID:oXF4megk
>>32-33の$PSVersionTable
Name Value
---- -----
PSVersion 5.0.10586.117
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.117
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
2018/10/11(木) 19:42:49.06ID:DkVh6b/o
>>34
お、そうなのか
5.1.17134.228 単体問題かなあ powershell v 2起動ではこちらも大丈夫だったよ
2018/10/11(木) 19:45:57.86ID:oXF4megk
-Version 2指定で大丈夫だった。ps5のバグだね
39デフォルトの名無しさん
垢版 |
2018/10/11(木) 19:46:58.10ID:DkVh6b/o
>>36
Out-Host はこちらでも有効でした。
そちらの環境では; なしのps1スクリプトでは再現しないということだよね
2018/10/11(木) 19:48:49.97ID:oXF4megk
>>39
その通り
複数行 →再現せず
セミコロンで1行 →再現
2018/10/11(木) 19:50:56.75ID:DkVh6b/o
>>40
明瞭な回答ありがとうございました。

色々わかって胸のつかえがとれたよ、ありがとう>All
42デフォルトの名無しさん
垢版 |
2018/10/11(木) 19:53:12.89ID:BCqcg04E
地味に嫌なバグだな
2018/10/11(木) 20:12:08.43ID:e56c6hX7
>>27
簡単なコマンドレットだけ使うところから
始めても十分実用になると思う
.NET(の知識)は拡張に便利だけど必須じゃない
2018/10/11(木) 20:17:09.29ID:GeJE+9Ij
PSって時々変な挙動する
逐次処理型のコンソールプログラムを直接実行した時はなんの問題もないのに
PSコンソールから同じ物を呼ぶとたまに固まる現象は未だに原因不明
しかも何故かエンターキー押したら進み出すから意味わからん
一見するとそのコンソールプログラムの問題かと思うけど違うプログラムでも発生するからPSが原因なのは確か
2018/10/12(金) 13:57:06.10ID:Vm21lImY
PowerShell 6.1って既存のPowershell 5.1 Desktop版と共存できる?
できるなら入れてみようかな
2018/10/12(金) 14:49:07.51ID:LyO2C2Nx
別物やから気にせず入れればええ
2018/10/12(金) 17:23:13.60ID:Vm21lImY
>>46
ありがとう、やってみます
48デフォルトの名無しさん
垢版 |
2018/10/12(金) 18:16:36.74ID:tfCNN8gU
パワーシェルやバッチから汎用資格情報を利用してリモートデスクトップを起動・接続したいのですが、パワーシェルのcuiでパスワード入力が必ず要求されてしまいます
資格情報は正常に登録されています
これはどう回避すれば良いでしょうか?コマンドではなく、セキュリティポリシーの問題ですか?
2018/10/12(金) 18:50:34.83ID:VxeOAG4j
>>48
RDP接続部分どんなコードなのさ
50デフォルトの名無しさん
垢版 |
2018/10/12(金) 18:58:42.49ID:tfCNN8gU
cmdkey /generic:ipアドレス /user:ユーザ名 /password : パスワード
のコマンドで資格情報登録後、
mstsc /v ipアドレス
のコマンドでリモデ呼び出しています

リモデ呼び出してcuiでパスワード入力要求されてしまうので、入力すれば起動するような感じになってしまってます
2018/10/12(金) 19:06:14.75ID:VxeOAG4j
>>50
>CMDKEY [{/add:ターゲット名 | /generic:ターゲット名}] [/smartcard] [/user:ユーザー名 [/pass[:パスワード]] [/delete{:ターゲット名 | /ras}] [/list[:ターゲット名]]
って構文だけど
>password : パスワード
のところでパス登録できてないんじゃね?
詳しくねーけど
52デフォルトの名無しさん
垢版 |
2018/10/12(金) 19:28:53.77ID:tfCNN8gU
あーパスワードじゃなくて、パスか
そこの違いかな
2018/10/12(金) 19:36:20.86ID:VxeOAG4j
やってみたらpasswordでも通ったわ...
関係なさそう
2018/10/12(金) 19:51:45.48ID:Vm21lImY
こっちの問題じゃないの?
「Windows 資格情報を構成すると、接続先サーバーへユーザー名やパスワードを都度入力することなく、RDPなどで接続できるようになります。
しかし、既定では資格情報を利用したRDP接続は無効化された状態です。そのため、ローカルセキュリティポリシーやグループポリシーを利用して、資格情報を利用した接続を許可する必要があります。」
https://mhiroblog.wordpress.com/2016/12/05/windows-%E8%B3%87%E6%A0%BC%E6%83%85%E5%A0%B1%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9Frdp%E6%8E%A5%E7%B6%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
55デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:45:22.73ID:tfCNN8gU
おお、ポリシーの問題ですかね
2018/10/12(金) 21:53:31.40ID:3rr2tBek
まず問題の切分をしようよ
・GUIで普通に接続する時はログインを省略出来るのか
・コマンドプロンプトでコマンド直打ちした際はどうなるのか
正直言えばPS関係あるの?って話なんだが
2018/10/12(金) 22:03:41.12ID:Vm21lImY
まあ多分関係ないね、下記で訊いた方がいいかもしれん
リモートデスクトップ&リモートアシスタンス 6
https://mevius.5ch.net/test/read.cgi/win/1276610475/
58デフォルトの名無しさん
垢版 |
2018/10/12(金) 22:51:10.68ID:tfCNN8gU
あ、すみませんでした
そこのスレで同じく聞いてみます
59デフォルトの名無しさん
垢版 |
2018/10/15(月) 20:17:08.40ID:amvePWoq
バッチファイルのコードをパワーシェルに変換できるツールってないんでしょうか?
2018/10/15(月) 20:44:11.37ID:iq0D/NFF
本買って勉強しろ
2018/10/15(月) 21:34:07.14ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
2018/10/16(火) 00:47:27.56ID:J45RURl2
>>59
環境変数Pathの設定ですら書き方が微妙に違うからな
一括変換は無理
2018/10/16(火) 00:49:24.42ID:J45RURl2
>>58
過疎スレに聞きに行ってなくてワロタで
2018/10/16(火) 07:15:58.35ID:CAcWp+n6
過疎スレに誘導しといてあんまワロえないわ
2018/10/16(火) 11:41:07.30ID:7RIuHdb8
こういうインフラ系の疑問ってQAサイト無いのかな?
teratailはプログラム関係以外お断りっぽいし、stackoverflowかね、知恵遅れは質が悪くて
66デフォルトの名無しさん
垢版 |
2018/10/16(火) 12:07:46.38ID:s3pweWJX
パワーシェルのifで数字を比較するとき、 1<5>10
のように複数の演算子使うことできますか?
2018/10/16(火) 12:28:15.06ID:G4QqtY7K
できません
2018/10/16(火) 12:41:57.06ID:CgKK5Phn
できないよ
1 -lt 5 -lt 10とかやっても、1 -lt 5がTrue、True -lt 10でFalse
2018/10/16(火) 14:04:55.30ID:7RIuHdb8
if (1 -lt 5 -and 5 -lt 10)
2018/10/16(火) 19:33:54.39ID:h2O8wdlC
パワーシェルなんで不等号使えないんでしょなね
2018/10/16(火) 20:10:31.71ID:cDpTxUsb
リダイレクトに不等号使ったから
2018/10/16(火) 20:23:24.10ID:h2O8wdlC
ああ、そういやそうか
2018/10/16(火) 20:41:51.75ID:7RIuHdb8
DOSコマンドプロンプトの伝統を引き継いだ説
equ → -eq
neq → -ne
lss → -lt
leq → -le
gtr → -gt
geq → -ge
2018/10/16(火) 20:45:56.62ID:7RIuHdb8
DOSの時中途半端にUnix真似たのを今度は揃えたっていうのが正しいか
2018/10/16(火) 20:58:38.76ID:tHbhOnY/
コマンドプロンプト互換用にリダイレクトは要るけどPowerShell的には使い道あんまり無い気がする
76デフォルトの名無しさん
垢版 |
2018/10/16(火) 23:56:23.47ID:VMcjBADQ
普通にfortranの比較演算子だからな
2018/10/17(水) 04:23:05.21ID:fXyyO1tZ
いやFortranでもDOSでもなくてシェルスクリプトを意識してるでしょ
Fortranなら.GT.とかだし<>=も使える
78デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:05:24.45ID:Ny9Q/0jK
また低学歴知恵遅れの知ったかがテキトーなこといってるわ。。。
昔のfortranは<>=なんか使えない

あとな、シェルスクリプトなんかよりfortranのほうが
はるかに歴史が古い
2018/10/17(水) 23:43:13.88ID:uJo2tnoC
やっとPowershell core 6.1入れてみた。
defaultがUTF-8に変わって
sjisテキストの入出力は難しくなった。
-encoding ([System.Text.Encoding]::GetEncoding(932))と書くか-encoding oemならまだ通るんだね
2018/10/18(木) 17:54:54.30ID:VXAXqhVo
非常に浅学で申し訳ないんだがScreenshot_2017-09-14-00-32-38では下のURLのプログラムは機能するんだけどScreenshot_20170914-003238ってファイル名だとどうイジれば対応させられますかね…?
1日あれこれ調べたけどregexの正規表現の羅列あたりが特によく分からなかった。出来ればご教示お願いします。

ttp://bannan.hatenadiary.jp
/entry/2018/04/10/210807
2018/10/18(木) 19:03:43.40ID:RGjTx9dN
>>80
これでいいよ
下手に汎用性もたせようとするとそんな風に失敗してるものができる

ls -file | where name -match "Screenshot_(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})" |
foreach { $_.CreationTime = $_.LastWriteTime = "{0}/{1}/{2} {3}:{4}:{5}" -f $Matches[1..6]; $_ }
read-host "何かキーを押すと終了"
2018/10/18(木) 19:36:40.46ID:vpgDyIt0
代入の二段重ねなんて出来るんだw
2018/10/18(木) 19:53:20.76ID:nSVk5plj
$a = $b = 1ってできるじゃん
84>>80
垢版 |
2018/10/18(木) 23:03:06.79ID:AkEYj+KW
>>81
おお、サンプルまで作って頂きありがとうございます!!
瞬く間に1000枚に情報入力出来ました!
where nameの働きと-f $Matchesの左右の表現が調べても最後までピンと来なかったのでもっと学んで見たいと思います
85デフォルトの名無しさん
垢版 |
2018/10/23(火) 11:35:11.62ID:Hcq+1RfE
PowerShellってキャリア採用の条件で提示するようなもん?
・PowerShellができる方
ってどこまで理解していればこれに該当するかな
2018/10/23(火) 12:52:00.21ID:0PL1FVew
案件列挙すればいいんじゃね
87デフォルトの名無しさん
垢版 |
2018/10/23(火) 19:08:54.72ID:R3+D42hK
パワーシェル単体ではちょっと弱い

パワーシェル扱ってるということはインフラ系だと思うからプラスアルファでvbaやvbsなどインフラ系スクリプト言語やAJSなどのバッチサーバの経験がほしい
2018/10/23(火) 21:27:43.17ID:JY03xd2e
いらんわそんなの
89デフォルトの名無しさん
垢版 |
2018/10/23(火) 21:36:09.49ID:Cxf5lQdo
パワーシェルだけじゃ仕事ないっていう観点はあっている
2018/10/23(火) 21:56:38.39ID:xD54VN5l
クセと多いがpowershell好きw
できるだけ小文字で書きたいのだが、インテリセンスが大文字混ぜるのをなんとかしたい、なにか手はある?
あとパラメータとか短縮表記になったのを伸ばすツールある?
2018/10/24(水) 07:53:58.83ID:XShW8ZKK
>>90
補正のないエディタを使う
92デフォルトの名無しさん
垢版 |
2018/10/24(水) 08:55:14.55ID:paw2wRgq
PowerShellEditorServicesはオープンソースだから改造すればえんちゃう
93デフォルトの名無しさん
垢版 |
2018/10/24(水) 15:40:32.38ID:+Ub61VYb
クリップコマンド使うとなぜか改行がはいってしまいます、改善策ないでしょうか?

"test" |clip
で、メモ帳などに貼り付けると改行ついていて不都合があります!
2018/10/24(水) 17:13:32.82ID:K/10T0Yf
set-clipboardコマンドレット使えば行けそう
今はテスト出来ないしPowershell5.0以降が必要だけど(Windows10なら標準)
95デフォルトの名無しさん
垢版 |
2018/10/24(水) 18:07:46.88ID:+Ub61VYb
Windowsサーバ2012r2なんですがそのコマンドあるかな・・・
96デフォルトの名無しさん
垢版 |
2018/10/24(水) 18:33:39.42ID:+Ub61VYb
ちなみにですがバッチファイルだと下のコマンドで改行なしにできるのですが、パワーシェルからからこのコマンド呼び出すと<がリダイレクトマークなのでつかえません!ってエラーがでます
このコマンドをパワーシェルで使う方法などありますか?

set /p <nul="test" | clip
2018/10/24(水) 18:49:21.75ID:TznUYXv0
>>96
cmd /c 'set /p <nul="test" | clip'
98デフォルトの名無しさん
垢版 |
2018/10/24(水) 19:01:25.53ID:+Ub61VYb
コマンドプロンプト部分をシングルコーテートでくくってcmdのオプションで/cつければ他のコマンドも実行できるんですか?
試してみます、ありがとうございます
2018/10/24(水) 19:04:05.43ID:SZPDhNVG
>>95
2012R2だとPowerShell4.0だね。5.0にするならWMF5.1のインストールが必要みたい

ちなみにset-clipboardだと改行は入らなかった
2018/10/24(水) 20:12:04.59ID:SZPDhNVG
Win10 1809のWin Powershellなんだけど
powershell -Version 3.0
でも$PSVersionTableで3.0にならない
2.0だと変わる、バグかな
2018/10/25(木) 03:52:38.91ID:BKSYttF8
基本的なことですいません。
tab補完で、最初にカレントディレクトリの./がつくのをつかないようにできませんか。
javaを実行するときjava ./hogehogeとなって、いちいち./消すのが面倒なもので
2018/10/25(木) 06:11:52.99ID:IIA5RA/7
>>101
意味わからん
カレントフォルダのJavaプログラムを実行するのだから./は要るだろ
2018/10/25(木) 17:13:59.66ID:ehGwymsw
PowerShellはコマンドプロンプトと同じように使おうとしてハマる奴多いな
コマンドプロンプトとは別物として考えた方が良いと思うんだけど
2018/10/25(木) 20:14:57.95ID:UAZv//mL
javaはファイル名じゃないでしょ
2018/10/25(木) 23:48:32.38ID:BKSYttF8
>>102
>javac hogehoge.java
>java hogehoge
としたいんです。
javaで実行くるときはファイルではなく、クラスを指定するので、カレントディレクトリの指定があると実行できないんです。
2018/10/26(金) 00:09:24.34ID:AQgJ1GgH
普通はIDE使うんですけどね
2018/10/26(金) 02:42:44.17ID:+qiDmRnL
>>105
java hogehogeって書いたスクリプトファイルを用意したらいいんじゃね?
2018/10/26(金) 03:54:22.79ID:9wT1H/41
>>105
何で./があると実行できないのか俺にはわからんが
そのjavaというプログラムの第一引数は単なるファイル名ではないってことか
PowerShellウィンドウとは相性が悪いプログラムってことだな
上にあるようにIDEを使うか、コマンドプロンプトで使うしかないだろう
2018/10/26(金) 06:31:22.94ID:FXq8Nzbn
Powershellの自動補完のせいじゃないだろ、そんな所でtabを叩く操作がおかしい
2018/10/26(金) 07:44:23.03ID:fUEsFsck
いちいち手作業が面倒くさいときこそシェルスクリプトを書くべきじゃまいか
引数のパスからクラス名を取り出して他の引数はそのままjava.exeに渡す
このスクリプトにパスを通しておく
coかcomまで辿ればパッケージにも対応できるな
2018/10/26(金) 07:45:45.75ID:fUEsFsck
coじゃなくてjpだった
2018/10/26(金) 14:40:25.23ID:9NaxqrWo
>>107
確かに。
ありがとうございます。
そうします。
2018/10/26(金) 14:44:17.82ID:9NaxqrWo
>>109
クラス名をフルで手入力ですか?
114デフォルトの名無しさん
垢版 |
2018/10/26(金) 18:35:01.07ID:zbWSKzqB
プログラムとスクリプトとシェルの違いって何ですか?
パワーシェルは何?
2018/10/26(金) 18:46:34.50ID:xBIHPZW8
コマンドプロンプト・PowerShell・bash は、コマンドを入力できるから、シェル

コマンドプロンプト用に、ファイルに書いたプログラムは、バッチファイル。
PowerShell・bash用に、ファイルに書いたプログラムは、シェルスクリプト
116デフォルトの名無しさん
垢版 |
2018/10/26(金) 19:16:08.67ID:6wLQ7f7d
>>105
Java11使え。
java ./hogehoge.java
2018/10/26(金) 19:30:22.59ID:FXq8Nzbn
クラスファイルに.class 拡張子は付いてないという前提でラクそうな方法
java -classpath
まで入れて、ファイル名一部入力してtab
.\Hogeが保管されるので
Ctrl+←で一回おすと\の後の文字に飛ぶ。
そこでスペースキー
java -classpath .\ Hoge
Javaは拡張子は見ませんだの、ファイル名見ませんだの、大文字小文字区別だのいろいろ面倒ね
2018/10/26(金) 20:11:54.17ID:AQgJ1GgH
>>113
Linuxでzsh使おうね
2018/10/26(金) 20:14:30.49ID:mtqgcbcu
ComObjectみたいにJavaObjectをNewできたら便利だとおもう
Java相互運用ラッパーを自動生成するコマンドレットない?
2018/10/27(土) 11:50:26.09ID:E3+jW7oE
>>116
11からコンパイルいらないんでしたっけ?便利ですよね。
結局プロファイルでmyjavaっていう11みたいに動作するようにしました。
2018/10/28(日) 22:43:03.45ID:cS/B+JtL
PowerShell Core 6.1 の新機能
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-core-61
122デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:10:57.38ID:UusL+Srb
>>121
最近追ってなかったから知らんかったけど
Markdownに対応してんやね
びっくりやわ
123デフォルトの名無しさん
垢版 |
2018/10/30(火) 00:22:31.97ID:LZVff6s3
パワーシェルやバッチってプログラム言語と言えるの?
2018/10/30(火) 04:04:48.57ID:ZaLbntHv
シェルスクリプト(awk sed,perl)含むの記述がプログラムか?と問われたら是非別れるのと同じ気がする。用法、組み方によるのでは?
各種言語を切り貼り利用できるグルー言語資質と、プロトタイピング性に優れてる。
データ扱いが常にオブジェクトというのがそれらと大きく異質。
2018/10/30(火) 06:32:05.32ID:aroewsdA
>>123
あなたのプログラム言語の定義は?
2018/10/30(火) 07:27:28.27ID:H5WVH8ZO
一般的な基準として、チューリング完全な、プログラムを記述するための形式言語ならプログラミング言語
Powershellはbrainf*ckインタープリタを書けるらしいのでチューリング完全
だからプログラミング言語と言って差し支えない
2018/10/30(火) 07:50:51.52ID:wAgTgtJ2
>>122
21世紀のnroffだわな
2018/10/30(火) 19:29:22.59ID:5BbWkodl
WindowsPEのvbsがシステムフォントの変更によって使い物にならなくなったので
PowerShellでフォントを指定したメッセージボックスを使いたいです。

インプットボックスでフォントを指定したサンプルは見つけましたが
メッセージボックス版が見つけられません。

コードを教えていただけますでしょうか。

バッチスレの住人でPowerShellは門外漢なのです。
129デフォルトの名無しさん
垢版 |
2018/10/30(火) 20:40:30.78ID:LZVff6s3
よくわからんけどmsgコマンドじゃあかんの?
2018/10/30(火) 21:16:30.95ID:J8L+p3HY
>>129
WindowsのPro版にある「Msg.exe」の事ですか?
WindowsPEに有りませんし、持って来ても動きませんでした。
WindowsPEはx86のexeをx64で動かせないので
x86しかexeが無い場合は使えません。
その点、スクリプトはビット数を選ばないので都合がいいのです。
2018/10/30(火) 21:25:14.89ID:eTO/K+Ns
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("メッセージ", "タイトル")

で行けるかね?
PEでWindowsForms使えるか分からんけど
2018/10/30(火) 21:41:00.25ID:OyNBi9EH
そもそもPEなんてしょぼ環境にPowershellや.NETランタイム入ってるんだっけ
逆にPSが動作するぐらいならSysWOW64ぐらい入っててもよさそうだが
2018/10/30(火) 21:41:13.95ID:J8L+p3HY
>>131
それは動きました。
でも、フォントサイズとフォントを指定したいのです。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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