PowerShell -Part 3

1デフォルトの名無しさん2018/10/09(火) 17:46:48.32ID:G4IJkzod
前スレ
【最強CUI】PowerShell -Part 2
http://mevius.5ch.net/test/read.cgi/tech/1480109402/

34デフォルトの名無しさん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

35デフォルトの名無しさん2018/10/11(木) 19:38:43.55ID:DkVh6b/o
どうも Select-Object のバグっぽい
Get-ChildItem |Select BaseName でも起きる
Selectが後にパイプの別処理か、標準入力から改行受け取らないとコマンド終了判定できないっぽい

36デフォルトの名無しさん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

37デフォルトの名無しさん2018/10/11(木) 19:42:49.06ID:DkVh6b/o
>>34
お、そうなのか
5.1.17134.228 単体問題かなあ powershell v 2起動ではこちらも大丈夫だったよ

38デフォルトの名無しさん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スクリプトでは再現しないということだよね

40デフォルトの名無しさん2018/10/11(木) 19:48:49.97ID:oXF4megk
>>39
その通り
複数行 →再現せず
セミコロンで1行 →再現

41デフォルトの名無しさん2018/10/11(木) 19:50:56.75ID:DkVh6b/o
>>40
明瞭な回答ありがとうございました。

色々わかって胸のつかえがとれたよ、ありがとう>All

42デフォルトの名無しさん2018/10/11(木) 19:53:12.89ID:BCqcg04E
地味に嫌なバグだな

43デフォルトの名無しさん2018/10/11(木) 20:12:08.43ID:e56c6hX7
>>27
簡単なコマンドレットだけ使うところから
始めても十分実用になると思う
.NET(の知識)は拡張に便利だけど必須じゃない

44デフォルトの名無しさん2018/10/11(木) 20:17:09.29ID:GeJE+9Ij
PSって時々変な挙動する
逐次処理型のコンソールプログラムを直接実行した時はなんの問題もないのに
PSコンソールから同じ物を呼ぶとたまに固まる現象は未だに原因不明
しかも何故かエンターキー押したら進み出すから意味わからん
一見するとそのコンソールプログラムの問題かと思うけど違うプログラムでも発生するからPSが原因なのは確か

45デフォルトの名無しさん2018/10/12(金) 13:57:06.10ID:Vm21lImY
PowerShell 6.1って既存のPowershell 5.1 Desktop版と共存できる?
できるなら入れてみようかな

46デフォルトの名無しさん2018/10/12(金) 14:49:07.51ID:LyO2C2Nx
別物やから気にせず入れればええ

47デフォルトの名無しさん2018/10/12(金) 17:23:13.60ID:Vm21lImY
>>46
ありがとう、やってみます

48デフォルトの名無しさん2018/10/12(金) 18:16:36.74ID:tfCNN8gU
パワーシェルやバッチから汎用資格情報を利用してリモートデスクトップを起動・接続したいのですが、パワーシェルのcuiでパスワード入力が必ず要求されてしまいます
資格情報は正常に登録されています
これはどう回避すれば良いでしょうか?コマンドではなく、セキュリティポリシーの問題ですか?

49デフォルトの名無しさん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でパスワード入力要求されてしまうので、入力すれば起動するような感じになってしまってます

51デフォルトの名無しさん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
あーパスワードじゃなくて、パスか
そこの違いかな

53デフォルトの名無しさん2018/10/12(金) 19:36:20.86ID:VxeOAG4j
やってみたらpasswordでも通ったわ...
関係なさそう

54デフォルトの名無しさん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
おお、ポリシーの問題ですかね

56デフォルトの名無しさん2018/10/12(金) 21:53:31.40ID:3rr2tBek
まず問題の切分をしようよ
・GUIで普通に接続する時はログインを省略出来るのか
・コマンドプロンプトでコマンド直打ちした際はどうなるのか
正直言えばPS関係あるの?って話なんだが

57デフォルトの名無しさん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
バッチファイルのコードをパワーシェルに変換できるツールってないんでしょうか?

60デフォルトの名無しさん2018/10/15(月) 20:44:11.37ID:iq0D/NFF
本買って勉強しろ

61デフォルトの名無しさん2018/10/15(月) 21:34:07.14ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。

