none
サインイン時自動実行のプロセスで一部のレジストリが見えない RRS feed

  • 質問

  • 皆様お世話になります。

    怪奇現象ですが、サインインして自動実行されるプロセスで一部のレジストリが見えないことがあるのでしょうか?

    自動実行は、下記のレジストリに設定しています。

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
       + Script1 = "Powershell -ExecutionPolicy RemoteSigned \\~"

    問題があったのは、

    $KEY = "HKLM:\Software\Microsoft\Office\~"
    If (Test-Path $KEY)
    {    ....    }

    にて実行する処理が、あるはずのキーが Test-Path にて False が返っているようで、If 文の {} の中が実行されません。
    Get-Content "HKLM:\Software\Microsoft\Office" をファイルに出力して確認したところ、11.0、12.0、14.0 とあるはずなのに、11.0 が無い結果でした。

    スクリプトは共有フォルダに置いていますが、3年前から安定稼働しているものです。

    同じスクリプトを、スタートから起動した Powershell から実行すると、上記 If 文は True と評価され、実行されます。

    Windows10 Pro 64bit バージョン1803、UACは無効、実行ユーザは Users グループです。

    よろしくお願いします。


    2019年8月23日 15:00

回答

  • すみません。自分で作っておいて忘れていた条件がありました。

    問題のプロセスは Powershell (スクリプト)ですが、表に見せないために .exe を作って CreateProcess で実行していいました。

    サインイン時自動実行でなくても同じ .exe を用いて起動すると再現し、SW_SHOW に変えても同様でした。

    CreateProcess なんて20年以上使っているのに、こんな問題が生じたのは初めてですが、元々作法を間違っていたかもしれませんので、もう少し調べてみます。

    何れにせよタイトルが合わないので、自己完結で一旦クローズします。

    お騒がせしました。

    • 回答としてマーク M14Cluster 2019年8月25日 23:19
    2019年8月25日 23:19