サイボウズOFFICE、GAROONにVBスクリプトで自動ログインする

サイボウズOffice7に自動ログインするスクリプトです。
おそらくOffice8でも動作するのでは無いかと思いますが未確認です。

また、設定でユーザアカウントをログイン画面に表示させている場合には、多少スクリプトを修正しなければおそらく動作しません。遊び心で特定の端末が指定の時間までにPING応答が無い場合に「xxxさんお休みです。」みたいな書き込みをするスクリプトを作ろうかとも思ったのですが、そこまで作っていません。
また、スクリプトにIDとパスワードを直接記載する必要があるので、セキュリティ的にも実は、あまりお勧めではありません。あくまでお遊びスクリプトです。

使い方

以下のスクリプトをメモ帳等でテキスト文書に保存して、拡張子を”vbs”に変更してください。
スクリプト中の”HOSTNAME”にサイボウズOfficeがインストールされているサーバを指定し、”USERNAME”にログイン名、”PASSWORD”にはパスワードを入力します。

あとは実行するだけです。

'サイボウズOffice7自動ログインスクリプト
Option explicit
Set objIE = CreateObject("InternetExplorer.Application")

Dim USERNAME
Dim PASSWORD
Dim HOSTNAME
Dim StrHTML
Dim StrHTML_LINE
Dim objIE

'------------↓変更必要箇所↓----------------
HOSTNAME = ""
USERNAME = ""
PASSWORD = ""
'------------↑変更必要箇所↑----------------

Call Main()
Set objIE = Nothing

Sub Main()
	objIE.Visible = True
	'サイボウズログイン画面
	objIE.Navigate "http://" & HOSTNAME & "/ag.exe?"
	'メニューバーを表示するかどうか。
	objIE.MenuBar = True
	While objIE.Busy Or objIE.ReadyState <> 4
	Wend
	If AM_I_AUTH() = False Then
		objIE.document.all.Item("_Account").Value = USERNAME
		objIE.document.all.Item("PASSWORD").Value = PASSWORD
		objIE.document.all.Item("Submit").Click
	End If
End Sub

'既にサイボウズにログイン済みかどうかのチェック
Function AM_I_AUTH()
	StrHTML = Split(objIE.document.body.innerHTML,vbCrLf)
	for each StrHTML_LINE in StrHTML
		If StrHTML_LINE = "<TD noWrap align=right>ログイン名</TD>" Then
			AM_I_AUTH = False
			Exit Function
		End If
	Next
	AM_I_AUTH = True
End Function

サイボウズコミュニティにガルーン用のスクリプトの事も記載されていたので、自分で利用していたガルーンで利用出来るスクリプトも雑ですが以下に記載しておきます。

'サイボウズガルーン3 ログインスクリプト
Option Explicit

Dim strUser
Dim strPassword
Dim strUserName
Dim objIE

'サイボウズにログインする際に利用しているIDとパスワードを入力します。
strUser     = ""
strPassword = ""
'ログインした際に表示される名前を以下に入力します。
'(例)strUserName = "ぴーえぬぴーけー"
strUserName = ""
'サイボウズガルーンのトップページのURLを以下に入力します。
'(例)strGaroonURL = "http://hogehoge/scripts/cbgrn/grn.exe"
strGaroonURL = ""

Set objIE = WScript.CreateObject("InternetExplorer.Application","ie_")
objIE.Visible = True

objIE.Navigate strGaroonURL

While objIE.Busy Or objIE.ReadyState <> 4
Wend

Dim StrHTML

'表示したページにstrUserNameで定義した文字列が無ければログインフォームと見なしてログインを試みる
StrHTML = objIE.document.body.innerHTML
If instr( StrHTML,strUserName ) = 0 Then
	objIE.document.all("_account").Value = strUser
	objIE.document.all("_password").Value = strPassword
	objIE.document.all("login").submit()
End If

While objIE.Busy Or objIE.ReadyState <> 4
Wend

Set objIE = Nothing

また、Windows7 64bitでVBSを実行すると既定だと64Bit版のIEが起動してしまうので、以下のようなショートカットを作成して32bit環境のIEが起動させてください。

%windir%\SysWoW64\cmd.exe /c Cscript hogehoge.vbs

2 COMMENTS

pnpk

こんにちは、コメントありがとうございます。

Windows XP SP3をRISで展開した事がありますので、おそらくSP3化したイメージでも動作する事はすると思います。
※自分の場合はWindows XP SP3のDVDイメージを利用しました

在り来たりな返信となってしまいますが、RISのどの段階で停止しますでしょうか。
OSのバージョンをSP2からSP3にする時に、サーバ上のイメージを一旦全削除している場合には、もしかすると必要なドライバが無くなっている可能性もあるかもしれません。

物理PCで確認を行う場合、ドライバー等の兼ね合いもあると思いますので、
環境の準備が可能であればですが、動作確認をVirtual ServerやHyper-V上の端末で実施するとその辺の切り分けは楽かもしれません。

仮想サーバであれば一通りのドライバはOS標準搭載のものを利用出来ると思います。

あまりお力になれていないですが、よろしくお願いします。

HomeTown

はじめまして管理人殿、RISの項、同様の手順で実施していました。そういえばSATAのAHCIが出たときには試行錯誤しましたね。
もしわかれば教えて頂きたいのですが、RIS上にはXPproSP2でセットアップされているのですが、最近それを基にしたセットアップ済みXPをSP3化させてアップロードしたイメージを作成しましたが動きません。(HALAHCIほかのHALは未だ試していません)
そういった事象に心当たりがあればどんな情報でもいいので教えていただけませんか?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です