62デフォルトの名無しさん2018/10/16(火) 00:47:27.56ID:J45RURl2
>>59
環境変数Pathの設定ですら書き方が微妙に違うからな
一括変換は無理

63デフォルトの名無しさん2018/10/16(火) 00:49:24.42ID:J45RURl2
>>58
過疎スレに聞きに行ってなくてワロタで

64デフォルトの名無しさん2018/10/16(火) 07:15:58.35ID:CAcWp+n6
過疎スレに誘導しといてあんまワロえないわ

65デフォルトの名無しさん2018/10/16(火) 11:41:07.30ID:7RIuHdb8
こういうインフラ系の疑問ってQAサイト無いのかな?
teratailはプログラム関係以外お断りっぽいし、stackoverflowかね、知恵遅れは質が悪くて

66デフォルトの名無しさん2018/10/16(火) 12:07:46.38ID:s3pweWJX
パワーシェルのifで数字を比較するとき、 1<5>10
のように複数の演算子使うことできますか?

67デフォルトの名無しさん2018/10/16(火) 12:28:15.06ID:G4QqtY7K
できません

68デフォルトの名無しさん2018/10/16(火) 12:41:57.06ID:CgKK5Phn
できないよ
1 -lt 5 -lt 10とかやっても、1 -lt 5がTrue、True -lt 10でFalse

69デフォルトの名無しさん2018/10/16(火) 14:04:55.30ID:7RIuHdb8
if (1 -lt 5 -and 5 -lt 10)

70デフォルトの名無しさん2018/10/16(火) 19:33:54.39ID:h2O8wdlC
パワーシェルなんで不等号使えないんでしょなね

71デフォルトの名無しさん2018/10/16(火) 20:10:31.71ID:cDpTxUsb
リダイレクトに不等号使ったから

72デフォルトの名無しさん2018/10/16(火) 20:23:24.10ID:h2O8wdlC
ああ、そういやそうか

73デフォルトの名無しさん2018/10/16(火) 20:41:51.75ID:7RIuHdb8
DOSコマンドプロンプトの伝統を引き継いだ説
equ → -eq
neq → -ne
lss → -lt
leq → -le
gtr → -gt
geq → -ge

74デフォルトの名無しさん2018/10/16(火) 20:45:56.62ID:7RIuHdb8
DOSの時中途半端にUnix真似たのを今度は揃えたっていうのが正しいか

75デフォルトの名無しさん2018/10/16(火) 20:58:38.76ID:tHbhOnY/
コマンドプロンプト互換用にリダイレクトは要るけどPowerShell的には使い道あんまり無い気がする

76デフォルトの名無しさん2018/10/16(火) 23:56:23.47ID:VMcjBADQ
普通にfortranの比較演算子だからな

77デフォルトの名無しさん2018/10/17(水) 04:23:05.21ID:fXyyO1tZ
いやFortranでもDOSでもなくてシェルスクリプトを意識してるでしょ
Fortranなら.GT.とかだし<>=も使える

78デフォルトの名無しさん2018/10/17(水) 22:05:24.45ID:Ny9Q/0jK
また低学歴知恵遅れの知ったかがテキトーなこといってるわ。。。
昔のfortranは<>=なんか使えない

あとな、シェルスクリプトなんかよりfortranのほうが
はるかに歴史が古い

79デフォルトの名無しさん2018/10/17(水) 23:43:13.88ID:uJo2tnoC
やっとPowershell core 6.1入れてみた。
defaultがUTF-8に変わって
sjisテキストの入出力は難しくなった。
-encoding ([System.Text.Encoding]::GetEncoding(932))と書くか-encoding oemならまだ通るんだね

80デフォルトの名無しさん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

81デフォルトの名無しさん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 "何かキーを押すと終了"

82デフォルトの名無しさん2018/10/18(木) 19:36:40.46ID:vpgDyIt0
代入の二段重ねなんて出来るんだw

83デフォルトの名無しさん2018/10/18(木) 19:53:20.76ID:nSVk5plj
$a = $b = 1ってできるじゃん

84>>802018/10/18(木) 23:03:06.79ID:AkEYj+KW
>>81
おお、サンプルまで作って頂きありがとうございます!!
瞬く間に1000枚に情報入力出来ました!
where nameの働きと-f $Matchesの左右の表現が調べても最後までピンと来なかったのでもっと学んで見たいと思います

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