スポンサードリンク

2017年06月16日

バッチファイルで環境変数の一部を比較する その1

こんな要望が出てきました。

ログオンスクリプトで、ある処理をしたい。
しかし、コンピュータ名がSRVから始まるPCの場合は、処理しないで欲しい。

コンピュータ名は、環境変数 computername で取得できますが、頭3文字だけを判別するにはどうしたら良いのか・・・

こんなバッチで解決しました。

-------バッチの中身-------
:コンピュータ名がSRVから始まる場合はインストールしない
if %computername:~0,3%==SRV goto end

必要な処理を列記

:end
---------------------------

 %computername:~0,3%
この書き方で、conputernameの先頭から3文字が取り出せます。


posted by まさ at 14:11| Comment(0) | その他

バッチファイルでの繰り返し処理

例1
aaa.txt に書かれた内容をechoコマンドで表示する
aaa.txtの内容
----
AAA
BBB
CCC
---

バッチファイル(test.bat)の中身
----
ecoh off
for /F %%A in (aaa.txt) do echo %%A
----

これで、testを実行すると、aaa.txt の内容が画面に表示される。


例2
C:\data\pclist.txt に記入されたPCを再起動したい。
pclist.txtの中身は、
---
PC-001
PC-002
PC-003
---

バッチファイルの中身は、下でOK。
これで、pclist.txt に列挙されたPCが、再起動する。
---
for /F %%A in (c:\data\pclist.txt) do shutdown -r -m \\%%A -t 0
---

1台シャットダウンしたら、次に行く前に5秒待つならバッチの中身はこうなる。

-----
for /F %%A in (c:\data\pclist.txt) do (
shutdown -r -m \\%%A -t 0
timeout /t 5
)
-----
posted by まさ at 13:43| Comment(0) | その他

2016年10月07日

ランサムより怖いMSのパッチ

会社での出来事ではありませんが、あまりに恐ろしいことが発生したので、書いておきます。

私が自宅で使用しているのは、ThinkPad X220。
かなり古いですが、昨年、SSD化してからは、実に快適です。
Lenovoの、Windows10 対応機種には列挙されていませんが、無償アップグレードのときに、インストール出来ますという表示になっていたので、アップグレードしてありました。

その後、特に大きな問題なく使用していました。
互換性が無いという事で、いくつかのLenoveのユーティリティーは、勝手に削除されましたが・・・

9月の初め頃、Aniversary Update が来て、version 10.0.14393 になりました。
この時は、編集中で保存していないファイルをいくつか開いたまま、席を離れたら、それらのファイルを全て無視されて勝手に再起動されてましたが・・・
せめて、未保存のファイルがある時くらいは、再起動を保留して欲しいものです。

そして、10月の初め、新たなUpdateが来ました。
いつものように適用して再起動。
この時までは、特に問題なしです。
作業を終えて、シャットダウンしました。

ところが、翌日、スイッチONしても起動しない。
ブートドライブを探しに行ってます。
まるで、SSDが繋がっていないような動作です。

SSDを外して、別のPCで調べたところ、なんと、パーテーションが無くなっていました。

この時点では、
「もしかして、SSDが壊れたのか」
とも思っていました。

しかし、このSSD、改めてOSを入れてみると、正常に動作します。

改めて、Windows7をインストール。
無事、使えます。

しかし、ここから10にするには、どうするんだ?
もう無償アップデート期間は過ぎている。
Anversary Update適用済みのDVDが借用できたので、これを使ってアップグレードしてみた。
これでライセンス認証済になるのか・・・
結果は、ならない。

調べてみると、ここで、元のWinodws7(無償アップグレードした元のOS)のプロダクトキーが使えるとの情報を得たので、入れてみた。
すると、認証成功。
よくよく調べてみると、7から10に無償アップグレードしたPC上でなら、10をクリーンインストールした場合でも、7のプロダクトキーが使えるようだ。
勿論、エディション等は、適合していないとダメだが。

これで、無事SSD上に AniversaryUpdate の環境が戻った。
そして、翌日の夜、また Update が来た。

私は、何らかのSSD側の問題と思っていたので・・・
つまり、MSを信用していたので、素直にアップデートした。
再起動後は、問題なく使用できた。
あくまで、確認のつもりで、ここで、一度シャットダウンした。
そして、スイッチON・・・

PCは、ブートデバイスを探しに行き、戻ってくる事はありませんでした・・

SSDを確認してみると、またパーテーションが消えていました。
1度ならず、2度までも・・・
こうなると、Update で消されているとしか思えません。

色々、調べてみると、このUpdateで、パーテーションが消される例は、他にもあるようです。
Cドライブ以外に割り付けたパーテーションが見えなくなったという例は、沢山ありました。

一定の条件が揃わないと発生しない現象だとは思いますが、条件次第で、こうして再現可能な現象として、勝手にブートパーテーションをフッ飛ばしてしまいます。
これじゃ、ランサムウェアより凶暴です。
私は、このPCで、Windows10 を使うのは諦めました。

会社の標準OSは、現在 Windows7 ですが、こういう破壊的なパグを見てしまうと、10へのアップグレードは、当分先になりそうな気がします。

皆様も、10の Update には、お気をつけ下さい。

タグ:update Windows10
posted by まさ at 09:35| Comment(0) | Windows
システム管理者日記」の先頭へ