none
wss 3.0のサーバーの全体管理サイトのロックを解除したい RRS feed

  • 質問

  • 初めて投稿いたします。
    WSS3.0を使って社内Webサイトの構築を試みております。

    stsadmでバッチファイルを組み、タスクで自動的にバックアップをとろうとし、バックアップのコマンドの前にサイトコレクションをロックするようにしましたが、サーバーの全体管理のサイトもロックしてしまい、ロックの解除ができなくなってしまいました。

    なお、そのバッチファイルは以下のようなものです。
    ---------------------------------------
    setlocal
    set BACK_DIR=E:\wss_backup
    set WSS_PATH="c:\Program Files\Common Files・・・"

    rem --- サイトコレクションのロック ---
    %WSS_PATH%stsadm -o getsitelock -url http://testsite/
    %WSS_PATH%stsadm -o setsitelock -url http://testsite/ -lock noaccess
    %WSS_PATH%stsadm -o getsitelock -url http://testsite:xxx/
    %WSS_PATH%stsadm -o setsitelock -url http://testsite:xxx/ -lock noaccess

    rem --- バックアップ ---
    %WSS_PATH%stsadm -o backup -directory %BAK_PATH% -backupmethod full

    rem --- サイトコレクションのロック解除 ---
    %WSS_PATH%stsadm -o setsitelock -url http://testsite/ -lock none
    %WSS_PATH%stsadm -o setsitelock -url http://testsite:xxx/ -lock none

    endlocal
    ---------------------------------------
    上記のtestsiteがユーザ向けサイトで、testsite:xxxがサーバーの全体管理のサイトを示します。

    サイトコレクションのロック解除のところで、「このWebサイトへのアクセスはブロックされています」と表示されてしまいます。
    後で考えるとやってはいけないことをやってしまったように思っています。
    サーバーの全体管理のサイトをロックしてしまった場合、どうすればロックを解除できるのでしょうか。

    なお環境は、Win2003 R2+WSS3.0のInternal Databaseで基本インストール、ワークグループです。

    何卒よろしくお願いします。

    2009年3月29日 14:28

回答

  • f-shigeさん、こんにちわ。

    管理サイトのロックは一度設定してしまうと解除できないようですね。
    また管理サイトをロックしてしまうと他サイトにおいてもロック設定・ロック解除ができなくなります。

    回避方法は下記の手順でデータベースのレコードを変更するとロックが解除されるようです。

    SQLManagerを起動し、直接SQLServerのデータを編集します。
    管理サイトのデータベースのsitesテーブルの BitFlags がおそらく "3" となっていますので "0" へ更新してみて下さい。
    • 回答としてマーク 服部清次 2009年4月7日 0:48
    2009年3月30日 5:39
  • こんにちは。

    解決できずすみません。
    私も全体管理サイトでは試したことがなかったので・・

    一応USのフォーラムに同じ内容の投稿がありましたのでお伝えします。

    http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/049460ce-4e8c-45f4-89de-f3dfca8798f9/

    こちらは解決できたようです。
    一時的に全体管理サイトのアプリケーションプールの実行ユーザーを変更してロック解除を行うという方法のようです。
    • 回答としてマーク 服部清次 2009年4月7日 0:48
    2009年3月30日 6:08
  • グザモさん、kenkenziさん、アドバイスをいただきありがとうございました。

    おかげさまで全体管理サイトのロックを解除し、その後通常の手順でユーザ向けサイトのロックも解除することができました。
    kenkenziさんによるUSフォーラムの投稿は、私が直面した状況とまさに同じでした。
    今回行った、全体管理サイトのロック解除手順は以下の通りです。

    1.仮に新規ユーザを追加(ユーザ名:wss、パスワード:wsspass)
    2.ユーザwssをAdministratorsグループおよびWSS_ADMIN_WPGグループに追加
    3.ユーザwssでサーバマシンにログインしなおす
    4.コマンドプロンプトで以下のコマンドを実行し、全体管理サイトのアプリケーションプールセキュリティアカウントをwssに変更する
      stsadm -o updatefarmcredentials -userlogin サーバ名\wss -password wsspass
      stsadm -o updatefarmcredentials -userlogin サーバ名\wss -password wsspass -local
    5.次のコマンドで全体管理サイトのロックを解除する
      stsadm -o setsitelock -url http://testsite:xxx -lock none
    6.全体管理サイトのアプリケーションプールセキュリティアカウントを元の状態に戻す
      stsadm -o updatefarmcredentials -identitytype NetworkService
      stsadm -o updatefarmcredentials -identitytype NetworkService -local

    前提となるのは、全体管理サイトのアプリケーションプールのセキュリティアカウントが、元々「定義済み」「Network Service」となっていたことによります。
    4と6で同じようなコマンドを2回実行していますが、ファーム内で複数のサーバを立てている場合に、1行目は全体管理サイトをホストするサイトで実行するもの、2行目はその他の全サーバで実行するもの、のようです。今回の場合は1マシンで全てを動作させる基本インストールでしたので、2行目は不要なのかもしれませんが念のため行いました。

    なお、アプリケーションプールのセキュリティアカウントはIISの設定画面で変更できますが、WSSに関係することなのでstsadmから実行しないといけないようです。

    グモサさんにアドバイスいただいた、SQLManagerでデータベースを直接操作することも試してみました。今回はデータベースがインターナルであるためSQLManagerが付属せず、フリーのSQL Manager 2005 for SQL Server Liteをダウンロードして中身をのぞいてみました。ご指摘のBitFlagsフィールドは見つかったのですが、値は0でした。また、値の変更もできそうにありませんでした。最初、データベースを直接さわる方が直感的で安心して操作できると感じていましたので、少々残念です。

    • 回答としてマーク 服部清次 2009年4月7日 0:48
    2009年3月31日 4:21

すべての返信

  • こんにちは。

    全体管理サイトのロック解除ですが、SharePoint Manager2007というオープンソースソフトを試してみてはいかがでしょうか?
    CodePlextというサイトからダウンロードできます。
    http://www.codeplex.com/spm

    かなり詳細な設定値の変更が可能で、各サイトのlock情報も変更可能です。
    起動すると画面左側にSharePointサイト全体がツリー表示されますので、
    Administration Service > Web Applications > (ID値表示) > Site Collection > http://testsite:xxx
    という順番で項目を選択します。
    http://testsite:xxx を選択すると画面右側のPropertiesにReadLockedとWriteLockedという項目がありますのでtrueであればFalseに変更します。

    2009年3月30日 3:21
  • kenkenziさま、早々のアドバイスありがとうございました。
    早速SharePoint Manager2007をダウンロードして試してみました。

    対象のサイトコレクションを選択してみると、WriteLockedには「True」でも「False」でもなく「このWebサイトへのアクセスはブロックされています」と表示されており、設定を変更することができませんでした。

    詳しいことはよくわからなのですが、サイトコレクションをロックするということは、すべてのユーザに対してアクセス権限を一時的に止めてしまうことなのだろうと思っています。よって、「サーバーの全体」をロックしてしまうと何もできなくなるのではないかと想像しております。

    SharePoint Manager2007の状況から、先のバッチファイルを実行したアカウントでログインしている限り、このサイトコレクションのロック状態を変えることは難しいように思っています。
    先のバッチファイルでhttp://testsite:xxxをロックしていない状態で、一度はバックアップをとっていますので、最悪は一から再構築するしないかと考えてはいるのですが、残念ながらバックアップからの復元をまともに成功させたことがなく、なんとかこのロックをはずすことができないかとあがいております。

    何かヒントになりそうな情報がございましたらご教示いただければ幸いです。
    2009年3月30日 4:45
  • f-shigeさん、こんにちわ。

    管理サイトのロックは一度設定してしまうと解除できないようですね。
    また管理サイトをロックしてしまうと他サイトにおいてもロック設定・ロック解除ができなくなります。

    回避方法は下記の手順でデータベースのレコードを変更するとロックが解除されるようです。

    SQLManagerを起動し、直接SQLServerのデータを編集します。
    管理サイトのデータベースのsitesテーブルの BitFlags がおそらく "3" となっていますので "0" へ更新してみて下さい。
    • 回答としてマーク 服部清次 2009年4月7日 0:48
    2009年3月30日 5:39
  • こんにちは。

    解決できずすみません。
    私も全体管理サイトでは試したことがなかったので・・

    一応USのフォーラムに同じ内容の投稿がありましたのでお伝えします。

    http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/049460ce-4e8c-45f4-89de-f3dfca8798f9/

    こちらは解決できたようです。
    一時的に全体管理サイトのアプリケーションプールの実行ユーザーを変更してロック解除を行うという方法のようです。
    • 回答としてマーク 服部清次 2009年4月7日 0:48
    2009年3月30日 6:08
  • グザモさん、kenkenziさん、アドバイスをいただきありがとうございました。

    おかげさまで全体管理サイトのロックを解除し、その後通常の手順でユーザ向けサイトのロックも解除することができました。
    kenkenziさんによるUSフォーラムの投稿は、私が直面した状況とまさに同じでした。
    今回行った、全体管理サイトのロック解除手順は以下の通りです。

    1.仮に新規ユーザを追加(ユーザ名:wss、パスワード:wsspass)
    2.ユーザwssをAdministratorsグループおよびWSS_ADMIN_WPGグループに追加
    3.ユーザwssでサーバマシンにログインしなおす
    4.コマンドプロンプトで以下のコマンドを実行し、全体管理サイトのアプリケーションプールセキュリティアカウントをwssに変更する
      stsadm -o updatefarmcredentials -userlogin サーバ名\wss -password wsspass
      stsadm -o updatefarmcredentials -userlogin サーバ名\wss -password wsspass -local
    5.次のコマンドで全体管理サイトのロックを解除する
      stsadm -o setsitelock -url http://testsite:xxx -lock none
    6.全体管理サイトのアプリケーションプールセキュリティアカウントを元の状態に戻す
      stsadm -o updatefarmcredentials -identitytype NetworkService
      stsadm -o updatefarmcredentials -identitytype NetworkService -local

    前提となるのは、全体管理サイトのアプリケーションプールのセキュリティアカウントが、元々「定義済み」「Network Service」となっていたことによります。
    4と6で同じようなコマンドを2回実行していますが、ファーム内で複数のサーバを立てている場合に、1行目は全体管理サイトをホストするサイトで実行するもの、2行目はその他の全サーバで実行するもの、のようです。今回の場合は1マシンで全てを動作させる基本インストールでしたので、2行目は不要なのかもしれませんが念のため行いました。

    なお、アプリケーションプールのセキュリティアカウントはIISの設定画面で変更できますが、WSSに関係することなのでstsadmから実行しないといけないようです。

    グモサさんにアドバイスいただいた、SQLManagerでデータベースを直接操作することも試してみました。今回はデータベースがインターナルであるためSQLManagerが付属せず、フリーのSQL Manager 2005 for SQL Server Liteをダウンロードして中身をのぞいてみました。ご指摘のBitFlagsフィールドは見つかったのですが、値は0でした。また、値の変更もできそうにありませんでした。最初、データベースを直接さわる方が直感的で安心して操作できると感じていましたので、少々残念です。

    • 回答としてマーク 服部清次 2009年4月7日 0:48
    2009年3月31日 4:21
  • f-shige さん、

    こんにちは!
    フォーラム オペレーターの服部 清次です。
    無事、サイトのロックを解除できたとのことで何よりです! (^^)

    今回、英語版 TechNet フォーラムの情報を紹介してくださった、kenkenzi さんの回答が役に立ったようですので、私の方で [回答としてマーク] のチェックを付けさせていただきました。
    また、今回は直接問題解決にはつながりませんでしたが、参考情報を紹介してくださった グモサ さんの回答と、細かく問題解決の手順を報告してくださった f-shige さんご自身の回答も、併せて [回答としてマーク] させていただきました。

    また何か困ったことがありましたら、ぜひ TechNet フォーラムをご利用ください。
    今後ともよろしくお願いします。
    それでは、また! (^_^)/


    _____________________________________________
    マイクロソフト株式会社 フォーラム オペレーター 服部 清次

    2009年4月7日 0:59