Last active
November 13, 2024 11:52
-
-
Save Geofferey/2fb15221ee916eb6a58c2b56697fea49 to your computer and use it in GitHub Desktop.
TailScale Login - Group Policy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html dir="ltr" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" gpmc_reportInitialized="false"> | |
<head> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-16" /> | |
<title>TailScale Login</title> | |
<!-- Styles --> | |
<style type="text/css"> | |
body { background-color:#FFFFFF; border:1px solid #666666; color:#000000; font-size:68%; font-family:MS Shell Dlg; margin:0,0,10px,0; word-break:normal; word-wrap:break-word; } | |
table { font-size:100%; table-layout:fixed; width:100%; } | |
td,th { overflow:visible; text-align:left; vertical-align:top; white-space:normal; } | |
.title { background:#FFFFFF; border:none; color:#333333; display:inline-table; height:24px; margin:0px,0px,0px,0px; padding-top:0px; position:relative; table-layout:fixed; z-index:5; } | |
.he0_expanded { background-color:#FEF7D6; border:1px solid #BBBBBB; color:#3333CC; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-left:8px; padding-right:5em; padding-top:4px; position:relative; } | |
.he1_expanded { background-color:#A0BACB; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:20px; margin-right:0px; padding-left:8px; padding-right:5em; padding-top:4px; position:relative; } | |
.he0h_expanded { background-color: #FEF0D0; border: 1px solid #BBBBBB; color: #000000; cursor: hand; display: block; font-family: MS Shell Dlg; font-size: 100%; font-weight: bold; height: 2.25em; margin-bottom: -1px; margin-left: 5px; margin-right: 0px; padding-left: 8px; padding-right: 5em; padding-top: 4px; position: relative; } | |
.he1h_expanded { background-color: #7197B3; border: 1px solid #BBBBBB; color: #000000; cursor: hand; display: block; font-family: MS Shell Dlg; font-size: 100%; font-weight: bold; height: 2.25em; margin-bottom: -1px; margin-left: 10px; margin-right: 0px; padding-left: 8px; padding-right: 5em; padding-top: 4px; position: relative; } | |
.he1 { background-color:#A0BACB; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:20px; margin-right:0px; padding-left:8px; padding-right:5em; padding-top:4px; position:relative; } | |
.he2 { background-color:#C0D2DE; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:30px; margin-right:0px; padding-left:8px; padding-right:5em; padding-top:4px; position:relative; } | |
.he3 { background-color:#D9E3EA; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:40px; margin-right:0px; padding-left:11px; padding-right:5em; padding-top:4px; position:relative; } | |
.he4 { background-color:#E8E8E8; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:50px; margin-right:0px; padding-left:11px; padding-right:5em; padding-top:4px; position:relative; } | |
.he4h { background-color:#E8E8E8; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:55px; margin-right:0px; padding-left:11px; padding-right:5em; padding-top:4px; position:relative; } | |
.he4i { background-color:#F9F9F9; border:1px solid #BBBBBB; color:#000000; display:block; font-family:MS Shell Dlg; font-size:100%; margin-bottom:-1px; margin-left:55px; margin-right:0px; padding-bottom:5px; padding-left:21px; padding-top:4px; position:relative; } | |
.he2i { background-color:#F9F9F9; border:1px solid #BBBBBB; color:#000000; display:block; font-family:MS Shell Dlg; font-size:100%; margin-bottom:-1px; margin-left:35px; margin-right:0px; padding-bottom:5px; padding-left:21px; padding-top:4px; position:relative;} | |
.he5 { background-color:#E8E8E8; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:60px; margin-right:0px; padding-left:11px; padding-right:5em; padding-top:4px; position:relative; } | |
.he5h { background-color:#E8E8E8; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; padding-left:11px; padding-right:5em; padding-top:4px; margin-bottom:-1px; margin-left:65px; margin-right:0px; position:relative; } | |
.he5i { background-color:#F9F9F9; border:1px solid #BBBBBB; color:#000000; display:block; font-family:MS Shell Dlg; font-size:100%; margin-bottom:-1px; margin-left:65px; margin-right:0px; padding-left:21px; padding-bottom:5px; padding-top: 4px; position:relative; } | |
div .expando { color:#000000; text-decoration:none; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:normal; position:absolute; right:10px; text-decoration:underline; z-index: 0; } | |
.he0 .expando { font-size:100%; } | |
.info, .info3, .info4, .disalign { line-height:1.6em; padding:0px,0px,0px,0px; margin:0px,0px,0px,0px; } | |
.disalign TD { padding-bottom:5px; padding-right:10px; } | |
.info TD { padding-right:10px; width:50%; } | |
.info3 TD { padding-right:10px; width:33%; } | |
.info4 TD, .info4 TH { padding-right:10px; width:25%; } | |
.info TH, .info3 TH, .info4 TH, .disalign TH { border-bottom:1px solid #CCCCCC; padding-right:10px; } | |
.subtable, .subtable3 { border:1px solid #CCCCCC; margin-left:0px; background:#FFFFFF; margin-bottom:10px; } | |
.subtable TD, .subtable3 TD { padding-left:10px; padding-right:5px; padding-top:3px; padding-bottom:3px; line-height:1.1em; } | |
.subtable TH, .subtable3 TH { border-bottom:1px solid #CCCCCC; font-weight:normal; padding-left:10px; line-height:1.6em; } | |
.subtable .footnote { border-top:1px solid #CCCCCC; } | |
.subtable3 .footnote, .subtable .footnote { border-top:1px solid #CCCCCC; } | |
.subtable_frame { background:#D9E3EA; border:1px solid #CCCCCC; margin-bottom:10px; margin-left:15px; } | |
.subtable_frame TD { line-height:1.1em; padding-bottom:3px; padding-left:10px; padding-right:15px; padding-top:3px; } | |
.subtable_frame TH { border-bottom:1px solid #CCCCCC; font-weight:normal; padding-left:10px; line-height:1.6em; } | |
.subtableInnerHead { border-bottom:1px solid #CCCCCC; border-top:1px solid #CCCCCC; } | |
.explainlink { color:#0000FF; text-decoration:none; cursor:hand; } | |
.explainlink:hover { color:#0000FF; text-decoration:underline; } | |
.spacer { background:transparent; border:1px solid #BBBBBB; color:#FFFFFF; display:block; font-family:MS Shell Dlg; font-size:100%; height:10px; margin-bottom:-1px; margin-left:43px; margin-right:0px; padding-top: 4px; position:relative; } | |
.filler { background:transparent; border:none; color:#FFFFFF; display:block; font:100% MS Shell Dlg; line-height:8px; margin-bottom:-1px; margin-left:53px; margin-right:0px; padding-top:4px; position:relative; } | |
.container { display:block; position:relative; } | |
.rsopheader { background-color:#A0BACB; border-bottom:1px solid black; color:#333333; font-family:MS Shell Dlg; font-size:130%; font-weight:bold; padding-bottom:5px; text-align:center; } | |
.rsopname { color:#333333; font-family:MS Shell Dlg; font-size:130%; font-weight:bold; padding-left:11px; } | |
.gponame{ color:#333333; font-family:MS Shell Dlg; font-size:130%; font-weight:bold; padding-left:11px; } | |
.gpotype{ color:#333333; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; padding-left:11px; } | |
#uri { color:#333333; font-family:MS Shell Dlg; font-size:100%; padding-left:11px; } | |
#dtstamp{ color:#333333; font-family:MS Shell Dlg; font-size:100%; padding-left:11px; text-align:left; width:30%; } | |
#objshowhide { color:#000000; cursor:hand; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; margin-right:0px; padding-right:10px; text-align:right; text-decoration:underline; z-index:2; word-wrap:normal; } | |
#gposummary { display:block; } | |
#gpoinformation { display:block; } | |
@media print { | |
#objshowhide{ display:none; } | |
body { color:#000000; border:1px solid #000000; } | |
.title { color:#000000; border:1px solid #000000; } | |
.he0_expanded { color:#000000; border:1px solid #000000; } | |
.he1h_expanded { color:#000000; border:1px solid #000000; } | |
.he1_expanded { color:#000000; border:1px solid #000000; } | |
.he1 { color:#000000; border:1px solid #000000; } | |
.he2 { color:#000000; background:#EEEEEE; border:1px solid #000000; } | |
.he3 { color:#000000; border:1px solid #000000; } | |
.he4 { color:#000000; border:1px solid #000000; } | |
.he4h { color:#000000; border:1px solid #000000; } | |
.he4i { color:#000000; border:1px solid #000000; } | |
.he5 { color:#000000; border:1px solid #000000; } | |
.he5h { color:#000000; border:1px solid #000000; } | |
.he5i { color:#000000; border:1px solid #000000; } | |
} | |
</style> | |
<!-- Scripts --> | |
<script type="text/javascript" language="javascript"> | |
/* | |
String "strShowHide(0/1)" | |
0 = Hide all mode. | |
1 = Show all mode. | |
*/ | |
var windowsArray = new Array(); | |
var strShowHide = 1; | |
//Localized strings | |
var strShow = "show"; | |
var strHide = "hide"; | |
var strShowAll = "show all"; | |
var strHideAll = "hide all"; | |
var strShown = "shown"; | |
var strHidden = "hidden"; | |
var strExpandoNumPixelsFromEdge = "10px"; | |
function IsSectionHeader(obj) { | |
return (obj.className === "he0_expanded") || (obj.className === "he0h_expanded") || (obj.className === "he1h_expanded") || (obj.className === "he1_expanded") || (obj.className === "he1") || (obj.className === "he2") || (obj.className === "he3") || (obj.className === "he4") || (obj.className === "he4h") || (obj.className === "he5") || (obj.className === "he5h"); | |
} | |
function IsSectionExpandedByDefault(objHeader) { | |
if (objHeader === null) { | |
return false; | |
} else { | |
return (objHeader.className.slice(objHeader.className.lastIndexOf("_")) === "_expanded"); | |
} | |
} | |
function SetSectionState(objHeader, strState) { | |
var i = 0; | |
var j; | |
var all = objHeader.parentElement.ownerDocument.all; | |
if (all === null) { | |
return; | |
} | |
for (j = 0; j < all.length; j++) { | |
if (all[j] === objHeader) { | |
break; | |
} | |
i = i + 1; | |
} | |
for (j = i; j < all.length; j++) { | |
if (all[i].className === "container") { | |
break; | |
} | |
i = i + 1; | |
} | |
var objContainer = all[i]; | |
if (strState === "toggle") { | |
if (objContainer.style.display === "none") { | |
SetSectionState(objHeader, "show"); | |
} | |
else { | |
SetSectionState(objHeader, "hide"); | |
} | |
} | |
else { | |
var objExpando = objHeader.children[1]; | |
if (strState === "show") { | |
objContainer.style.display = "block"; | |
objExpando.innerText = strHide; | |
} | |
else if (strState === "hide") { | |
objContainer.style.display = "none"; | |
objExpando.innerText = strShow; | |
} | |
} | |
} | |
function ShowSection(objHeader) { | |
SetSectionState(objHeader, "show"); | |
} | |
function HideSection(objHeader) { | |
SetSectionState(objHeader, "hide"); | |
} | |
function ToggleSection(objHeader) { | |
SetSectionState(objHeader, "toggle"); | |
} | |
/*================================================================================ | |
' link at the top of the page to collapse/expand all collapsable elements | |
'================================================================================ | |
*/ | |
function objshowhide_onClick() { | |
var obji; | |
var objBody = document.body.getElementsByTagName("*"); | |
if (objBody === null) { | |
return; | |
} | |
switch (strShowHide) { | |
case 0: | |
strShowHide = 1; | |
window.objshowhide.innerText = strShowAll; | |
for (obji = 0; obji < objBody.length; obji++) { | |
if (objBody[obji].className !== 'undefined' && IsSectionHeader(objBody[obji])) { | |
HideSection(objBody[obji]); | |
} | |
} | |
break; | |
case 1: | |
strShowHide = 0; | |
window.objshowhide.innerText = strHideAll; | |
for (obji = 0; obji < objBody.length; obji++) { | |
if (objBody[obji].className !== 'undefined' && IsSectionHeader(objBody[obji])) { | |
ShowSection(objBody[obji]); | |
} | |
} | |
break; | |
} | |
} | |
/*================================================================================ | |
' onload collapse all except the first two levels of headers (he0, he1) | |
'================================================================================*/ | |
function window_onload() { | |
// Only initialize once. The UI may reinsert a report into the webbrowser control, | |
// firing onLoad multiple times. | |
if (document.documentElement.getAttribute("gpmc_reportInitialized").toUpperCase() !== "TRUE") { | |
// Set text direction | |
fDetDir(document.dir.toUpperCase()); | |
// Initialize sections to default expanded/collapsed state. | |
var objBody = document.body.getElementsByTagName("*"); | |
if (objBody === null) { | |
return; | |
} | |
for (var obji = 0; obji < objBody.length; obji++) { | |
if (IsSectionHeader(objBody[obji])) { | |
if (IsSectionExpandedByDefault(objBody[obji])) { | |
ShowSection(objBody[obji]); | |
} | |
else { | |
HideSection(objBody[obji]); | |
} | |
} | |
} | |
objshowhide.innerText = strShowAll; | |
document.documentElement.setAttribute("gpmc_reportInitialized", "true"); | |
} | |
} | |
/*'================================================================================ | |
' When direction (LTR/RTL) changes, change adjust for readability | |
'================================================================================ | |
*/ | |
function document_onPropertyChange() { | |
if (window.event.propertyName === "dir") { | |
fDetDir(document.dir.toUpperCase()); | |
} | |
} | |
function fDetDir(strDir) { | |
var colRules; | |
var nug; | |
var i; | |
var strClass; | |
switch (strDir.toUpperCase()) { | |
case "LTR": | |
colRules = document.styleSheets[0].cssRules; | |
if (colRules !== null && colRules !== undefined ) { | |
for (i = 0; i < colRules.length - 1; i++) { | |
nug = colRules[i]; | |
strClass = nug.selectorText; | |
if (nug.style.textAlign === "right") { | |
nug.style.textAlign = "left"; | |
} | |
switch (strClass) { | |
case "div .expando": | |
nug.style.Left = ""; | |
nug.style.Right = strExpandoNumPixelsFromEdge; | |
break; | |
case "#objshowhide": | |
nug.style.textAlign = "right"; | |
break; | |
} | |
} | |
} | |
break; | |
case "RTL": | |
colRules = document.styleSheets[0].cssRules; | |
if (colRules !== null && colRules !== undefined ) { | |
for (i = 0; i < colRules.length - 1; i++) { | |
nug = colRules[i]; | |
strClass = nug.selectorText; | |
if (nug.style.textAlign === "left") { | |
nug.style.textAlign = "right"; | |
} | |
switch (strClass) { | |
case "div .expando": | |
nug.style.Left = strExpandoNumPixelsFromEdge; | |
nug.style.Right = ""; | |
break; | |
case "#objshowhide": | |
nug.style.textAlign = "left"; | |
break; | |
} | |
} | |
} | |
break; | |
} | |
} | |
/*'================================================================================ | |
'When printing reports, if a given section is expanded, let's says "shown" (instead of "hide" in the UI). | |
'================================================================================ | |
*/ | |
function window_onbeforeprint() { | |
var obji; | |
for (obji in document.all) { | |
if (document.all.hasOwnProperty(obji)) { | |
if (obji.className === "expando") { | |
if (obji.innerText === strHide) { | |
obji.innerText = strShown; | |
} | |
if (obji.innerText === strShow) { | |
obji.innerText = strHidden; | |
} | |
} | |
} | |
} | |
} | |
/*================================================================================ | |
'If a section is collapsed, change to "hidden" in the printout (instead of "show"). | |
'================================================================================ | |
*/ | |
function window_onafterprint() { | |
var obji; | |
for (obji in document.all) { | |
if (document.all.hasOwnProperty(obji)) { | |
if (obji.className === "expando") { | |
if (obji.innerText === strShown) { | |
obji.innerText = strHide; | |
} | |
if (obji.innerText === strHidden) { | |
obji.innerText = strShow; | |
} | |
} | |
} | |
} | |
} | |
/*================================================================================ | |
' Adding keypress support for accessibility | |
'================================================================================ | |
*/ | |
function document_onkeypress(event) { | |
var chCode = ('charCode' in event) ? event.charCode : event.keyCode; | |
//space bar (32) or carriage return (13) or line feed (10) | |
if (chCode == "32" || chCode == "13" || chCode == "10") { | |
if (event.srcElement.className === "expando") { | |
document_onclick(); | |
event.returnValue = false; | |
} | |
if (event.srcElement.className === "sectionTitle") { | |
document_onclick(); | |
event.returnValue = false; | |
} | |
if (event.srcElement.id === "objshowhide") { | |
objshowhide_onClick(); | |
event.returnValue = false; | |
} | |
} | |
} | |
/*================================================================================ | |
' When user clicks anywhere in the document body, determine if user is clicking | |
' on a header element. | |
'================================================================================ | |
*/ | |
function document_onclick() { | |
var strsrc = window.event.srcElement; | |
while (strsrc.className === "sectionTitle" || strsrc.className === "expando") { | |
strsrc = strsrc.parentElement; | |
} | |
// Only handle clicks on headers. | |
if (!IsSectionHeader(strsrc)) { | |
return; | |
} | |
ToggleSection(strsrc); | |
window.event.returnValue = false; | |
} | |
function ToggleState(e) { | |
var objParentDisplayItem; | |
var objDisplayItem; | |
var i; | |
if (e.innerText === strShow) { | |
e.innerText = strHide; | |
objParentDisplayItem = e.parentNode; | |
objDisplayItem = objParentDisplayItem.childNodes; | |
for (i = 0; i < objDisplayItem.length; i++) { | |
if (objDisplayItem[i].id === "showItem") { | |
objDisplayItem[i].style.display = "Block"; | |
} | |
} | |
} | |
else { | |
e.innerText = strShow; | |
objParentDisplayItem = e.parentNode; | |
objDisplayItem = objParentDisplayItem.childNodes; | |
for (i = 0; i < objDisplayItem.length; i++) { | |
if (objDisplayItem[i].id === "showItem") { | |
objDisplayItem[i].style.display = "None"; | |
} | |
} | |
} | |
} | |
function traverseToURL(url) { | |
if (url != null) { | |
var urlInitialSubstr = url.substring(0, 4).toLowerCase(); | |
if (urlInitialSubstr === "http") { | |
window.open(url, "_blank"); | |
} | |
} | |
} | |
function getExplainWindowTitle() { | |
return document.getElementById("explainText_windowTitle").innerHTML; | |
} | |
function getExplainWindowStyles() { | |
return document.getElementById("explainText_windowStyles").innerHTML; | |
} | |
function getExplainWindowSettingPathLabel() { | |
return document.getElementById("explainText_settingPathLabel").innerHTML; | |
} | |
function getExplainWindowExplainTextLabel() { | |
return document.getElementById("explainText_explainTextLabel").innerHTML; | |
} | |
function getExplainWindowPrintButton() { | |
return document.getElementById("explainText_printButton").innerHTML; | |
} | |
function getExplainWindowCloseButton() { | |
return document.getElementById("explainText_closeButton").innerHTML; | |
} | |
function getNoExplainTextAvailable() { | |
return document.getElementById("explainText_noExplainTextAvailable").innerHTML; | |
} | |
function getExplainWindowSupportedLabel() { | |
return document.getElementById("explainText_supportedLabel").innerHTML; | |
} | |
function getNoSupportedTextAvailable() { | |
return document.getElementById("explainText_noSupportedTextAvailable").innerHTML; | |
} | |
function showExplainText(srcElement) | |
{ | |
var strDiagArgs; | |
var strSettingName = srcElement.getAttribute("gpmc_settingName"); | |
var strSettingPath = srcElement.getAttribute("gpmc_settingPath"); | |
var strSettingDescription = srcElement.getAttribute("gpmc_settingDescription"); | |
if (strSettingDescription === "") | |
{ | |
strSettingDescription = getNoExplainTextAvailable(); | |
} | |
var strSupported = srcElement.getAttribute("gpmc_supported"); | |
if (strSupported === "") | |
{ | |
strSupported = getNoSupportedTextAvailable(); | |
} | |
var strHtml = "<html dir=" + document.dir + ">\n"; | |
strHtml += "<head>\n"; | |
strHtml += "<title>" + getExplainWindowTitle() + "</title>\n"; | |
strHtml += "<style type='text/css'>\n" + getExplainWindowStyles() + "</style>\n"; | |
strHtml += "</head>\n"; | |
strHtml += "<body>\n"; | |
strHtml += "<div class='head'>" + strSettingName +"</div>\n"; | |
strHtml += "<div class='path'><b>" + getExplainWindowSettingPathLabel() + "</b><br/>" + strSettingPath +"</div>\n"; | |
strHtml += "<div class='path'><b>" + getExplainWindowSupportedLabel() + "</b><br/>" + strSupported +"</div>\n"; | |
strHtml += "<div class='info'>\n"; | |
strHtml += "<div class='hdr'>" + getExplainWindowExplainTextLabel() + "</div>\n"; | |
strHtml += "<div class='bdy'>" + strSettingDescription + "</div>\n"; | |
strHtml += "<div class='btn'>"; | |
strHtml += getExplainWindowPrintButton(); | |
strHtml += getExplainWindowCloseButton(); | |
strHtml += "</div></body></html>"; | |
// IE specific method for showing the popup. | |
if(navigator.userAgent.indexOf("MSIE") > 0 && window.location.toString().indexOf("file:") === -1) | |
{ | |
strDiagArgs = "dialogHeight=360px;dialogWidth=630px;status=no;scroll=yes;resizable=yes;minimize=yes;maximize=yes;"; | |
var vModeless = window.showModelessDialog("about:blank", window, strDiagArgs); | |
vModeless.document.write(strHtml); | |
vModeless.document.close(); | |
vModeless.location.reload(false); | |
window.event.returnValue = false; | |
} | |
else | |
{ | |
strDiagArgs = "height=360px, width=630px, status=no, toolbar=no, scrollbars=yes, resizable=yes "; | |
var expWin = window.open("", "expWin", strDiagArgs); | |
expWin.document.write(""); | |
expWin.document.close(); | |
expWin.document.write(strHtml); | |
expWin.document.close(); | |
expWin.focus(); | |
} | |
return false; | |
} | |
function showEvents(srcElement,bVerbose,bInformational,bWarning,bError) | |
{ | |
var strWindowId = "EventDetails_" + srcElement.getAttribute("eventLogActivityId"); | |
if((windowsArray[strWindowId]) && (windowsArray[strWindowId].closed === false)) { | |
windowsArray[strWindowId].focus(); | |
} else { | |
var eventIdLabelNode, eventTimeLabelNode, eventDescriptionLabelNode, eventDetailsLabelNode, eventXmlLabelNode, gpEventsTitleNode; | |
var eventIdLabelNodeText, eventTimeLabelNodeText, eventDescriptionLabelNodeText, eventXmlLabelNodeText, gpEventsTitleNodeText, eventDetailsLabelNodeText; | |
var singlePassEventsDetailsNode, eventRecordArray; | |
var dataNotFoundWarningLabelNode, dataNotFoundWarningLabelNodeText; | |
var mainSection; | |
var attributeValue; | |
var singlePassEventsDetails; | |
var singlePassEventsDetailsChildren; | |
var node; | |
var children; | |
var xmlDocumentRoot; | |
var xmlDocument; | |
var serializer; | |
var itemSub; | |
var doc; | |
if (window.XMLSerializer) | |
{ | |
serializer = new XMLSerializer(); | |
} | |
if (window.DOMParser) | |
{ | |
// This browser appears to support DOMParser | |
parser = new DOMParser(); | |
doc = document.getElementById("data-island").textContent; | |
xmlDocumentRoot = parser.parseFromString(doc, "application/xml"); | |
xmlDocument = xmlDocumentRoot.documentElement; | |
itemSub = 1; | |
} | |
else | |
{ | |
// Internet Explorer, create a new XML document using ActiveX | |
// and use loadXML as a DOM parser. | |
try | |
{ | |
doc = document.getElementById("data-island"); | |
xmlDocumentRoot = new ActiveXObject("Msxml2.DOMDocument.6.0"); | |
xmlDocumentRoot.async = false; | |
xmlDocumentRoot.loadXML(doc.innerHTML); | |
xmlDocument = xmlDocumentRoot.documentElement; | |
itemSub = 0; | |
} | |
catch(e) | |
{ | |
// Not supported. | |
} | |
} | |
if (xmlDocument != null) { | |
mainSection = xmlDocument.getElementsByTagName("MainSection")[0].childNodes; | |
if (mainSection != null) { | |
for (children = 0; children < mainSection.length; children++) { | |
node = mainSection[children]; | |
if (node.nodeType === 1 && node.nodeName === 'Label') { | |
attributeValue = node.getAttribute("Name"); | |
if (attributeValue != null) { | |
if (attributeValue === 'ComponentStatus_EventId') { | |
eventIdLabelNode = node.childNodes[1]; | |
} | |
if (attributeValue === 'ComponentStatus_EventTime') { | |
eventTimeLabelNode = node.childNodes[1]; | |
} | |
if (attributeValue === 'ComponentStatus_EventDescription') { | |
eventDescriptionLabelNode = node.childNodes[1]; | |
} | |
if (attributeValue === 'ComponentStatus_EventXml') { | |
eventXmlLabelNode = node.childNodes[1]; | |
} | |
if (attributeValue === 'ComponentStatus_EventDetails') { | |
eventDetailsLabelNode = node.childNodes[1]; | |
} | |
if (attributeValue === 'ComponentStatus_GPEvents') { | |
gpEventsTitleNode = node.childNodes[1]; | |
} | |
if (attributeValue === 'Warning_DataNotFound') { | |
dataNotFoundWarningLabelNode = node.childNodes[1]; | |
} | |
} | |
} | |
} | |
} | |
singlePassEventsDetails = xmlDocument.getElementsByTagName("SinglePassEventsDetails"); | |
if (singlePassEventsDetails != null) { | |
for (singlePassEventsDetailsChildren = 0; singlePassEventsDetailsChildren < singlePassEventsDetails.length; singlePassEventsDetailsChildren++) { | |
node = singlePassEventsDetails[singlePassEventsDetailsChildren]; | |
attributeValue = node.getAttribute("ActivityId"); | |
if (attributeValue === srcElement.getAttribute("eventLogActivityId")) { | |
singlePassEventsDetailsNode = node; | |
} | |
} | |
} | |
} | |
eventIdLabelNodeText = null; | |
if (eventIdLabelNode != null) { | |
if (eventIdLabelNode.childNodes.length > 0) { | |
eventIdLabelNodeText = eventIdLabelNode.childNodes[0].nodeValue; | |
} | |
} | |
if (eventIdLabelNodeText == null) { | |
eventIdLabelNodeText = "Event ID"; | |
} | |
eventTimeLabelNodeText = null; | |
if (eventTimeLabelNode != null) { | |
if (eventTimeLabelNode.firstChild.childNodes.length > 0) { | |
eventTimeLabelNodeText = eventTimeLabelNode.childNodes[0].nodeValue; | |
} | |
} | |
if (eventTimeLabelNodeText == null) { | |
eventTimeLabelNodeText = "Event Time"; | |
} | |
eventDescriptionLabelNodeText = null; | |
if (eventDescriptionLabelNode != null) { | |
if (eventDescriptionLabelNode.childNodes.length > 0) { | |
eventDescriptionLabelNodeText = eventDescriptionLabelNode.childNodes[0].nodeValue; | |
} | |
} | |
if (eventDescriptionLabelNodeText == null) { | |
eventDescriptionLabelNodeText = "Event Description"; | |
} | |
eventXmlLabelNodeText = null; | |
if (eventXmlLabelNode != null) { | |
if (eventXmlLabelNode.childNodes.length > 0) { | |
eventXmlLabelNodeText = eventXmlLabelNode.childNodes[0].nodeValue; | |
} | |
} | |
if (eventXmlLabelNodeText == null) { | |
eventXmlLabelNodeText = "Event XML"; | |
} | |
gpEventsTitleNodeText = null; | |
if (gpEventsTitleNode != null) { | |
if (gpEventsTitleNode.childNodes.length > 0) { | |
gpEventsTitleNodeText = gpEventsTitleNode.childNodes[0].nodeValue; | |
} | |
} | |
if (gpEventsTitleNodeText == null) { | |
gpEventsTitleNodeText = "Group Policy Events"; | |
} | |
eventDetailsLabelNodeText = null; | |
if (eventDetailsLabelNode != null) { | |
if (eventDetailsLabelNode.childNodes.length > 0) { | |
eventDetailsLabelNodeText = eventDetailsLabelNode.childNodes[0].nodeValue; | |
} | |
} | |
if (eventDetailsLabelNodeText == null) { | |
eventDetailsLabelNodeText = "Event Details"; | |
} | |
dataNotFoundWarningLabelNodeText = null; | |
if (dataNotFoundWarningLabelNode != null) { | |
if (dataNotFoundWarningLabelNode.childNodes.length > 0) { | |
dataNotFoundWarningLabelNodeText = dataNotFoundWarningLabelNode.childNodes[0].nodeValue; | |
} | |
} | |
if (dataNotFoundWarningLabelNodeText == null) { | |
dataNotFoundWarningLabelNodeText = "Data Not Found"; | |
} | |
if(singlePassEventsDetailsNode != null) | |
{ | |
eventRecordArray = singlePassEventsDetailsNode.getElementsByTagName("EventRecord"); | |
} | |
var htmlText = "<html dir=" + document.dir + ">"; | |
htmlText = htmlText + "<head>"; | |
htmlText = htmlText + "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />"; | |
htmlText = htmlText + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-16\" />"; | |
htmlText = htmlText + "<title>" + gpEventsTitleNodeText + "</title>"; | |
htmlText = htmlText + "</head><style type=\"text/css\">"; | |
htmlText = htmlText + "body { background-color:#FFFFFF; color:#000000; font-size:68%; font-family:MS Shell Dlg; margin:0,0,10px,0; word-break:normal; word-wrap:break-word; }"; | |
htmlText = htmlText + "table { font-size:100%; table-layout:fixed; width:100%; }"; | |
htmlText = htmlText + "td,th { overflow:visible; text-align:left; vertical-align:top; white-space:normal; }"; | |
htmlText = htmlText + ".he1 { text-align: center; vertical-align: middle; background-color:#C0D2DE; border:1px solid #BBBBBB; color:#000000; cursor:hand; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:4em; position:relative; }"; | |
htmlText = htmlText + ".centerTxt { text-align: center; }"; | |
htmlText = htmlText + ".txtFormat1 { text-align: left; vertical-align:top; white-space:pre-line; }"; | |
htmlText = htmlText + "</style>"; | |
htmlText = htmlText + "<script> function toggle(e) {"; | |
htmlText = htmlText + "if (e.style.display === \"none\"){ e.style.display = \"\"; }"; | |
htmlText = htmlText + "else { e.style.display = \"none\"; }"; | |
htmlText = htmlText + "}</"; | |
htmlText = htmlText + "script"; | |
htmlText = htmlText + ">"; | |
htmlText = htmlText + "<body><table border=1><tr>"; | |
htmlText = htmlText + "<th class=\"he1\"><strong>" + eventIdLabelNodeText + "</strong></th>"; | |
htmlText = htmlText + "<th class=\"he1\"><strong>" + eventTimeLabelNodeText + "</strong></th>"; | |
htmlText = htmlText + "<th class=\"he1\"><strong>" + eventDescriptionLabelNodeText + "</strong></th>"; | |
htmlText = htmlText + "<th class=\"he1\"><strong>" + eventDetailsLabelNodeText + "</strong></th>"; | |
htmlText = htmlText + "</tr>"; | |
var i; | |
var eventId; | |
var eventTime; | |
var eventDescription; | |
var eventXml; | |
var eventType; | |
var displayEvent; | |
var eventXmlId; | |
var displayBgColor; | |
if(eventRecordArray != null && eventRecordArray.length > 0) | |
{ | |
for (i=0; i < eventRecordArray.length; i++) | |
{ | |
displayEvent = false; | |
var eventIdElements = eventRecordArray[i].getElementsByTagName("EventId"); | |
if((eventIdElements != null) && (eventIdElements.length > 0) && (eventIdElements[0].firstChild != null)) | |
{ | |
eventId = eventIdElements[0].firstChild.nodeValue; | |
} | |
else | |
{ | |
eventId = dataNotFoundWarningLabelNodeText; | |
} | |
var eventTimeElements = eventRecordArray[i].getElementsByTagName("EventTime"); | |
if((eventTimeElements != null) && (eventTimeElements.length > 0) && (eventTimeElements[0].firstChild != null)) | |
{ | |
eventTime = eventTimeElements[0].firstChild.nodeValue; | |
} | |
else | |
{ | |
eventTime = dataNotFoundWarningLabelNodeText; | |
} | |
var eventDescriptionElements = eventRecordArray[i].getElementsByTagName("EventDescription"); | |
if((eventDescriptionElements != null) && (eventDescriptionElements.length > 0) && (eventDescriptionElements[0].firstChild != null)) | |
{ | |
eventDescription = eventDescriptionElements[0].firstChild.nodeValue; | |
} | |
else | |
{ | |
eventDescription = dataNotFoundWarningLabelNodeText; | |
} | |
var eventXmlElements = eventRecordArray[i].getElementsByTagName("EventXml"); | |
if((eventXmlElements != null) && (eventXmlElements.length > 0) && (eventXmlElements[0].firstChild != null)) | |
{ | |
if (window.XMLSerializer) | |
{ | |
var xml = serializer.serializeToString(eventXmlElements[0].firstChild); | |
eventXml = xml; | |
} | |
else | |
{ | |
if (typeof eventXmlElements[0].firstChild.xml != "undefined") | |
{ | |
eventXml = eventXmlElements[0].firstChild.xml; | |
} | |
} | |
} | |
else | |
{ | |
eventXml = dataNotFoundWarningLabelNodeText; | |
} | |
var eventLevelElements = eventRecordArray[i].getElementsByTagName("EventLevel"); | |
if((eventLevelElements != null) && (eventLevelElements.length > 0) && (eventLevelElements[0].firstChild != null)) | |
{ | |
eventType = eventLevelElements[0].firstChild.nodeValue; | |
} | |
else | |
{ | |
eventType = 5; | |
} | |
if((bVerbose === true)&&(eventType == 5)) | |
{ | |
displayEvent = true; | |
} | |
else if((bInformational === true)&&(eventType == 4)) | |
{ | |
displayEvent = true; | |
} | |
else if((bWarning === true)&&(eventType == 3)) | |
{ | |
displayEvent = true; | |
} | |
else if((bError === true)&&((eventType == 1)||(eventType == 2))) | |
{ | |
displayEvent = true; | |
} | |
if (displayEvent === true) | |
{ | |
eventXmlId = "EventXml" + (i+""); | |
htmlText = htmlText + "<tr>"; | |
htmlText = htmlText + "<td class=\"centerTxt\" style=\"background:" + displayBgColor +"\">" + eventId + "</td>"; | |
htmlText = htmlText + "<td class=\"centerTxt\" style=\"background:" + displayBgColor +"\">" + eventTime + "</td>"; | |
htmlText = htmlText + "<td class=\"txtFormat1\" style=\"background:" + displayBgColor +"\">" + eventDescription + "</td>"; | |
htmlText = htmlText + "<td style=\"background:" + displayBgColor +"\"><span style=\"color:blue; cursor:hand\" onclick=\"toggle(" + eventXmlId +");\" onKeyPress=\"toggle(" + eventXmlId + ");\" tabIndex=1 >"; | |
htmlText = htmlText + eventXmlLabelNodeText + "</span><br/>"; | |
htmlText = htmlText + "<span style=\"display:none\" id=" + eventXmlId +">"; | |
htmlText = htmlText + eventXml + "</span>"; | |
htmlText = htmlText + "</td>"; | |
htmlText = htmlText + "</tr>"; | |
} | |
} | |
} | |
htmlText = htmlText + "</table></body></html>"; | |
if(windowsArray[strWindowId]) | |
{ | |
delete windowsArray[strWindowId]; | |
} | |
// IE specific method for showing the popup. | |
if(navigator.userAgent.indexOf("MSIE") > 0 && window.location.toString().indexOf("file:") === -1) | |
{ | |
var strDiagArgs = "dialogHeight=360px;dialogWidth=630px;status=no;scroll=yes;resizable=yes;minimize=yes;maximize=yes;"; | |
var vModeless = window.showModelessDialog("about:blank", window, strDiagArgs); | |
vModeless.document.write(htmlText); | |
vModeless.document.close(); | |
vModeless.location.reload(false); | |
windowsArray[strWindowId] = vModeless; | |
} | |
else | |
{ | |
var strDiagArgs = "height=360px, width=630px, status=no, toolbar=no, scrollbars=yes, resizable=yes"; | |
windowsArray[strWindowId] = window.open("", "", strDiagArgs); | |
windowsArray[strWindowId].document.write(htmlText); | |
windowsArray[strWindowId].focus(); | |
} | |
} | |
xmlDocumentRoot = null; | |
} | |
function cleanUp() { | |
var windowsArray = this.windowsArray; | |
for (var currentWindow in windowsArray) { | |
if (windowsArray.hasOwnProperty(currentWindow)) { | |
windowsArray[currentWindow].close(); | |
} | |
} | |
} | |
function getMessageText(messageNode) { | |
if (messageNode != null) { | |
if (messageNode.firstChild != null) { | |
if (messageNode.firstChild.nodeType === 3) { | |
for (var i = 0; i < messageNode.childNodes.length; i++) | |
{ | |
var curNode = messageNode.childNodes[i]; | |
if(curNode.nodeType === 1){ | |
return curNode.childNodes[0].nodeValue; | |
} | |
} | |
} else { | |
return messageNode.firstChild.childNodes[0].nodeValue; | |
} | |
} | |
} | |
return null; | |
} | |
function showComponentProcessingDetails(srcElement) { | |
var strWindowId = "ProcessingDetails_" + srcElement.getAttribute("eventLogActivityId"); | |
if ((windowsArray[strWindowId]) && (windowsArray[strWindowId].closed === false)) { | |
windowsArray[strWindowId].focus(); | |
} else { | |
var doc; | |
var parser; | |
var xmlDocumentRoot; | |
var xmlDocument; | |
var extensionsProcessedLabelNode, slowLinkThresholdLabelNode, linkSpeedLabelNode, extensionsProcessedTimeTakenNode; | |
var domainControllerIpLabelNode, domainControllerNameLabelNode, processingTypeLabelNode, loopbackModeLabelNode; | |
var processingTriggerLabelNode, extensionNameLabelNode, timeTakenLabelNode; | |
var dataNotFoundWarningLabelNode; | |
var singlePassEventsDetailsNode, totalProcessingTimeLabelNode, refreshMessageLabelNode; | |
var processingDetailsUserTitleNode, processingDetailsComputerTitleNode; | |
var policySectionNode; | |
var policyEventsDetailsNode, detailsLabelNode; | |
var extensionsProcessedLabelNodeText, slowLinkThresholdLabelNodeText, linkSpeedLabelNodeText, extensionsProcessedTimeTakenNodeText; | |
var domainControllerIpLabelNodeText, domainControllerNameLabelNodeText, processingTypeLabelNodeText, loopbackModeLabelNodeText; | |
var processingTriggerLabelNodeText, extensionNameLabelNodeText, timeTakenLabelNodeText; | |
var dataNotFoundWarningLabelNodeText, totalProcessingTimeLabelNodeText, refreshMessageLabelNodeText; | |
var processingDetailsUserTitleNodeText, processingDetailsComputerTitleNodeText; | |
var detailsLabelNodeText; | |
var slowLinkThresholdValue, linkSpeedValue, domainControllerIpValue, domainControllerNameValue; | |
var processingTypeValue, loopbackModeValue, processingTriggerValue, totalPolicyProcessingTime, extensionProcessingTimeArray; | |
var cseNameArray = new Array(); | |
var cseElapsedTimeArray = new Array(); | |
var policyApplicationFinishedTime; | |
var isComputerProcessing; | |
var strDiagArgs; | |
var mainSection; | |
var attributeValue; | |
var singlePassEventsDetails; | |
var singlePassEventsDetailsChildren; | |
var node; | |
var children; | |
var itemSub; | |
if (window.DOMParser) | |
{ | |
// This browser appears to support DOMParser | |
parser = new DOMParser(); | |
doc = document.getElementById("data-island").textContent; | |
xmlDocumentRoot = parser.parseFromString(doc, "application/xml"); | |
xmlDocument = xmlDocumentRoot.documentElement; | |
itemSub = 1; | |
} | |
else | |
{ | |
// Internet Explorer, create a new XML document using ActiveX | |
// and use loadXML as a DOM parser. | |
try | |
{ | |
doc = document.getElementById("data-island"); | |
xmlDocumentRoot = new ActiveXObject("Msxml2.DOMDocument.6.0"); | |
xmlDocumentRoot.async = false; | |
xmlDocumentRoot.loadXML(doc.innerHTML); | |
xmlDocument = xmlDocumentRoot.documentElement; | |
itemSub = 0; | |
} | |
catch(e) | |
{ | |
// Not supported. | |
} | |
} | |
if (xmlDocument != null) { | |
mainSection = xmlDocument.getElementsByTagName("MainSection")[0].childNodes; | |
if (mainSection != null) { | |
for (children = 0; children < mainSection.length; children++) { | |
node = mainSection[children]; | |
if (node.nodeType === 1 && node.nodeName === 'Label') { | |
attributeValue = node.getAttribute("Name") | |
if (attributeValue != null) { | |
if (attributeValue === 'ComponentStatus_ExtensionsProcessed') { | |
extensionsProcessedLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_SlowLinkThreshold') { | |
slowLinkThresholdLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_LinkSpeed') { | |
linkSpeedLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_TimeTaken') { | |
extensionsProcessedTimeTakenNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_DomainControllerIP') { | |
domainControllerIpLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_DomainControllerName') { | |
domainControllerNameLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_ProcessingTrigger') { | |
processingTriggerLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_ExtensionName') { | |
extensionNameLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_TimeTaken') { | |
timeTakenLabelNode = node; | |
} | |
if (attributeValue === 'Warning_DataNotFound') { | |
dataNotFoundWarningLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_TotalProcessingTime') { | |
totalProcessingTimeLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_RefreshMessage') { | |
refreshMessageLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_UserProcessingDetails') { | |
processingDetailsUserTitleNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_ComputerProcessingDetails') { | |
detailsLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_ProcessingType') { | |
processingTypeLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_LoopbackMode') { | |
loopbackModeLabelNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_UserProcessingDetails') { | |
processingDetailsUserTitleNode = node; | |
} | |
if (attributeValue === 'ComponentStatus_ComputerProcessingDetails') { | |
processingDetailsComputerTitleNode = node; | |
} | |
} | |
} | |
} | |
} | |
singlePassEventsDetails = xmlDocument.getElementsByTagName("SinglePassEventsDetails"); | |
if (singlePassEventsDetails != null) { | |
for (singlePassEventsDetailsChildren = 0; singlePassEventsDetailsChildren < singlePassEventsDetails.length; singlePassEventsDetailsChildren++) { | |
node = singlePassEventsDetails[singlePassEventsDetailsChildren]; | |
if (node.getAttribute("ActivityId") === srcElement.getAttribute("eventLogActivityId")) { | |
singlePassEventsDetailsNode = node; | |
} | |
} | |
} | |
if (singlePassEventsDetailsNode) { | |
policyEventsDetailsNode = singlePassEventsDetailsNode.parentNode; | |
if (policyEventsDetailsNode) { | |
policySectionNode = policyEventsDetailsNode.parentNode; | |
if (policySectionNode) { | |
if (policySectionNode.nodeName === 'UserPolicySection') { | |
isComputerProcessing = false; | |
} | |
if (policySectionNode.nodeName === 'ComputerPolicySection') { | |
isComputerProcessing = true; | |
} | |
} | |
} | |
} | |
} | |
extensionsProcessedLabelNodeText = getMessageText(extensionsProcessedLabelNode); | |
slowLinkThresholdLabelNodeText = getMessageText(slowLinkThresholdLabelNode); | |
linkSpeedLabelNodeText = getMessageText(linkSpeedLabelNode); | |
domainControllerIpLabelNodeText = getMessageText(domainControllerIpLabelNode); | |
domainControllerNameLabelNodeText = getMessageText(domainControllerNameLabelNode); | |
processingTypeLabelNodeText = getMessageText(processingTypeLabelNode); | |
loopbackModeLabelNodeText = getMessageText(loopbackModeLabelNode); | |
processingTriggerLabelNodeText = getMessageText(processingTriggerLabelNode); | |
extensionNameLabelNodeText = getMessageText(extensionNameLabelNode); | |
timeTakenLabelNodeText = getMessageText(timeTakenLabelNode); | |
processingDetailsUserTitleNodeText = getMessageText(processingDetailsUserTitleNode); | |
processingDetailsComputerTitleNodeText = getMessageText(processingDetailsComputerTitleNode); | |
dataNotFoundWarningLabelNodeText = getMessageText(dataNotFoundWarningLabelNode); | |
totalProcessingTimeLabelNodeText = getMessageText(totalProcessingTimeLabelNode); | |
refreshMessageLabelNodeText = getMessageText(refreshMessageLabelNode); | |
detailsLabelNodeText = getMessageText(detailsLabelNode); | |
slowLinkThresholdValue = null; | |
linkSpeedValue = null; | |
domainControllerIpValue = null; | |
domainControllerNameValue = null; | |
processingTypeValue = null; | |
loopbackModeValue = null; | |
processingTriggerValue = null; | |
if (singlePassEventsDetailsNode != null) { | |
slowLinkThresholdValue = singlePassEventsDetailsNode.getAttribute("SlowLinkThresholdInKbps"); | |
linkSpeedValue = singlePassEventsDetailsNode.getAttribute("LinkSpeedInKbps"); | |
domainControllerIpValue = singlePassEventsDetailsNode.getAttribute("DomainControllerIPAddress"); | |
domainControllerNameValue = singlePassEventsDetailsNode.getAttribute("DomainControllerName"); | |
processingTypeValue = singlePassEventsDetailsNode.getAttribute("ProcessingAppMode"); | |
loopbackModeValue = singlePassEventsDetailsNode.getAttribute("PolicyProcessingMode"); | |
processingTriggerValue = singlePassEventsDetailsNode.getAttribute("ProcessingTrigger"); | |
totalPolicyProcessingTime = singlePassEventsDetailsNode.getAttribute("PolicyElapsedTime"); | |
extensionProcessingTimeArray = singlePassEventsDetailsNode.getElementsByTagName("ExtensionProcessingTime"); | |
} | |
if (slowLinkThresholdValue == null) { | |
slowLinkThresholdValue = dataNotFoundWarningLabelNodeText; | |
} | |
if (linkSpeedValue == null) { | |
linkSpeedValue = dataNotFoundWarningLabelNodeText; | |
} | |
if (domainControllerIpValue == null) { | |
domainControllerIpValue = dataNotFoundWarningLabelNodeText; | |
} | |
else { | |
domainControllerIpValue = domainControllerIpValue.replace(/^\\\\/, ""); | |
} | |
if (domainControllerNameValue == null) { | |
domainControllerNameValue = dataNotFoundWarningLabelNodeText; | |
} | |
else { | |
domainControllerNameValue = domainControllerNameValue.replace(/^\\\\/, ""); | |
} | |
if (processingTypeValue == null) { | |
processingTypeValue = dataNotFoundWarningLabelNodeText; | |
} | |
if (loopbackModeValue == null) { | |
loopbackModeValue = dataNotFoundWarningLabelNodeText; | |
} | |
if (processingTriggerValue == null) { | |
processingTriggerValue = dataNotFoundWarningLabelNodeText; | |
} | |
if (extensionProcessingTimeArray != null && extensionProcessingTimeArray.length > 0) { | |
var cseName; | |
var cseElapsedTime; | |
var cseProcessedTime; | |
var cseId; | |
var i; | |
var index = 0; | |
for (i = 0; i < extensionProcessingTimeArray.length; i++) { | |
var cseNameElements = extensionProcessingTimeArray[i].getElementsByTagName("ExtensionName"); | |
var cseElapsedTimeElements = extensionProcessingTimeArray[i].getElementsByTagName("ElapsedTime"); | |
var cseProcessedTimeElements = extensionProcessingTimeArray[i].getElementsByTagName("ProcessedTime"); | |
var cseIdElements = extensionProcessingTimeArray[i].getElementsByTagName("ExtensionGuid"); | |
if ((cseNameElements.length > 0) && (cseElapsedTimeElements.length > 0) && (cseProcessedTimeElements.length > 0) && (cseIdElements.length > 0)) { | |
if ((cseNameElements[0].firstChild != null) && (cseElapsedTimeElements[0].firstChild != null) && (cseProcessedTimeElements[0].firstChild != null) && (cseIdElements[0].firstChild != null)) { | |
cseName = cseNameElements[0].firstChild.nodeValue; | |
cseElapsedTime = cseElapsedTimeElements[0].firstChild.nodeValue; | |
cseProcessedTime = cseProcessedTimeElements[0].firstChild.nodeValue; | |
cseId = cseIdElements[0].firstChild.nodeValue; | |
if ((cseName != null) && (cseElapsedTime != null) && (cseProcessedTime != null) && (cseId != null)) { | |
cseNameArray[index] = cseName; | |
cseElapsedTimeArray[index] = cseElapsedTime; | |
index = index + 1; | |
if (cseId === '{00000000-0000-0000-0000-000000000000}') { | |
policyApplicationFinishedTime = cseProcessedTime; | |
} | |
} | |
} | |
} | |
} | |
} | |
var htmlText = "<html dir=" + document.dir + ">"; | |
htmlText = htmlText + "<head>"; | |
htmlText = htmlText + "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />"; | |
htmlText = htmlText + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-16\" />"; | |
if(isComputerProcessing != null) | |
{ | |
if(isComputerProcessing === true) | |
{ | |
htmlText = htmlText + "<title>" + processingDetailsComputerTitleNodeText + "</title>"; | |
} | |
else | |
{ | |
htmlText = htmlText + "<title>" + processingDetailsUserTitleNodeText + "</title>"; | |
} | |
} | |
htmlText = htmlText + "</head><style type=\"text/css\">"; | |
htmlText = htmlText + "body { background-color:#FFFFFF; color:#000000; font-size:68%; font-family:MS Shell Dlg; margin:0,0,10px,0; word-break:normal; word-wrap:break-word; }"; | |
htmlText = htmlText + "table { font-size:100%; table-layout:fixed; width:100%; }"; | |
htmlText = htmlText + "td,th { overflow:visible; text-align:left; vertical-align:top; white-space:normal; }"; | |
htmlText = htmlText + ".he0 { background-color:#FEF7D6; border:1px solid #BBBBBB; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-left:8px; padding-right:5em; padding-top:4px; position:relative; width:100%; }"; | |
htmlText = htmlText + ".he1 { color:#000000; display:block; font-family:MS Shell Dlg; font-size:100%; font-weight:bold; height:2em;margin-left: 5 px; margin-top: 5 px; position:relative; width:100%; }"; | |
htmlText = htmlText + ".tblspecialfmt { border:1px solid black;border-collapse:collapse; }"; | |
htmlText = htmlText + ".tblfirstcolfmt { border-left-width: 1px;border-top-width: 1px;border-bottom-width: 1px;border-right-width: 0px;border-style: solid; border-color: black; }"; | |
htmlText = htmlText + ".tblsecondcolfmt { border-left-width: 0px;border-top-width: 1px;border-bottom-width: 1px;border-right-width: 1px;border-style: solid; border-color: black; }"; | |
htmlText = htmlText + "</style>"; | |
htmlText = htmlText + "<body>"; | |
htmlText = htmlText + "<span class=\"he1\">" + refreshMessageLabelNodeText + " " + policyApplicationFinishedTime + "</span>" ; | |
htmlText = htmlText + "<div class=\"he0\">" + detailsLabelNodeText + "</div>" | |
htmltext = htmlText + "<table><tr>"; | |
htmlText = htmlText + "<td>"; | |
htmlText = htmlText + "<table>"; | |
htmlText = htmlText + "<tr><td colspan=\"2\"> </td></tr>"; | |
htmlText = htmlText + "<tr><td style=\"width: 50%\"><strong>" + processingTypeLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td>" + processingTypeValue + "</td></tr>"; | |
htmlText = htmlText + "<tr><td style=\"width: 50%\"><strong>" + loopbackModeLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td>" + loopbackModeValue + "</td></tr>"; | |
htmlText = htmlText + "<tr><td style=\"width: 50%\"><strong>" + linkSpeedLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td>" + linkSpeedValue + "</td></tr>"; | |
htmlText = htmlText + "<tr><td style=\"width: 50%\"><strong>" + slowLinkThresholdLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td>" + slowLinkThresholdValue + "</td></tr>"; | |
htmlText = htmlText + "<tr><td style=\"width: 50%\"><strong>" + domainControllerNameLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td>" + domainControllerNameValue +"</td></tr>"; | |
htmlText = htmlText + "<tr><td style=\"width: 50%\"><strong>" + domainControllerIpLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td>" + domainControllerIpValue +"</td></tr>"; | |
htmlText = htmlText + "<tr><td style=\"width: 50%\"><strong>" + processingTriggerLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td>" + processingTriggerValue + "</td></tr>"; | |
htmlText = htmlText + "</table></td></tr>"; | |
htmlText = htmlText + "<tr ><td ><table>"; | |
htmlText = htmlText + "<tr><td><span class=\"he1\" >" + extensionsProcessedLabelNodeText +"</span></td></tr>"; | |
htmlText = htmlText + "<tr><td><table class=\"tblspecialfmt\" >"; | |
htmlText = htmlText + "<tr><td class=\"tblfirstcolfmt\" style=\"width: 50%;background-color:#FEF7D6;\"><strong>" + extensionNameLabelNodeText + "</strong></td>"; | |
htmlText = htmlText + "<td class=\"tblsecondcolfmt\" style=\"background-color:#FEF7D6;\" ><strong>" + timeTakenLabelNodeText + "</strong></td></tr>"; | |
for (var idx in cseNameArray) | |
{ | |
htmlText = htmlText + "<tr><td style=\"width: 50%\">" + cseNameArray[idx] + "</td>"; | |
htmlText = htmlText + "<td>" + cseElapsedTimeArray[idx] + "</td></tr>"; | |
} | |
if (totalPolicyProcessingTime != null) | |
{ | |
htmlText = htmlText + "<tr><td class=\"tblfirstcolfmt\" style=\"width: 50%\" >" + totalProcessingTimeLabelNodeText +":</td>"; | |
htmlText = htmlText + "<td class=\"tblsecondcolfmt\">" + totalPolicyProcessingTime + "</td></tr>"; | |
} | |
htmlText = htmlText + "</table></td></tr></table></td></tr></table></body></html>"; | |
if(windowsArray[strWindowId]) | |
{ | |
delete windowsArray[strWindowId]; | |
} | |
// IE specific method for showing the popup. | |
if(navigator.userAgent.indexOf("MSIE") > 0 && window.location.toString().indexOf("file:") === -1) | |
{ | |
strDiagArgs = "dialogHeight=360px;dialogWidth=630px;status=no;scroll=yes;resizable=yes;minimize=yes;maximize=yes;"; | |
var vModeless = window.showModelessDialog("about:blank", window, strDiagArgs); | |
vModeless.document.write(htmlText); | |
vModeless.document.close(); | |
vModeless.location.reload(false); | |
windowsArray[strWindowId] = vModeless; | |
} | |
else | |
{ | |
strDiagArgs = "height=360px, width=630px, status=no, toolbar=no, scrollbars=yes, resizable=yes"; | |
windowsArray[strWindowId] = window.open("", "" , strDiagArgs); | |
windowsArray[strWindowId].document.write(htmlText); | |
windowsArray[strWindowId].focus(); | |
} | |
} | |
xmlDocumentRoot = null; | |
} | |
</script> | |
</head> | |
<body onload="window_onload();" onclick="document_onclick();" onkeypress="document_onkeypress(event);" onunload="cleanUp();"> | |
<!-- HTML resources --> | |
<div style="display:none;"> | |
<div id="explainText_windowTitle">Group Policy Management</div> | |
<div id="explainText_windowStyles"> | |
body { font-size:68%;font-family:MS Shell Dlg; margin:0px,0px,0px,0px; border: 1px solid #666666; background:#F6F6F6; width:100%; word-break:normal; word-wrap:break-word; } | |
.head { font-weight:bold; font-size:160%; font-family:MS Shell Dlg; width:100%; color:#6587DC; background:#E3EAF9; border:1px solid #5582D2; padding-left:8px; height:24px; } | |
.path { margin-left: 10px; margin-top: 10px; margin-bottom:5px;width:100%; } | |
.info { padding-left:10px;width:100%; } | |
table { font-size:100%; width:100%; border:1px solid #999999; } | |
th { border-bottom:1px solid #999999; text-align:left; padding-left:10px; height:24px; } | |
td { background:#FFFFFF; padding-left:10px; padding-bottom:10px; padding-top:10px; } | |
.btn { width:100%; text-align:right; margin-top:16px; } | |
.hdr { font-weight:bold; border:1px solid #999999; text-align:left; padding-top: 4px; padding-left:10px; height:24px; margin-bottom:-1px; width:100%; } | |
.bdy { width:100%; height:182px; display:block; overflow:scroll; z-index:2; background:#FFFFFF; padding-left:10px; padding-bottom:10px; padding-top:10px; border:1px solid #999999; } | |
button { width:6.9em; height:2.1em; font-size:100%; font-family:MS Shell Dlg; margin-right:15px; } | |
@media print { | |
.bdy { display:block; overflow:visible; } | |
button { display:none; } | |
.head { color:#000000; background:#FFFFFF; border:1px solid #000000; } | |
} | |
</div> | |
<div id="explainText_settingPathLabel">Setting Path:</div> | |
<div id="explainText_explainTextLabel">Explanation</div> | |
<div id="explainText_printButton"> | |
<button name="Print" onClick="window.print()" accesskey="P"><u>P</u>rint</button> | |
</div> | |
<div id="explainText_closeButton"> | |
<button name="Close" onClick="window.close()" accesskey="C"><u>C</u>lose</button> | |
</div> | |
<div id="explainText_noExplainTextAvailable">No explanation is available for this setting.</div> | |
<div id="explainText_supportedLabel">Supported On:</div> | |
<div id="explainText_noSupportedTextAvailable">Not available</div> | |
</div><table class="title" > | |
<tr><td colspan="2" class="gponame">TailScale Login</td></tr> | |
<tr> | |
<td id="dtstamp">Data collected on: 11/13/2024 03:17:52 AM</td> | |
<td><div id="objshowhide" tabindex="0" onclick="objshowhide_onClick();return false;"></div></td> | |
</tr> | |
</table> | |
<div class="gposummary"> | |
<div class="he0_expanded"><span class="sectionTitle" tabindex="0">General</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he1"><span class="sectionTitle" tabindex="0">Details</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><td scope="row">Domain</td><td>netlabwork.us</td></tr> | |
<tr><td scope="row">Owner</td><td>NETLABWORK\Domain Admins</td></tr> | |
<tr><td scope="row">Created</td><td>11/07/2024 22:37:36 PM</td></tr> | |
<tr><td scope="row">Modified</td><td>11/13/2024 03:17:46 AM</td></tr> | |
<tr><td scope="row">User Revisions</td><td>94 (AD), 94 (SYSVOL)</td></tr> | |
<tr><td scope="row">Computer Revisions</td><td>237 (AD), 237 (SYSVOL)</td></tr> | |
<tr><td scope="row">Unique ID</td><td>{976E061D-7F0F-4081-A6EF-79E8179E463B}</td></tr> | |
<tr><td scope="row">GPO Status</td><td>Enabled</td></tr> | |
</table></div></div> | |
<div class="filler"></div> | |
<div class="he1"><span class="sectionTitle" tabindex="0">Links</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info3" ><tr><th scope="col">Location</th><th scope="col">Enforced</th><th scope="col">Link Status</th><th scope="col">Path</th></tr> | |
<tr><td>Mobile</td><td>Yes</td><td>Enabled</td><td>netlabwork.us/Workstations/Mobile</td></tr> | |
</table> | |
<br/>This list only includes links in the domain of the GPO.</div></div> | |
<div class="filler"></div> | |
<div class="he1"><span class="sectionTitle" tabindex="0">Security Filtering</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>The settings in this GPO can only apply to the following groups, users, and computers:</b></div> | |
<div class="he4i"> | |
<table class="info" ><tr><th scope="col">Name</th></tr><tr><td>NETLABWORK\TAILSCALE_COMPUTERS</td></tr></table> | |
</div> | |
</div> | |
<div class="filler"></div> | |
<div class="filler"></div> | |
<div class="he1"><span class="sectionTitle" tabindex="0">Delegation</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>These groups and users have the specified permission for this GPO</b></div> | |
<div class="he4i"> | |
<table class="info3" > | |
<tr><th scope="col">Name</th><th scope="col">Allowed Permissions</th><th scope="col">Inherited</th></tr> | |
<tr><td>NETLABWORK\Domain Admins</td><td>Edit settings, delete, modify security</td><td>No</td></tr> | |
<tr><td>NETLABWORK\Domain Computers</td><td>Read</td><td>No</td></tr> | |
<tr><td>NETLABWORK\Enterprise Admins</td><td>Edit settings, delete, modify security</td><td>No</td></tr> | |
<tr><td>NETLABWORK\TAILSCALE_COMPUTERS</td><td>Read (from Security Filtering)</td><td>No</td></tr> | |
<tr><td>NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS</td><td>Read</td><td>No</td></tr> | |
<tr><td>NT AUTHORITY\SYSTEM</td><td>Edit settings, delete, modify security</td><td>No</td></tr> | |
</table> | |
</div></div></div> | |
<div class="filler"></div> | |
</div> | |
<div class="he0_expanded"><span class="sectionTitle" tabindex="0">Computer Configuration (Enabled)</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he1h_expanded"><span class="sectionTitle" tabindex="0">Policies</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he1_expanded"><span class="sectionTitle" tabindex="0">Software Settings</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he2"><span class="sectionTitle" tabindex="0">Assigned Applications</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he3"><span class="sectionTitle" tabindex="0">Tailscale</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4h"><span class="sectionTitle" tabindex="0">Product Information</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><td scope="row">Name</td><td>Tailscale</td></tr> | |
<tr><td scope="row">Version</td><td>1.76</td></tr> | |
<tr><td scope="row">Language</td><td>English (United States)</td></tr> | |
<tr><td scope="row">Platform</td><td>x64</td></tr> | |
<tr><td scope="row">Support URL</td><td></td></tr> | |
</table> | |
</div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Deployment Information</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><th scope="col">General</th><th scope="col">Setting</th></tr> | |
<tr><td>Deployment type</td><td>Assigned</td></tr> | |
<tr><td>Deployment source</td><td>\\netlabwork.us\SYSVOL\netlabwork.us\Installers\tailscale-setup-1.76.6-amd64.msi</td></tr> | |
<tr><td>Uninstall this application when it falls out of the scope of management</td><td>Enabled</td></tr> | |
</table> | |
<br/><table class="info" > | |
<tr><th scope="col">Advanced Deployment Options</th><th scope="col">Setting</th></tr> | |
<tr><td>Ignore language when deploying this package</td><td>Disabled</td></tr> | |
<tr><td>Make this 32-bit X86 application available to Win64 computers</td><td>Enabled</td></tr> | |
<tr><td>Include OLE class and product information</td><td>Enabled</td></tr> | |
</table> | |
<br/><table class="info" > | |
<tr><th>Diagnostic Information</th><th>Setting</th></tr> | |
<tr><td scope="row">Product code</td><td>{4c041253-d35b-5889-a173-b08110eb2062}</td></tr> | |
<tr><td scope="row">Deployment Count</td><td>0</td></tr> | |
</table> | |
</div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Security</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>Permissions</b><table class="subtable3" > | |
<tr><th scope="col">Type</th><th scope="col">Name</th><th scope="col">Permission</th><th scope="col">Inherited</th></tr><tr><td>Allow</td><td>NETLABWORK\Domain Admins</td><td>Full control</td><td>No</td></tr><tr><td>Allow</td><td>NT AUTHORITY\Authenticated Users</td><td>Read</td><td>No</td></tr><tr><td>Allow</td><td>NT AUTHORITY\SYSTEM</td><td>Full control</td><td>No</td></tr><tr><td>Allow</td><td>NETLABWORK\Domain Computers</td><td>Read</td><td>Yes</td></tr><tr><td>Allow</td><td>NETLABWORK\TAILSCALE_COMPUTERS</td><td>Read</td><td>Yes</td></tr><tr><td>Allow</td><td>NETLABWORK\Domain Admins</td><td>Read, Write</td><td>Yes</td></tr><tr><td>Allow</td><td>NETLABWORK\Enterprise Admins</td><td>Read, Write</td><td>Yes</td></tr><tr><td>Allow</td><td>NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS</td><td>Read</td><td>Yes</td></tr><tr><td>Allow</td><td>NT AUTHORITY\SYSTEM</td><td>Read, Write</td><td>Yes</td></tr><tr><td>Allow</td><td>CREATOR OWNER</td><td>Read, Write</td><td>Yes</td></tr></table> | |
<table class="subtable"> | |
<tr><td scope="row">Allow inheritable permissions from the parent to propagate to this object and all child objects</td><td>Enabled</td></tr> | |
</table> | |
</div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Advanced</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><th>Upgrades</th><th>Setting</th></tr> | |
<tr><td scope="row">Required upgrade for existing packages</td><td>Enabled</td></tr> | |
<tr><td colspan="2"><table class="subtable" ><tr><th scope="col">Packages that this package will upgrade</th><th scope="col">GPO</th></tr> | |
<tr><td colspan="2">None</td></tr> | |
</table> | |
</td></tr> | |
<tr><td scope="row">Packages in the current GPO that will upgrade this package</td><td>None</td></tr> | |
</table><br/><table class="info" > | |
<tr><th scope="col">Categories</th></tr> | |
<tr><td>None</td></tr> | |
</table> | |
<br/><table class="info" > | |
<tr><th scope="col">Transforms</th></tr> | |
<tr><td>\\netlabwork.us\SYSVOL\netlabwork.us\Installers\tailscale-setup-1.76.6-nlw-amd64.mst</td></tr> | |
</table></div></div></div></div></div><div class="filler"></div> | |
<div class="he1_expanded"><span class="sectionTitle" tabindex="0">Windows Settings</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he2"><span class="sectionTitle" tabindex="0">Scripts</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4"><span class="sectionTitle" tabindex="0">Startup</span><a class="expando" href="#"></a></div> | |
<div class="container"> | |
<div class="he4i"><b>For this GPO, Script order:</b> Not configured</div><div class="he4i"><table class="info" > | |
<tr><th scope="col">Name</th><th scope="col">Parameters</th></tr> | |
<tr><td>\\netlabwork.us\SYSVOL\netlabwork.us\scripts\tailscale.ps1</td><td></td></tr> | |
</table> | |
</div></div></div></div></div><div class="filler"></div> | |
<div class="he1h_expanded"><span class="sectionTitle" tabindex="0">Preferences</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he1_expanded"><span class="sectionTitle" tabindex="0">Windows Settings</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he2"><span class="sectionTitle" tabindex="0">Files</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he3"><span class="sectionTitle" tabindex="0">File (Target Path: C:\ProgramData\Tailscale\local-tailscale-login.bat)</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4"><span class="sectionTitle" tabindex="0">local-tailscale-login.bat (Order: 1)</span><a class="expando" href="#"></a></div> | |
<div class="container"> | |
<div class="he4h"><span class="sectionTitle" tabindex="0">General</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><td>Action</td><td>Replace</td></tr> | |
</table> | |
<b>Properties</b><table class="subtable" ><tr><td>Source file(s)</td><td>\\netlabwork.us\SYSVOL\netlabwork.us\scripts\local-tailscale-login.bat</td></tr> | |
<tr><td>Destination file</td><td>C:\ProgramData\Tailscale\local-tailscale-login.bat</td></tr> | |
<tr><td>Suppress errors on individual file actions</td><td>Disabled</td></tr> | |
</table><b>Attributes</b><table class="subtable" ><tr><td>Read-only</td><td>Enabled</td></tr> | |
<tr><td>Hidden</td><td>Enabled</td></tr> | |
<tr><td>Archive</td><td>Enabled</td></tr> | |
</table></div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Common</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>Options</b><table class="subtable" ><tr><td>Stop processing items on this extension if an error occurs on this item</td><td>No</td></tr> | |
<tr><td>Remove this item when it is no longer applied</td><td>Yes</td></tr> | |
</table><b>Item-level targeting: Security Group</b><table class="subtable" ><tr><th scope="col">Attribute</th><th scope="col">Value</th></tr> | |
<tr><td>bool</td><td>AND</td></tr> | |
<tr><td>not</td><td>0</td></tr> | |
<tr><td>name</td><td>NETLABWORK\TAILSCALE_COMPUTERS</td></tr> | |
<tr><td>sid</td><td>S-1-5-21-3736722622-1813306209-1554091934-1620</td></tr> | |
<tr><td>userContext</td><td>0</td></tr> | |
<tr><td>primaryGroup</td><td>0</td></tr> | |
<tr><td>localGroup</td><td>0</td></tr> | |
</table></div></div></div></div><div class="he3"><span class="sectionTitle" tabindex="0">File (Target Path: C:\ProgramData\Tailscale\tailscale.sdb)</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4"><span class="sectionTitle" tabindex="0">tailscale.sdb (Order: 2)</span><a class="expando" href="#"></a></div> | |
<div class="container"> | |
<div class="he4h"><span class="sectionTitle" tabindex="0">General</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><td>Action</td><td>Replace</td></tr> | |
</table> | |
<b>Properties</b><table class="subtable" ><tr><td>Source file(s)</td><td>\\netlabwork.us\SYSVOL\netlabwork.us\Installers\tailscale.sdb</td></tr> | |
<tr><td>Destination file</td><td>C:\ProgramData\Tailscale\tailscale.sdb</td></tr> | |
<tr><td>Suppress errors on individual file actions</td><td>Disabled</td></tr> | |
</table><b>Attributes</b><table class="subtable" ><tr><td>Read-only</td><td>Enabled</td></tr> | |
<tr><td>Hidden</td><td>Enabled</td></tr> | |
<tr><td>Archive</td><td>Enabled</td></tr> | |
</table></div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Common</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>Options</b><table class="subtable" ><tr><td>Stop processing items on this extension if an error occurs on this item</td><td>No</td></tr> | |
<tr><td>Remove this item when it is no longer applied</td><td>Yes</td></tr> | |
</table><b>Item-level targeting: Security Group</b><table class="subtable" ><tr><th scope="col">Attribute</th><th scope="col">Value</th></tr> | |
<tr><td>bool</td><td>AND</td></tr> | |
<tr><td>not</td><td>0</td></tr> | |
<tr><td>name</td><td>NETLABWORK\TAILSCALE_COMPUTERS</td></tr> | |
<tr><td>sid</td><td>S-1-5-21-3736722622-1813306209-1554091934-1620</td></tr> | |
<tr><td>userContext</td><td>0</td></tr> | |
<tr><td>primaryGroup</td><td>0</td></tr> | |
<tr><td>localGroup</td><td>0</td></tr> | |
</table></div></div></div></div></div><div class="he2"><span class="sectionTitle" tabindex="0">Folders</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he3"><span class="sectionTitle" tabindex="0">Folder (Path: C:\ProgramData\Tailscale)</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4"><span class="sectionTitle" tabindex="0">Tailscale (Order: 1)</span><a class="expando" href="#"></a></div> | |
<div class="container"> | |
<div class="he4h"><span class="sectionTitle" tabindex="0">General</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><td>Action</td><td>Replace</td></tr> | |
</table> | |
<b>Attributes</b><table class="subtable" ><tr><td>Path</td><td>C:\ProgramData\Tailscale</td></tr> | |
<tr><td>Read-only</td><td>Disabled</td></tr> | |
<tr><td>Hidden</td><td>Enabled</td></tr> | |
<tr><td>Archive</td><td>Disabled</td></tr> | |
</table><table class="info" > | |
<tr><td>Delete this folder (if emptied)</td><td>Enabled</td></tr> | |
<tr><td>Recursively delete all subfolders (if emptied)</td><td>Enabled</td></tr> | |
<tr><td>Delete all files in the folder(s)</td><td>Disabled</td></tr> | |
<tr><td>Allow deletion of read-only files/folders</td><td>Enabled</td></tr> | |
<tr><td>Ignore errors for files/folders that cannot be deleted</td><td>Disabled</td></tr> | |
</table> | |
</div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Common</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>Options</b><table class="subtable" ><tr><td>Stop processing items on this extension if an error occurs on this item</td><td>No</td></tr> | |
<tr><td>Remove this item when it is no longer applied</td><td>Yes</td></tr> | |
</table><b>Item-level targeting: Security Group</b><table class="subtable" ><tr><th scope="col">Attribute</th><th scope="col">Value</th></tr> | |
<tr><td>bool</td><td>AND</td></tr> | |
<tr><td>not</td><td>0</td></tr> | |
<tr><td>name</td><td>NETLABWORK\TAILSCALE_COMPUTERS</td></tr> | |
<tr><td>sid</td><td>S-1-5-21-3736722622-1813306209-1554091934-1620</td></tr> | |
<tr><td>userContext</td><td>0</td></tr> | |
<tr><td>primaryGroup</td><td>0</td></tr> | |
<tr><td>localGroup</td><td>0</td></tr> | |
</table></div></div></div></div></div><div class="he2"><span class="sectionTitle" tabindex="0">Shortcuts</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he3"><span class="sectionTitle" tabindex="0">Shortcut (Path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\TailScale)</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4"><span class="sectionTitle" tabindex="0">TailScale (Order: 1)</span><a class="expando" href="#"></a></div> | |
<div class="container"> | |
<div class="he4h"><span class="sectionTitle" tabindex="0">General</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><td>Action</td><td>Delete</td></tr> | |
</table> | |
<b>Attributes</b><table class="subtable" ><tr><td>Target type</td><td>File system object</td></tr> | |
<tr><td>Shortcut path</td><td>C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\TailScale</td></tr> | |
</table></div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Common</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>Options</b><table class="subtable" ><tr><td>Stop processing items on this extension if an error occurs on this item</td><td>No</td></tr> | |
<tr><td>Apply once and do not reapply</td><td>No</td></tr> | |
</table></div></div></div></div><div class="he3"><span class="sectionTitle" tabindex="0">Shortcut (Path: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\TailScale)</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4"><span class="sectionTitle" tabindex="0">TailScale (Order: 2)</span><a class="expando" href="#"></a></div> | |
<div class="container"> | |
<div class="he4h"><span class="sectionTitle" tabindex="0">General</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><table class="info" > | |
<tr><td>Action</td><td>Delete</td></tr> | |
</table> | |
<b>Attributes</b><table class="subtable" ><tr><td>Target type</td><td>File system object</td></tr> | |
<tr><td>Shortcut path</td><td>C:\ProgramData\Microsoft\Windows\Start Menu\Programs\TailScale</td></tr> | |
</table></div></div><div class="he4h"><span class="sectionTitle" tabindex="0">Common</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4i"><b>Options</b><table class="subtable" ><tr><td>Stop processing items on this extension if an error occurs on this item</td><td>No</td></tr> | |
<tr><td>Apply once and do not reapply</td><td>No</td></tr> | |
</table></div></div></div></div></div></div></div></div> | |
<div class="filler"></div> | |
<div class="he0_expanded"><span class="sectionTitle" tabindex="0">User Configuration (Enabled)</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he1h_expanded"><span class="sectionTitle" tabindex="0">Policies</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he1_expanded"><span class="sectionTitle" tabindex="0">Windows Settings</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he2"><span class="sectionTitle" tabindex="0">Scripts</span><a class="expando" href="#"></a></div> | |
<div class="container"><div class="he4"><span class="sectionTitle" tabindex="0">Logon</span><a class="expando" href="#"></a></div> | |
<div class="container"> | |
<div class="he4i"><b>For this GPO, Script order:</b> Not configured</div><div class="he4i"><table class="info" > | |
<tr><th scope="col">Name</th><th scope="col">Parameters</th></tr> | |
<tr><td>C:\ProgramData\Tailscale\local-tailscale-login.bat</td><td></td></tr> | |
</table> | |
</div></div></div></div></div></div> | |
</body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ÐÏࡱá > þÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ýÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR o o t E n t r y ÿÿÿÿÿÿÿÿ ‚ À F ð© | |
-Ê1Û @HYEòDhE7G ÿÿÿÿÿÿÿÿÿÿÿÿ 6 @H??wElDj>²D/H ÿÿÿÿ ÿÿÿÿ 8 @H??wElDj;äE$H ÿÿÿÿ Â S u m m a r y I n f o r m a t i o n ( ÿÿÿÿÿÿÿÿÿÿÿÿ € ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ þÿÿÿþÿÿÿþÿÿÿ | |
þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿTS_ADMINCONSOLEhideTS_ADVERTISEEXITNODEneverTS_ALLOWINCOMINGCONNECTIONSTS_LOGINURLhttps://connector.dns.armyTS_NETWORKDEVICESTS_PREFERENCESMENUTS_UNATTENDEDMODEalwaysTS_ENABLEDNSTS_ENABLESUBNETS ä | |
þÿ | |
à…ŸòùOh«‘ +'³Ù0 P x € ¨ ð L X „ Œ ´ @ H ä Installation Database ç Tailscale is a zero config VPN for building secure networks. Install on any device in minutes. Remote access from any network or physical location. Built on WireGuard®. | |
WireGuard is a registered trademark of Jason A. Donenfeld. Tailscale Inc. > Installer;Tailscale;vpn;security;privacy;wireguard;networking S This installer database contains the logic and data required to install Tailscale. @ „¾ü.Û ! Windows Installer XML Toolset () x64;1033 x64;1033 {4C041253-D35B-5889-A173-B08110EB2062}1.76.6;{4C041253-D35B-5889-A173-B08110EB2062}1.76.6;{C8F0A9CE-39DE-47FE-93B4-F33AC23790B5} ô |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## I am a custom Script for logging TailScale in on boot using tsPreAuthKey attribute stored in AD Schema | |
# This requires permanent modification to the schema for storing the PreAuthKey | |
# https://www.rebeladmin.com/step-step-guide-create-custom-active-directory-attributes/ | |
# https://legacy.support.exclaimer.com/hc/en-gb/articles/360028648572-How-to-create-new-custom-AD-attributes-for-use-in-a-signature-template | |
# | |
# Execute me as a Computer policy based powershell startup script, scheuled task is also an option but may not work on first run | |
$env:Path = 'C:\Program Files\Tailscale;' + $env:Path | |
$logF = "C:\ProgramData\Tailscale\Tailscale-login.log" | |
$DomainName = (Get-CimInstance -ClassName Win32_ComputerSystem).Domain | |
$timeout = 60 | |
$startTime = Get-Date | |
$serviceName = 'tailscale' | |
$tailscaleExe = "C:\Program Files\Tailscale\tailscale.exe" | |
$compMod = "\\$DomainName\SYSVOL\$DomainName\Installers\tailscale.sdb" | |
$preAuthTestF = "C:\ProgramData\TailScale\preauth" | |
$loginServer = "https://connector.dns.army" | |
Start-Sleep 10 | |
Start-Transcript -path $logF -append | |
Write-Host $(Date) | |
Write-Host "Grabbing the current machine's PreAuthKey from Active Directory..." | |
$tspreauthkey = (Get-ADComputer -identity $Env:ComputerName -properties tspreauthkey).tspreauthkey | |
Write-Host Current PreAuthKey: $tspreauthkey | |
if (-Not (Test-Path -Path $tailscaleExe)) { | |
Write-Host "tailscale.exe not found, quitting.." | |
exit 1 | |
} | |
sdbinst.exe -p -q $compMod | |
do { | |
$serviceStatus = (Get-Service -Name $serviceName).Status | |
if ($serviceStatus -eq "Running") { | |
Write-Host "The '$serviceName' service started successfully." | |
break | |
} | |
Start-Sleep -Seconds 1 | |
} while ((New-TimeSpan -Start $startTime).TotalSeconds -lt $timeout) | |
if ($serviceStatus -ne "Running") { | |
Write-Host "Timeout waiting for the '$serviceName' service to start." | |
} | |
if (-Not (Test-Path -Path $preAuthTestF)) { | |
Write-Host "Executing the tailscale login proceedure for the first time..." | |
$test = tailscale up --login-server=$loginServer --shields-up --authkey=$tspreauthkey --accept-dns --accept-routes --unattended | |
if ($test -ne "error") { | |
Write-Host "Saving the used key to file for later comparison..." | |
echo $tspreauthkey > $preAuthTestF | |
exit 0 | |
} | |
} | |
$oldtspreauthkey = Get-Content -Path $preAuthTestF | |
echo $oldtspreauthkey | |
if ($tspreauthkey -ne $oldtspreauthkey) { | |
Write-Host "PreAuthKey change detected in Active Directory, re-running login proceedure..." | |
$test = tailscale up --reset --force-reauth --login-server=$loginServer --shields-up --authkey=$tspreauthkey --accept-dns --accept-routes --unattended | |
if ($test -ne "error") { | |
Write-Host "Saving the used key to file for later comparison..." | |
echo $tspreauthkey > $preAuthTestF | |
exit 0 | |
} | |
} | |
Write-Host | |
Stop-Transcript | |
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sdbfx x 8p8`@ ˜ LACSLIAT\ x 8p8`˜ x 8p8`˜ x 8p82@˜ x 8p8 `˜ x 8p8`˜ x 86p8`@ ˜ x 86p8`˜ x 8 | |
p8@˜ x 8Tp8`˜ x 8Tp8`˜ x 8Vp8`@ ˜ x 8Vp8`˜ x 8Up8`˜ x 8Up8`˜ x 8Wp8`˜ x 8Wp8`˜ x 8Yp8`@ ˜ x 8Yp8`˜ x 8Xp8`˜ x 8Xp8`˜ x 8Ap8 | |
@ ˜ x 85p8`@ ˜ x 85p8`˜ x 8.p8@ ˜ x 8.p8`@ ˜ x 8p8`@ ˜ x 8p8˜ x 8p8@ ˜ x 8p8˜ (¹Ú˜Þq¼\ x 8p8`@ ˜ x 8p8`@ ˜ x 8p8`@ ˜ x 8p8`@ ˜ x 8%p8`˜ x 8-p8`˜ x 8/p8`@ ˜ x 8/p8`@ ˜ x 8:p8`@ ˜ x 8:p8`˜ x 84p8`@ ˜ x 84p8`@ ˜ x 8?p8`@ ˜ x 8?p8`˜ p¸ P Àp | |
7×"` ` #@ !@‚ «ú | |
“…µAš vhéc´U@ p pn `8 `b `| ¦výG¼…±¬eÁhû ;ÿŸ>6ÂN•:¹e´fíp ` `| `b `ª `8 p `Ú xð ˆ 3 . 0 . 0 . 1 6 ˆ T a i l S c a l e ˆ$ t a i l s c a l e - i p n . e x e ˆ T a i l s c a l e ˆ T a i l s c a l e I n c . ˆ * ˆ* T a i l s c a l e G U I c l i e n t ˆ R u n A s A d m i n |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment