SQLの窓

2018年03月09日


Windows7 と Windows10 : MSG コマンドを使えるようにするには ( msg.exe )

職場と自宅と両方でテストしました。職場ではファイヤーウォールの設定が必要だったのですが、自宅では必要無いようでした。職場の PC は他にもセキュリティの設定が入っているので、それが影響しているかもしれません。ファイヤーウォール側の意味あいはイマイチ良く解ってませんが、もし 1722 となった場合は設定してみるとうまく行くかも解りません。

通常は、5 のエラーコードが返って来ますが、一番重要な AllowRemoteRPC を 1 にする設定がなされていなくても 5 のエラーコードが返ると思いますが、経験上 5 は資格情報のようなので、同一ユーザーで同一パスワードの場合は何も問題なく実行できると思います。

これは、net view コマンドも同様で、同一ユーザーで同一パスワードの場合は表示されると思います。別ユーザであったり、パスワードが異なる場合は、コントロールパネルの資格情報マネージャでその PC に向けての PC名、ユーザ、パスワードを記憶させておけば MSG も NET VIEW も使用可能でした。( 登録するユーザとして Adminstrator を使うと、User グループのユーザから、通常管理者ユーザへ送れました。ひょっとしたら、資格情報として登録する場合 Administrators グループなら良いのかもしれませんが、そこまでテストしていません。しかし、どうせ登録するのならば、Administrator のほうが管理しやすいでしょう。 )

Windows10 でコントロールパネルを表示するのは、ファイル名を指定して実行で、control と入力するといいと思います。( あるいは、デスクトップアイコンとしてコントロールパネルを表示するようにテーマの設定から行います )

ファイヤーウォールの設定

セッション名の取得エラー 1722 となりました。以下の設定を行って、AllowRemoteRPC を 1 にして、両方の PC に同一ユーザ名と同一パスワードで動作確認しました。( Windows7 => Windows10 と Windows10 => Windows7 )

とにかく設定変更したら再起動したほうが問題を排除しやすいと思います。(リモートアクセスで開いた側の PC から自分に送ったらリモートアクセス側に戻るという面白い現象も経験しました。)


( 全て有効にします )

C:\Users\lightbox>msg lightbox /server:pc-024 こんにちは
セッション名の取得エラー 5
セッション名の取得エラー 5 のエラーは、AllowRemoteRPC の設定と ユーザ・パスワードの不一致で起こると思われます

コントロールパネルの資格情報マネージャーで Windows 資格情報をあらかじめ登録しておくと利用できます。Adminstrator を登録しておくと他のユーザでも使えるようです( 何か他に条件があるのかもしれませんがテストした内容からするとそんな感じです )

環境によっては、pc 名では無く ipアドレスで直接指定するといいと思います。
メッセージを受けるほうの PC で、以下のレジストリ( AllowRemoteRPC )を 1 に変更します
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"AllowRemoteRPC"=dword:00000001

▼ デフォルトに戻す
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"AllowRemoteRPC"=dword:00000000


レジストリの位置を開くスクリプト
strParam = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"

' レジストリ書き込み用
Set WshShell = CreateObject( "WScript.Shell" )
' WMI用
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

' レジストリエディタが最後に開いていたキーの登録を行います
strPath = "Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\LastKey"
if GetOSVersion() >= 6 then
	strRegPath = "コンピュータ\" & strParam
else
	strRegPath = "マイ コンピュータ\" & strParam
end if

' 既に regedit が実行中の場合はいったん終了させます
Set colProcessList = objWMIService.ExecQuery _ 
	("Select * from Win32_Process Where Name = 'regedit.exe'") 
For Each objProcess in colProcessList
	' 最後のウインドウの位置とサイズを保存する為の終わらせ方
	WshShell.AppActivate("レジストリ エディタ")
	Wscript.Sleep(500)
	WshShell.SendKeys ("%{F4}")
	Wscript.Sleep(500)
	' 上記終わらせ方が失敗した時の強制終了
	on error resume next
	objProcess.Terminate() 
	on error goto 0
Next 

WshShell.RegWrite "HKCU\" & strPath, strRegPath, "REG_SZ"

' レジストリエディタを起動します
Call WshShell.Run( "regedit.exe" )
' レジストリエディタが終わるまで待つ場合は以下のようにします
' Call WshShell.Run( "regedit.exe", , True )

REM **********************************************************
REM OS バージョンの取得
REM **********************************************************
Function GetOSVersion()

	Dim colTarget,str,aData,I,nTarget

	Set colTarget = objWMIService.ExecQuery( _
		 "select Version from Win32_OperatingSystem" _
	)
	For Each objRow in colTarget
		str = objRow.Version
	Next

	aData = Split( str, "." )
	For I = 0 to Ubound( aData )
		if I > 1 then
			Exit For
		end if
		if I > 0 then
			nTarget = nTarget & "."
		end if
		nTarget = nTarget & aData(I)
	Next

	GetOSVersion = CDbl( nTarget )

End Function

MSG コマンドの引数

MSG {ユーザー名 | セッション名 | セッション ID | @ファイル名 | *}
    [/SERVER:サーバー名] [/TIME:秒] [/V] [/W] [メッセージ]

  ユーザー名          送信先のユーザー名を指定します。
  セッション名        セッション名を指定します。
  セッションID        セッション ID を指定します。
  @ファイル名         メッセージの送信先一覧のファイル (ユーザー名、
                      セッション名、セッション ID) を指定します。
  *                   指定されたサーバーのすべてのセッションにメッセージを
                      送信します。
  /SERVER:サーバー名  送信先のサーバーを指定します (既定値は現在のサーバー)。
  /TIME:秒            受信者の確認応答までの待ち時間を指定します。
  /V                  実行中に詳細情報を表示します。
  /W                  ユーザーからの応答を待ちます。通常 /V オプションと共に
                      指定します。
  メッセージ          送信するメッセージを指定します。指定しない場合は、入力
                      プロンプトが表示されるか、または stdin から読み取ります。
