あなた(そして特にクロエの上司)が同意するなら、それは
- Webサイトはクライアントのコンピューターをスパイしてはいけません
- ユーザーは、インストールしようとしているソフトウェアのシステム要件について少し支援を受ける権利があります。
- そのような助けはセキュリティ設定の低下を伴うべきではありません
あなたのオプションは
- 要件をリストし、それらを決定する方法を詳細に説明します
- Windows:適切なレポートを生成/表示するHTA(HTMLアプリケーション)のソースを(ダウンロードするために)ユーザーに提供します
- unix / linux:適切なレポートを生成/表示するスクリプトのソースを(ダウンロードするために)ユーザーに提供します(少なくとも2つの一般的な言語を選択します)
- とにかく要件をチェックするインストーラーを作成することを考えると、それらのチェックを独立した「要件を確認する」アプリケーションにバンドルすることができます
HTAが適切であると判断した場合は、そのように言ってください。この回答に追加します。
開始するには:
最小限のsysreq.hta:
<html>
<head>
<title>System Requirements For XXX</title>
<hta:application
id="sysreq"
></hta>
<script type="text/vbscript" src="sysreq.vbs"></script>
<script type="text/jscript" src="sysreq.js"></script>
</head>
<body onload="onload">
<table id="tblSysReq" border="1" summary="KeepTidyHappy">
<tr>
<td id="tdOS">
</td>
</tr>
<tr>
<td id="tdMSSQL">
</td>
</tr>
</table>
</body>
</html>
本番バージョンの場合は、HTMLエディター/ IDEを使用して素敵なページを作成し、hta要素を挿入する必要があります。HTA固有の(インタラクティブな)要素/コードをHTMLに配置するのに役立つ、かなり古いウィザードがあります。一部のMSインストールCD/DVD / ISOには、さらにインスピレーションを得るために使用できるsetup.htaが含まれています。一部のグーグルでは、 SystemDocumenterWizardなどの.htaアプリを参照できます。これらのソースはいずれも、慎重なシングルステップテストなしでは信頼できません。例:公式ドキュメントから.htaを開始しましたが、厄介なものをザッピングするまでWindows7で実行できませんでした<meta http-equiv="x-ua-compatible" content="ie=9">
。
スクリプトを.htaにインラインで含めることもできますが、開発するには、scriptタグのsrc属性を介してコードを含めることをお勧めします。sysreq.vbsの場合:
Sub onload()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings
' Wscript.Echo "OS Name: " & objOperatingSystem.Caption
document.getElementById("tdOS").innerText = "OS Name: " & objOperatingSystem.Caption
Next
If False Then
Dim WSHShell : Set WSHShell = CreateObject("WScript.Shell")
On error resume next
' test = wshshell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names")
test = wshshell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\SQLEXPRESS")
If 0 <> Err.Number Then
' msgbox "SQL Server not found"
MsgBox Err.Description
test = "SQL Server <b>not</b> found"
Else
' msgbox "SQL Server found"
test = "<i>SQL Server found</i>"
End If
document.body.all("tdMSSQL").innerHTML = test
Else
JsHelper
End If
End Sub
私はあなたが公開したコードに従おうとしました。document.getElementById()
必要な変更は、またはを使用してHTML要素のinnerText/HTMLに「書き込む」ことでWScript.Echo出力を置き換えることdocument.body.all()
です。
情報収集のためのアイデア/サンプルコードを入手するには、Scriptomaticなどのツールをご覧ください。あなたがJScriptについて言及したように、私はsysreq.jsを投入します:
function JsHelper() {
var WSHShell = new ActiveXObject("WScript.Shell")
try {
var test = WSHShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL\\SQLEXPRESS");
document.all.tdMSSQL.innerHTML = "<i>SQL Server found</i>";
}
catch(e) {
alert(e);
document.all.tdMSSQL.innerHTML = "SQL Server <b>not</b> found";
}
}
同じ問題を処理するJScriptコードとVBScriptコードを比較できるようにします。
これが何の価値があるかについて-私は非特権ユーザーアカウントを使用してWindowsXPと7でこれをテストしました。マイレージが変わらないことを願っています。
WRT chloeの質問「2つの異なるスクリプト言語を同じhtaに配置することは可能ですか?」:。HTA(および.WSFまたは.WSC)では、すべての(インストールされた)ActiveScript言語(VBScript、JScript、Perlscript、Pythonscript、Rubyscript)を混在させることができます、...)インラインまたはsrc属性を介してスクリプトタグを使用します。これは学習には最適ですが、一般的に本番コードには適していません。