UPDATE: Os arquivos mencionados nesse artigo foram movidos para o GitHub. Os links atualizados estão no fim do post.
Recentemente precisei criar um relatório de administradores locais em computadores gerenciados pelo SCCM. Como isso não é suportado naivamente pelo SCCM, foi necessário fazer duas coisas:
Inventariar os administradores locais com o SCCM.
Criar os relatórios que utilizarão a informação coletada
Existem algumas formas de publicar uma aplicação Web no Citrix XenApp.
A mais simples, talvez, é utilizar o modo “Kyosk” do Internet Explorer. Para isso basta utiilizar o parâmetro “-k” ao chamar o aplicativo. A configuração da aplicação no Citrix Studio deveria ficar mais ou menos assim:
O problema do modo Kyosk é que o IE é iniciado em tela cheia e sem o botão “Fechar”. Isso pode confundir o usuário e prejudicar a sua experiência de uso.
Outra forma de fazer isso é utilizar um script que instancia o Internet Explorer desabilitando alguns componentes (tais como a barra de endereços, botões de navegação, complementos e etc). Aqui nesse post, há um exemplo de um VB Script bem simples que dá conta do recado, e que reproduzo abaixo:
No entanto, a minha solução preferida foi a desse outro Blog. O VB Script publicado aqui é bem mais robusto e reutilizável. Nesse caso, basta chamar o script e passar como parâmetro a URL da aplicação Web.
Set objArgs = WScript.Arguments
If objArgs.Count = 0 Then
WScript.Echo "No URL provided, please supply a URL to open" & VbCrLf & VbCrLf & "e.g. CScript OpenURL.vbs http://www.google.com"
wscript.quit
End If
Set objIE = CreateObject("InternetExplorer.Application")
With CreateObject("internetexplorer.application")
.navigate "about:blank"
With .document.parentWindow.screen
iHeight = .height
iWidth = .width
End With
End With
objIE.StatusBar = False
objIE.Visible = True
objIE.AddressBar = False
objIE.MenuBar = False
objIE.ToolBar = False
objIE.Top = 0
objIE.Left = 0 + 8 'Move to the side just a bit to show the desktop
objIE.Width = iWidth - 16 'Shrink to let a bit of the desktop show on the sides
objIE.Height = iHeight - 28 'Shrink a bit to see the taskbar
objIE.Navigate (objArgs(0))
A publicação de uma aplicação Web no XenDesktop utilizando essa ferramenta ficaria mais ou menos assim:
SQL query to list all computers with client status “Inactive” in a specific collection. Just copy it and run on a SQL Management Studio:
Begin
Declare @CollID as varchar(20) = '<collection ID>'
SELECT DISTINCT
v_R_System.Name0 as 'Hostname',
v_R_System.Resource_Domain_OR_Workgr0 as 'Domain or Workgroup',
v_R_System.User_Name0 as'Last User Logged On',
v_R_System.Last_Logon_Timestamp0 AS 'Last Logon',
CASE v_R_System.Client0 WHEN 1 THEN 'Installed' END AS 'Client',
CASE v_CH_ClientSummary.ClientActiveStatus WHEN 0 THEN 'Inactive' END AS 'Status'
FROM
v_R_System
inner join v_CH_ClientSummary on v_CH_ClientSummary.ResourceID = v_R_System.ResourceID
inner join CollectionMembers on CollectionMembers.MachineID = v_R_System.ResourceID
where
v_CH_ClientSummary.ClientActiveStatus = 0 and
CollectionMembers.SiteID like @CollID
order by 'hostname'
End