posted by lightbox at 2018-03-09 18:13 | Windows7 | このブログの読者になる | 更新情報をチェックする

2018年01月20日


Windows7 / 10 : イベントビュアーのログの設定をコマンドラインより行う(クリアを含む)



この画像はデフォルト状態ですが、以下はコマンドラインより現在の状態を表示したものです。
C:\Users\lightbox>wevtutil gl Application
name: Application
enabled: true
type: Admin
owningPublisher:
isolation: Application
channelAccess: O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU
)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\Application.evtx
  retention: false
  autoBackup: false
  maxSize: 20971520
publishing:
  fileMax: 1

C:\Users\lightbox>wevtutil gl Security
name: Security
enabled: true
type: Admin
owningPublisher:
isolation: Custom
channelAccess: O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\Security.evtx
  retention: false
  autoBackup: false
  maxSize: 20971520
publishing:
  fileMax: 1

C:\Users\lightbox>wevtutil gl System
name: System
enabled: true
type: Admin
owningPublisher:
isolation: System
channelAccess: O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x3;;;BO)(A;;0x5;;;SO
)(A;;0x1;;;IU)(A;;0x3;;;SU)(A;;0x1;;;S-1-5-3)(A;;0x2;;;S-1-5-33)(A;;0x1;;;S-1-5-
32-573)
logging:
  logFileName: %SystemRoot%\System32\Winevt\Logs\System.evtx
  retention: false
  autoBackup: false
  maxSize: 20971520
publishing:
  fileMax: 1


[必要に応じてイベントを上書きする] : retention = false、autoBackup = false
[イベントを上書きしないでログをアーカイブする] : retention = true、autoBackup = true
[イベントを上書きしない (ログは手動で消去)] : retention = true、autoBackup = false

2番目の、「イベントをイベントを上書きしないでログをアーカイブする」を、アプリケーションログで実行すると以下のようになります。

wevtutil sl Application /rt:true /ab:true

アプリケーションログの最大サイズの設定は以下のようになります( バイト )

wevtutil sl Application /ms:20971520

アプリケーションログのクリア(バックアップなし)は以下のようになります

wevtutil cl Application

※ 管理者権限でコマンドプロンプトを開いて実行してください

posted by lightbox at 2018-01-20 20:40 | Windows7 | このブログの読者になる | 更新情報をチェックする

2017年12月12日


Windows7(32ビット) が急にフリーズして、メモリ診断して OK だったけれど、結局メモリの障害だった経緯で行った事

デュアルブートの PC で、両方に Windows7(32ビット)をインストールしています。ある日その片側でフリーズしたのが始まりでしたが、とりあえずメモリ診断やったんですが、その時は異常ありませんでした。



その後、もう一方の Windows7 を立ち上げて Google Chrome の操作をしていると画面が乱れて固まりました。当然『電源長押し』で対処するしか無く、しかし BIOS の画面が表示されてエラー云々。標準の設定で保存して再起動しました。

同一 PC で二つの OS で同様のトラブルなので、共通するのはハード(特にメモリ)なんですが、一応『トレンドマイクロ オンラインスキャン』でウイルスチェックをしてみました。放置してしばらくして PC の前にやってくると PC は死んでました。

なんとかいろいろあって、再度立ち上げて再び『メモリ診断』すると、01% から動かず、放置して帰ってくるとまた死んでました。

もう、メモリが原因なのはほぼ決定と言う事でメモリ抜いてもう一度指しなおして再起動。しかし、反応せず(ディスプレイに信号が来ない)。そこで、たださし直すのでは無くかなり力を入れてグィっと差し込んで再起動してみました(一応表面のほこりと、マザーボード側のほこりはみみかきの綿部分で排除)。

すると正常に立ち上がり、すぐメモリ診断しましたが異常なし。でも、最初のメモリ診断でも問題なかったので、以下の処理を行いました。
1) 管理者権限のコマンドプロンプトで chkdsk /F
2) 管理者権限のコマンドプロンプトで SFC /SCANNOW
3) トレンドマイクロ オンラインスキャン
特に問題なく全て終了したので、裏側の Windows7 でも 1) と 2) を行いましたが、異常ありません。 この作業は二日にまたいでまして、その間あった事 一度、ブルースクリーンになったので、BlueScreenView というフリーソフトがある事を知りました。いつか使えるかもしれません。 気になって Windows Update 調べたら、たまたま Windows Update も死んでて、その対応にも追われました。 (Windows7 で Microsoft(Windows) Update ができなくなる状態の解消方法) Google Chrome も死亡してしまって、User Data を移動して再インストールしました。User Data の中のブックマークだけ戻して再運用してます
1) C:\Users\ユーザ\AppData\Local\Google\Chrome\User Data を適当な場所へ移動
2) Chroem アンインストール
3) Chroem インストール
4) 移動 User Data の中の Default\Bookmarks を新しい 場所へコピー
Google Chrome は以前からメモリを使いすぎると思ってたので、設定変更しました。 この PC は、以前も一度メモリがぶっ壊れて買い換えてます。その時は新品のぶっ壊れたメモリと同じものもらいましたが、怖いので違うものが今刺さってます。なので、こんどなんかあったら買い替えなれければと思っています。 しかし、メモリの抜き差しの2回目で改善するって、運がいいのか悪いのか...
タグ:トラブル
posted by lightbox at 2017-12-12 18:02 | Windows7 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり