2009-09-18 50 views
20

我意外地接管了我們TFS系統的前任管理員,他們突然離開公司。在發生這種情況之前,我已經成爲TFS的管理員和TFS應用程序服務器,但仍然至少有一件事我無法弄清楚。看起來在前一個管理員帳戶下面有一些警報設置,在每次簽入文件時都會向我們所有人發送電子郵件。我無法確切地確定這個訂閱是什麼樣的,但我猜測它是在項目的「項目警報」對話框,或者它是使用TFS Power Tools的警報編輯器設置的警報。我看不到其他用戶在這些區域設置的提醒。有沒有辦法直接編輯tbl_subscription表來直接嘗試刪除或更改這些警報? (我想我看到了SQL表中的警報,但我不想直接破解數據庫。)在TFS中編輯項目的其他用戶提醒

回答

23

歡迎來到TFS世界 - 抱歉您的洗禮將成爲火災之一。

對於直接編輯數據庫保持警惕是正確的 - 通常最好避免使用TFS。 TFS Event Subscription tool(最初製作的by this sites creator)應該能夠完成這項工作,但我認爲它可能有點過時,可以用一些愛做。上次我嘗試過它不適合我 - 但我認爲它可能從那時起就已經更新了。

如果該工具不適合您,那麼這是一個您可以直接使用Web服務(這是該工具在底層實現的功能)的實例。

CAVEAT - 這是與「在我的機器上工作」保證測試。但是,如果您刪除了錯誤的訂閱,那麼您可能會搞砸TFS實例。因此採取備份和謹慎行事......

首先:

登錄到TFS機作爲TFS管理員用戶(TFSSETUP)通過遠程桌面,然後瀏覽到在Internet Explorer的地址如下:

http://localhost:8080/Services/V1.0/EventService.asmx 

這些是Event Service Web服務方法。你想看看第一個是EventSubscriptions方法: -

http://localhost:8080/Services/V1.0/EventService.asmx?op=EventSubscriptions 

在用戶ID字段中輸入一個星號(*),然後按調用。

然後,這將返回TFS中所有事件訂閱的大名單 - 包括允許部分TFS與其他部分進行對話的訂閱。如果向下滾動,您會發現您的電子郵件訂閱。記下要刪除的ID的ID。

然後去退訂方式:

http://localhost:8080/Services/V1.0/EventService.asmx?op=UnsubscribeEvent

輸入您要刪除,然後按調用通知的ID。重複所有您想要移除的事件。

一旦你刪除那些你不想讓你可以使用電動工具等

希望幫助創建不同的 - 好運氣。

Martin。

請注意,沒有得到任何友好的撤消提示或任何東西,因爲這是相當低級的hackery。因此,在執行此操作之前,您需要備份等。

+0

我不知道我將能夠確定tfssetup密碼。我是機器上的管理員。如果我無法確定密碼,是否有安全的方法來設置密碼? – BlueMonkMN 2009-09-21 12:36:24

+0

EventSubscriptionTool似乎足夠好,至少可以刪除訂閱。 – BlueMonkMN 2009-09-21 13:50:06

+5

對於2010,請嘗試http:// localhost:8080/tfs/DefaultCollection/Services/V1.0/EventService.asmx等 – 2011-06-10 03:45:06

1

我會非常謹慎地直接編輯表;請參閱this thread中的警告和建議。 (我沒有嘗試過他們推薦的應用程序,因此請採取適當的預防措施/備份。)

0

我與馬丁對此表示贊同不能直接編輯數據庫,但此查詢可能與他的第一個步驟的幫助(查找您想要取消訂閱事件的id):

SELECT 
ES.Id, 
U.display_name, 
ES.* 
    FROM [Tfs_iSystems].[dbo].[tbl_EventSubscription] ES 
INNER JOIN [Tfs_Configuration].dbo.tbl_security_identity_cache U 
ON ES.SubscriberId = U.tf_id 

我發現使用由web服務產生的XML繁瑣的工作。 一旦你有你需要我會通過使用WebService建議退訂的Id:

http://localhost:8080/tfs/DefaultCollection/Services/V1.0/EventService.asmx?op=UnsubscribeEvent

注意這是TFS2010

10

我很高興地說,在TFS的當前版本在Visual Studio Team Services中,管理員可以使用Team Web Access管理其他用戶的警報。謝天謝地,這應該是過去令人沮喪的場景。

我對這個主題在這裏寫了一個博客帖子提供一些更多的信息:http://www.edsquared.com/2012/02/09/Creating+EMail+Alerts+For+Team+Members+In+TFS.aspx

enter image description here

+0

看起來不錯!備受期待的功能 – KMoraz 2012-02-09 23:06:34

+1

這就是要走的路! – fmuecke 2014-12-19 07:47:09

+1

同時它是當前的TFS版本。這應該是被接受的答案,或者應該至少有更多的讚揚 – CodingYourLife 2017-02-22 10:34:17

0

我不知道到底是什麼,我還沒有在這裏做什麼,但我只是有一個小的勝利並能得到的頁面上來,但我不得不改變路徑,以這樣的:

的「http://本地主機:8080/TFS/_tfs_resources /服務/ 1.0/EventService.asmx」

0

這對我有用在TFS 2010上。基本上有一個存儲過程刪除TFS數據庫中的訂閱。

  1. 連接到TFS機
  2. 運行SSMS
  3. 選擇本地機器的機器連接。
  4. 在對象資源管理器中,查找名爲tfs_yourprojectname的數據庫。
  5. 查找表命名tbl_EventSubscription並點擊右鍵=>在訂閱列表中選擇頂1000
  6. 查找並決定要刪除
  7. 尋找在對象命名prc_UnsubscribeEvent存儲過程中的一個的ID瀏覽器,右鍵單擊並選擇「執行存儲過程」。輸入事件訂閱表中的id列的值,以獲取要刪除的警報。
相關問題