Skip to content

Instantly share code, notes, and snippets.

@Geofferey
Last active November 13, 2024 11:52
Show Gist options
  • Save Geofferey/2fb15221ee916eb6a58c2b56697fea49 to your computer and use it in GitHub Desktop.
Save Geofferey/2fb15221ee916eb6a58c2b56697fea49 to your computer and use it in GitHub Desktop.
TailScale Login - Group Policy
<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\">&nbsp;</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>
ÐÏࡱá >  þÿ        þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ýÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ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}  ô 
## 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
  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š vhé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