Merge pull request #4046 from nschonni/fix--MD042/no-empty-links

fix: MD042/no-empty-links
This commit is contained in:
Beth Levin 2019-06-17 09:07:23 -07:00 committed by GitHub
commit ec48f99084
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 40 additions and 544 deletions

View File

@ -20,11 +20,11 @@ Get answers to commonly asked questions about the Internet Explorer 11 Blocker T
>[!Important] >[!Important]
>If you administer your companys environment using an update management solution, such as Windows Server Update Services (WSUS) or System Center 2012 Configuration Manager, you dont need to use the Internet Explorer 11 Blocker Toolkit. Update management solutions let you completely manage your Windows Updates and Microsoft Updates, including your Internet Explorer 11 deployment. >If you administer your companys environment using an update management solution, such as Windows Server Update Services (WSUS) or System Center 2012 Configuration Manager, you dont need to use the Internet Explorer 11 Blocker Toolkit. Update management solutions let you completely manage your Windows Updates and Microsoft Updates, including your Internet Explorer 11 deployment.
- [Automatic updates delivery process]() - [Automatic updates delivery process](#automatic-updates-delivery-process)
- [How the Internet Explorer 11 Blocker Toolkit works]() - [How the Internet Explorer 11 Blocker Toolkit works](#how-the-internet-explorer-11-blocker-toolkit-works)
- [Internet Explorer 11 Blocker Toolkit and other update services]() - [Internet Explorer 11 Blocker Toolkit and other update services](#internet-explorer-11-blocker-toolkit-and-other-update-services)
## Automatic Updates delivery process ## Automatic Updates delivery process
@ -50,7 +50,7 @@ other update management solution.
**Q. Why dont we just block URL access to Windows Update or Microsoft Update?** **Q. Why dont we just block URL access to Windows Update or Microsoft Update?**
A. Blocking the Windows Update or Microsoft Update URLs also stops delivery of critical security and reliability updates for all of the supported versions of the Windows operating system; leaving your computers more vulnerable. A. Blocking the Windows Update or Microsoft Update URLs also stops delivery of critical security and reliability updates for all of the supported versions of the Windows operating system; leaving your computers more vulnerable.
How the Internet Explorer 11 Blocker Toolkit works ## How the Internet Explorer 11 Blocker Toolkit works
**Q. How should I test the Internet Explorer 11 Blocker Toolkit in my company?** **Q. How should I test the Internet Explorer 11 Blocker Toolkit in my company?**
A. Because the toolkit only sets a registry key to turn on and off the delivery of Internet Explorer 11, there should be no additional impact or side effects to your environment. No additional testing should be necessary. A. Because the toolkit only sets a registry key to turn on and off the delivery of Internet Explorer 11, there should be no additional impact or side effects to your environment. No additional testing should be necessary.

View File

@ -89,7 +89,7 @@ The 55” Surface Hub requires two people to safely lift and mount. The 84” Su
## Mounting and setup ## Mounting and setup
See the [Technical information]() section, or your mounting guide at http://www.microsoft.com/surface/support/surface-hub, for detailed instructions. See your mounting guide at http://www.microsoft.com/surface/support/surface-hub for detailed instructions.
There are three ways to mount your Surface Hub: There are three ways to mount your Surface Hub:
@ -97,7 +97,7 @@ There are three ways to mount your Surface Hub:
- **Floor support mount**: Supports Surface Hub on the floor while it is permanently anchored to a conference space wall. - **Floor support mount**: Supports Surface Hub on the floor while it is permanently anchored to a conference space wall.
- **Rolling stand**: Supports Surface Hub and lets you move it to other conference locations. For links to guides that provide details about each mounting method, including building requirements, see http://www.microsoft.com/surface/support/surface-hub. - **Rolling stand**: Supports Surface Hub and lets you move it to other conference locations. For links to guides that provide details about each mounting method, including building requirements, see http://www.microsoft.com/surface/support/surface-hub.
For specifications on available mounts for the original Surfae Hub, see the following: For specifications on available mounts for the original Surface Hub, see the following:
- [Surface Hub Mounts and Stands Datasheet](http://download.microsoft.com/download/5/0/1/501F98D9-1BCC-4448-A1DB-47056CEE33B6/20160711_Surface_Hub_Mounts_and_Stands_Datasheet.pdf) - [Surface Hub Mounts and Stands Datasheet](http://download.microsoft.com/download/5/0/1/501F98D9-1BCC-4448-A1DB-47056CEE33B6/20160711_Surface_Hub_Mounts_and_Stands_Datasheet.pdf)
- [Surface Hub Stand and Wall Mount Specifications](http://download.microsoft.com/download/7/A/7/7A75BD0F-5A46-4BCE-B313-A80E47AEB581/20160720_Combined_Stand_Wall_Mount_Drawings.pdf) - [Surface Hub Stand and Wall Mount Specifications](http://download.microsoft.com/download/7/A/7/7A75BD0F-5A46-4BCE-B313-A80E47AEB581/20160720_Combined_Stand_Wall_Mount_Drawings.pdf)

View File

@ -1,21 +1,21 @@
# [Microsoft Desktop Optimization Pack](index.md) # [Microsoft Desktop Optimization Pack](index.md)
## [Advanced Group Policy Management](agpm/index.md) ## [Advanced Group Policy Management](agpm/index.md)
## [Application Virtualization]() ## Application Virtualization
### [Application Virtualization 5](appv-v5/index.md) ### [Application Virtualization 5](appv-v5/index.md)
### [Application Virtualization 4](appv-v4/index.md) ### [Application Virtualization 4](appv-v4/index.md)
### [SoftGrid Application Virtualization](softgrid-application-virtualization.md) ### [SoftGrid Application Virtualization](softgrid-application-virtualization.md)
## [Diagnostics and Recovery Toolset]() ## Diagnostics and Recovery Toolset
### [Diagnostics and Recovery Toolset 10](dart-v10/index.md) ### [Diagnostics and Recovery Toolset 10](dart-v10/index.md)
### [Diagnostics and Recovery Toolset 8](dart-v8/index.md) ### [Diagnostics and Recovery Toolset 8](dart-v8/index.md)
### [Diagnostics and Recovery Toolset 7](dart-v7/index.md) ### [Diagnostics and Recovery Toolset 7](dart-v7/index.md)
### [Diagnostics and Recovery Toolset 6.5](dart-v65.md) ### [Diagnostics and Recovery Toolset 6.5](dart-v65.md)
## [Microsoft Bitlocker Administration and Monitoring]() ## Microsoft Bitlocker Administration and Monitoring
### [Microsoft Bitlocker Administration and Monitoring 2.5](mbam-v25/index.md) ### [Microsoft Bitlocker Administration and Monitoring 2.5](mbam-v25/index.md)
### [Microsoft Bitlocker Administration and Monitoring 2](mbam-v2/index.md) ### [Microsoft Bitlocker Administration and Monitoring 2](mbam-v2/index.md)
### [Microsoft Bitlocker Administration and Monitoring 1](mbam-v1/index.md) ### [Microsoft Bitlocker Administration and Monitoring 1](mbam-v1/index.md)
## [Microsoft Enterprise Desktop Virtualization]() ## Microsoft Enterprise Desktop Virtualization
### [Microsoft Enterprise Desktop Virtualization 2](medv-v2/index.md) ### [Microsoft Enterprise Desktop Virtualization 2](medv-v2/index.md)
## [User Experience Virtualization]() ## User Experience Virtualization
### [User Experience Virtualization 2](uev-v2/index.md) ### [User Experience Virtualization 2](uev-v2/index.md)
### [User Experience Virtualization 1](uev-v1/index.md) ### [User Experience Virtualization 1](uev-v1/index.md)
## [MDOP Solutions and Scenarios](solutions/index.md) ## [MDOP Solutions and Scenarios](solutions/index.md)

View File

@ -36,8 +36,6 @@ Organizes the icons in the **Results** pane.
<a href="" id="help"></a>**Help** <a href="" id="help"></a>**Help**
Displays the help system for the Application Virtualization Management Console. Displays the help system for the Application Virtualization Management Console.
[]()
Right-click any application in the **Results** pane to display a pop-up menu that contains the following elements. Right-click any application in the **Results** pane to display a pop-up menu that contains the following elements.
<a href="" id="move"></a>**Move** <a href="" id="move"></a>**Move**

View File

@ -126,35 +126,3 @@ The following will help you plan how to ensure that virtualized packages are sec
During App-V 5.0 Setup, setup log files are created in the **%temp%** folder of the installing user. During App-V 5.0 Setup, setup log files are created in the **%temp%** folder of the installing user.
[]()
[]()
[]()
[]()
[]()
[]()
[]()
****
[]()

View File

@ -41,332 +41,119 @@ Before attempting this procedure, you should read and understand the information
2. To open a PowerShell console click **Start** and type **PowerShell**. Right-click **Windows PowerShell** and select **Run as Administrator**. 2. To open a PowerShell console click **Start** and type **PowerShell**. Right-click **Windows PowerShell** and select **Run as Administrator**.
``` syntax ```powershell
<# <#
```
``` syntax
.SYNOPSIS .SYNOPSIS
```
``` syntax
This PowerShell script will take an array of account names and try to convert each of them to the corresponding SID in standard and hexadecimal formats. This PowerShell script will take an array of account names and try to convert each of them to the corresponding SID in standard and hexadecimal formats.
```
``` syntax
.DESCRIPTION .DESCRIPTION
```
``` syntax
This is a PowerShell script that converts any number of Active Directory (AD) user or machine accounts into formatted Security Identifiers (SIDs) both in the standard format and in the hexadecimal format used by SQL server when running SQL scripts. This is a PowerShell script that converts any number of Active Directory (AD) user or machine accounts into formatted Security Identifiers (SIDs) both in the standard format and in the hexadecimal format used by SQL server when running SQL scripts.
```
``` syntax
.INPUTS .INPUTS
```
``` syntax
The account(s) to convert to SID format. This can be a single account name or an array of account names. Please see examples below. The account(s) to convert to SID format. This can be a single account name or an array of account names. Please see examples below.
```
``` syntax
.OUTPUTS .OUTPUTS
```
``` syntax
A list of account names with the corresponding SID in standard and hexadecimal formats A list of account names with the corresponding SID in standard and hexadecimal formats
```
``` syntax
.EXAMPLE .EXAMPLE
```
``` syntax
.\ConvertToSID.ps1 DOMAIN\user_account1 DOMAIN\machine_account1$ DOMAIN\user_account2 | Format-List .\ConvertToSID.ps1 DOMAIN\user_account1 DOMAIN\machine_account1$ DOMAIN\user_account2 | Format-List
```
``` syntax
.EXAMPLE .EXAMPLE
```
``` syntax
$accountsArray = @("DOMAIN\user_account1", "DOMAIN\machine_account1$", "DOMAIN_user_account2") $accountsArray = @("DOMAIN\user_account1", "DOMAIN\machine_account1$", "DOMAIN_user_account2")
```
``` syntax
.\ConvertToSID.ps1 $accountsArray | Write-Output -FilePath .\SIDs.txt -Width 200 .\ConvertToSID.ps1 $accountsArray | Write-Output -FilePath .\SIDs.txt -Width 200
```
``` syntax
#> #>
```
``` syntax
```
[]()
[]()
``` syntax
function ConvertSIDToHexFormat function ConvertSIDToHexFormat
```
{ {
param([System.Security.Principal.SecurityIdentifier]$sidToConvert)
param(\[System.Security.Principal.SecurityIdentifier\]$sidToConvert)
``` syntax
```
``` syntax
$sb = New-Object System.Text.StringBuilder $sb = New-Object System.Text.StringBuilder
```
``` syntax [int] $binLength = $sidToConvert.BinaryLength
[int] $binLength = $sidToConvert.BinaryLength
```
``` syntax [Byte[]] $byteArray = New-Object Byte[] $binLength
[Byte[]] $byteArray = New-Object Byte[] $binLength
```
``` syntax
$sidToConvert.GetBinaryForm($byteArray, 0) $sidToConvert.GetBinaryForm($byteArray, 0)
```
``` syntax
foreach($byte in $byteArray) foreach($byte in $byteArray)
```
``` syntax
{ {
``` $sb.Append($byte.ToString("X2")) |Out-Null
``` syntax
$sb.Append($byte.ToString("X2")) |Out-Null
```
``` syntax
} }
```
``` syntax
return $sb.ToString() return $sb.ToString()
```
``` syntax
} }
```
``` syntax [string[]]$myArgs = $args
[string[]]$myArgs = $args
```
``` syntax
if(($myArgs.Length -lt 1) -or ($myArgs[0].CompareTo("/?") -eq 0)) if(($myArgs.Length -lt 1) -or ($myArgs[0].CompareTo("/?") -eq 0))
```
{ {
[string]::Format("{0}====== Description ======{0}{0}" +
``` syntax " Converts any number of user or machine account names to string and hexadecimal SIDs.{0}" +
[string]::Format("{0}====== Description ======{0}{0}" +
```
``` syntax
" Converts any number of user or machine account names to string and hexadecimal SIDs.{0}" +
```
``` syntax
" Pass the account(s) as space separated command line parameters. (For example 'ConvertToSID.exe DOMAIN\\Account1 DOMAIN\\Account2 ...'){0}" + " Pass the account(s) as space separated command line parameters. (For example 'ConvertToSID.exe DOMAIN\\Account1 DOMAIN\\Account2 ...'){0}" +
```
``` syntax
" The output is written to the console in the format 'Account name SID as string SID as hexadecimal'{0}" + " The output is written to the console in the format 'Account name SID as string SID as hexadecimal'{0}" +
```
``` syntax
" And can be written out to a file using standard PowerShell redirection{0}" + " And can be written out to a file using standard PowerShell redirection{0}" +
``` " Please specify user accounts in the format 'DOMAIN\username'{0}" +
``` syntax
" Please specify user accounts in the format 'DOMAIN\username'{0}" +
```
``` syntax
" Please specify machine accounts in the format 'DOMAIN\machinename$'{0}" + " Please specify machine accounts in the format 'DOMAIN\machinename$'{0}" +
``` " For more help content, please run 'Get-Help ConvertToSID.ps1'{0}" +
``` syntax
" For more help content, please run 'Get-Help ConvertToSID.ps1'{0}" +
```
``` syntax
"{0}====== Arguments ======{0}" + "{0}====== Arguments ======{0}" +
```
``` syntax
"{0} /? Show this help message", [Environment]::NewLine)
```
``` syntax
{
```
``` syntax "{0} /? Show this help message", [Environment]::NewLine)
}
else else
``` {
``` syntax
{
#If an array was passed in, try to split it #If an array was passed in, try to split it
```
``` syntax
if($myArgs.Length -eq 1) if($myArgs.Length -eq 1)
```
``` syntax
{ {
```
``` syntax
$myArgs = $myArgs.Split(' ') $myArgs = $myArgs.Split(' ')
```
``` syntax
} }
```
``` syntax
#Parse the arguments for account names #Parse the arguments for account names
```
``` syntax
foreach($accountName in $myArgs) foreach($accountName in $myArgs)
``` {
``` syntax
{
```
``` syntax
[string[]] $splitString = $accountName.Split('\') # We're looking for the format "DOMAIN\Account" so anything that does not match, we reject [string[]] $splitString = $accountName.Split('\') # We're looking for the format "DOMAIN\Account" so anything that does not match, we reject
```
``` syntax
if($splitString.Length -ne 2) if($splitString.Length -ne 2)
```
``` syntax
{ {
```
``` syntax
$message = [string]::Format("{0} is not a valid account name. Expected format 'Domain\username' for user accounts or 'DOMAIN\machinename$' for machine accounts.", $accountName) $message = [string]::Format("{0} is not a valid account name. Expected format 'Domain\username' for user accounts or 'DOMAIN\machinename$' for machine accounts.", $accountName)
```
``` syntax
Write-Error -Message $message Write-Error -Message $message
```
``` syntax
continue continue
```
``` syntax
} }
```
``` syntax
```
``` syntax
#Convert any account names to SIDs #Convert any account names to SIDs
```
``` syntax
try try
```
``` syntax
{ {
```
``` syntax
[System.Security.Principal.NTAccount] $account = New-Object System.Security.Principal.NTAccount($splitString[0], $splitString[1]) [System.Security.Principal.NTAccount] $account = New-Object System.Security.Principal.NTAccount($splitString[0], $splitString[1])
```
``` syntax
[System.Security.Principal.SecurityIdentifier] $SID = [System.Security.Principal.SecurityIdentifier]($account.Translate([System.Security.Principal.SecurityIdentifier])) [System.Security.Principal.SecurityIdentifier] $SID = [System.Security.Principal.SecurityIdentifier]($account.Translate([System.Security.Principal.SecurityIdentifier]))
```
``` syntax
} }
```
``` syntax
catch [System.Security.Principal.IdentityNotMappedException] catch [System.Security.Principal.IdentityNotMappedException]
```
``` syntax
{ {
```
``` syntax
$message = [string]::Format("Failed to translate account object '{0}' to a SID. Please verify that this is a valid user or machine account.", $account.ToString()) $message = [string]::Format("Failed to translate account object '{0}' to a SID. Please verify that this is a valid user or machine account.", $account.ToString())
```
``` syntax
Write-Error -Message $message Write-Error -Message $message
```
``` syntax
continue continue
```
``` syntax
} }
```
``` syntax
#Convert regular SID to binary format used by SQL #Convert regular SID to binary format used by SQL
```
``` syntax
$hexSIDString = ConvertSIDToHexFormat $SID $hexSIDString = ConvertSIDToHexFormat $SID
```
``` syntax
$SIDs = New-Object PSObject $SIDs = New-Object PSObject
```
``` syntax
$SIDs | Add-Member NoteProperty Account $accountName $SIDs | Add-Member NoteProperty Account $accountName
```
``` syntax
$SIDs | Add-Member NoteProperty SID $SID.ToString() $SIDs | Add-Member NoteProperty SID $SID.ToString()
```
``` syntax
$SIDs | Add-Member NoteProperty Hexadecimal $hexSIDString $SIDs | Add-Member NoteProperty Hexadecimal $hexSIDString
```
``` syntax
Write-Output $SIDs Write-Output $SIDs
```
``` syntax
} }
```
``` syntax
} }
``` ```
@ -384,12 +171,3 @@ Before attempting this procedure, you should read and understand the information
[Administering App-V by Using PowerShell](administering-app-v-by-using-powershell.md) [Administering App-V by Using PowerShell](administering-app-v-by-using-powershell.md)

View File

@ -3,7 +3,7 @@ title: How to Install the App-V Databases and Convert the Associated Security Id
description: How to Install the App-V Databases and Convert the Associated Security Identifiers by Using PowerShell description: How to Install the App-V Databases and Convert the Associated Security Identifiers by Using PowerShell
author: dansimp author: dansimp
ms.assetid: 2be6fb72-f3a6-4550-bba1-6defa78ca08a ms.assetid: 2be6fb72-f3a6-4550-bba1-6defa78ca08a
ms.reviewer: ms.reviewer:
manager: dansimp manager: dansimp
ms.author: dansimp ms.author: dansimp
ms.pagetype: mdop, appcompat, virtualization ms.pagetype: mdop, appcompat, virtualization
@ -41,335 +41,96 @@ Before attempting this procedure, you should read and understand the information
2. To open a PowerShell console click **Start** and type **PowerShell**. Right-click **Windows PowerShell** and select **Run as Administrator**. 2. To open a PowerShell console click **Start** and type **PowerShell**. Right-click **Windows PowerShell** and select **Run as Administrator**.
``` syntax ```powershell
<# <#
```
``` syntax
.SYNOPSIS .SYNOPSIS
```
``` syntax
This PowerShell script will take an array of account names and try to convert each of them to the corresponding SID in standard and hexadecimal formats. This PowerShell script will take an array of account names and try to convert each of them to the corresponding SID in standard and hexadecimal formats.
```
``` syntax
.DESCRIPTION .DESCRIPTION
```
``` syntax
This is a PowerShell script that converts any number of Active Directory (AD) user or machine accounts into formatted Security Identifiers (SIDs) both in the standard format and in the hexadecimal format used by SQL server when running SQL scripts. This is a PowerShell script that converts any number of Active Directory (AD) user or machine accounts into formatted Security Identifiers (SIDs) both in the standard format and in the hexadecimal format used by SQL server when running SQL scripts.
```
``` syntax
.INPUTS .INPUTS
```
``` syntax
The account(s) to convert to SID format. This can be a single account name or an array of account names. Please see examples below. The account(s) to convert to SID format. This can be a single account name or an array of account names. Please see examples below.
```
``` syntax
.OUTPUTS .OUTPUTS
```
``` syntax
A list of account names with the corresponding SID in standard and hexadecimal formats A list of account names with the corresponding SID in standard and hexadecimal formats
```
``` syntax
.EXAMPLE .EXAMPLE
```
``` syntax
.\ConvertToSID.ps1 DOMAIN\user_account1 DOMAIN\machine_account1$ DOMAIN\user_account2 | Format-List .\ConvertToSID.ps1 DOMAIN\user_account1 DOMAIN\machine_account1$ DOMAIN\user_account2 | Format-List
```
``` syntax
.EXAMPLE .EXAMPLE
```
``` syntax
$accountsArray = @("DOMAIN\user_account1", "DOMAIN\machine_account1$", "DOMAIN_user_account2") $accountsArray = @("DOMAIN\user_account1", "DOMAIN\machine_account1$", "DOMAIN_user_account2")
```
``` syntax
.\ConvertToSID.ps1 $accountsArray | Write-Output -FilePath .\SIDs.txt -Width 200 .\ConvertToSID.ps1 $accountsArray | Write-Output -FilePath .\SIDs.txt -Width 200
```
``` syntax
#> #>
```
``` syntax
```
[]()
[]()
``` syntax
function ConvertSIDToHexFormat function ConvertSIDToHexFormat
```
{ {
param(\[System.Security.Principal.SecurityIdentifier\]$sidToConvert) param(\[System.Security.Principal.SecurityIdentifier\]$sidToConvert)
``` syntax
```
``` syntax
$sb = New-Object System.Text.StringBuilder $sb = New-Object System.Text.StringBuilder
``` [int] $binLength = $sidToConvert.BinaryLength
[Byte[]] $byteArray = New-Object Byte[] $binLength
``` syntax
[int] $binLength = $sidToConvert.BinaryLength
```
``` syntax
[Byte[]] $byteArray = New-Object Byte[] $binLength
```
``` syntax
$sidToConvert.GetBinaryForm($byteArray, 0) $sidToConvert.GetBinaryForm($byteArray, 0)
```
``` syntax
foreach($byte in $byteArray) foreach($byte in $byteArray)
```
``` syntax
{ {
``` $sb.Append($byte.ToString("X2")) |Out-Null
``` syntax
$sb.Append($byte.ToString("X2")) |Out-Null
```
``` syntax
} }
```
``` syntax
return $sb.ToString() return $sb.ToString()
```
``` syntax
} }
```
``` syntax
[string[]]$myArgs = $args [string[]]$myArgs = $args
```
``` syntax
if(($myArgs.Length -lt 1) -or ($myArgs[0].CompareTo("/?") -eq 0)) if(($myArgs.Length -lt 1) -or ($myArgs[0].CompareTo("/?") -eq 0))
```
{ {
``` syntax
[string]::Format("{0}====== Description ======{0}{0}" + [string]::Format("{0}====== Description ======{0}{0}" +
``` " Converts any number of user or machine account names to string and hexadecimal SIDs.{0}" +
``` syntax
" Converts any number of user or machine account names to string and hexadecimal SIDs.{0}" +
```
``` syntax
" Pass the account(s) as space separated command line parameters. (For example 'ConvertToSID.exe DOMAIN\\Account1 DOMAIN\\Account2 ...'){0}" + " Pass the account(s) as space separated command line parameters. (For example 'ConvertToSID.exe DOMAIN\\Account1 DOMAIN\\Account2 ...'){0}" +
```
``` syntax
" The output is written to the console in the format 'Account name SID as string SID as hexadecimal'{0}" + " The output is written to the console in the format 'Account name SID as string SID as hexadecimal'{0}" +
```
``` syntax
" And can be written out to a file using standard PowerShell redirection{0}" + " And can be written out to a file using standard PowerShell redirection{0}" +
``` " Please specify user accounts in the format 'DOMAIN\username'{0}" +
``` syntax
" Please specify user accounts in the format 'DOMAIN\username'{0}" +
```
``` syntax
" Please specify machine accounts in the format 'DOMAIN\machinename$'{0}" + " Please specify machine accounts in the format 'DOMAIN\machinename$'{0}" +
``` " For more help content, please run 'Get-Help ConvertToSID.ps1'{0}" +
``` syntax
" For more help content, please run 'Get-Help ConvertToSID.ps1'{0}" +
```
``` syntax
"{0}====== Arguments ======{0}" + "{0}====== Arguments ======{0}" +
``` "{0} /? Show this help message", [Environment]::NewLine)
}
``` syntax
"{0} /? Show this help message", [Environment]::NewLine)
```
``` syntax
{
```
``` syntax
else else
``` {
``` syntax
{
#If an array was passed in, try to split it #If an array was passed in, try to split it
```
``` syntax
if($myArgs.Length -eq 1) if($myArgs.Length -eq 1)
```
``` syntax
{ {
```
``` syntax
$myArgs = $myArgs.Split(' ') $myArgs = $myArgs.Split(' ')
```
``` syntax
} }
```
``` syntax
#Parse the arguments for account names #Parse the arguments for account names
```
``` syntax
foreach($accountName in $myArgs) foreach($accountName in $myArgs)
``` {
``` syntax
{
```
``` syntax
[string[]] $splitString = $accountName.Split('\') # We're looking for the format "DOMAIN\Account" so anything that does not match, we reject [string[]] $splitString = $accountName.Split('\') # We're looking for the format "DOMAIN\Account" so anything that does not match, we reject
```
``` syntax
if($splitString.Length -ne 2) if($splitString.Length -ne 2)
```
``` syntax
{ {
```
``` syntax
$message = [string]::Format("{0} is not a valid account name. Expected format 'Domain\username' for user accounts or 'DOMAIN\machinename$' for machine accounts.", $accountName) $message = [string]::Format("{0} is not a valid account name. Expected format 'Domain\username' for user accounts or 'DOMAIN\machinename$' for machine accounts.", $accountName)
```
``` syntax
Write-Error -Message $message Write-Error -Message $message
```
``` syntax
continue continue
```
``` syntax
} }
```
``` syntax
```
``` syntax
#Convert any account names to SIDs #Convert any account names to SIDs
```
``` syntax
try try
```
``` syntax
{ {
```
``` syntax
[System.Security.Principal.NTAccount] $account = New-Object System.Security.Principal.NTAccount($splitString[0], $splitString[1]) [System.Security.Principal.NTAccount] $account = New-Object System.Security.Principal.NTAccount($splitString[0], $splitString[1])
```
``` syntax
[System.Security.Principal.SecurityIdentifier] $SID = [System.Security.Principal.SecurityIdentifier]($account.Translate([System.Security.Principal.SecurityIdentifier])) [System.Security.Principal.SecurityIdentifier] $SID = [System.Security.Principal.SecurityIdentifier]($account.Translate([System.Security.Principal.SecurityIdentifier]))
```
``` syntax
} }
```
``` syntax
catch [System.Security.Principal.IdentityNotMappedException] catch [System.Security.Principal.IdentityNotMappedException]
```
``` syntax
{ {
```
``` syntax
$message = [string]::Format("Failed to translate account object '{0}' to a SID. Please verify that this is a valid user or machine account.", $account.ToString()) $message = [string]::Format("Failed to translate account object '{0}' to a SID. Please verify that this is a valid user or machine account.", $account.ToString())
```
``` syntax
Write-Error -Message $message Write-Error -Message $message
```
``` syntax
continue continue
```
``` syntax
} }
```
``` syntax
#Convert regular SID to binary format used by SQL #Convert regular SID to binary format used by SQL
```
``` syntax
$hexSIDString = ConvertSIDToHexFormat $SID $hexSIDString = ConvertSIDToHexFormat $SID
```
``` syntax
$SIDs = New-Object PSObject $SIDs = New-Object PSObject
```
``` syntax
$SIDs | Add-Member NoteProperty Account $accountName $SIDs | Add-Member NoteProperty Account $accountName
```
``` syntax
$SIDs | Add-Member NoteProperty SID $SID.ToString() $SIDs | Add-Member NoteProperty SID $SID.ToString()
```
``` syntax
$SIDs | Add-Member NoteProperty Hexadecimal $hexSIDString $SIDs | Add-Member NoteProperty Hexadecimal $hexSIDString
```
``` syntax
Write-Output $SIDs Write-Output $SIDs
```
``` syntax
} }
```
``` syntax
} }
```
3. Run the script you saved in step one of this procedure passing the accounts to convert as arguments. 3. Run the script you saved in step one of this procedure passing the accounts to convert as arguments.
For example, For example,
@ -384,12 +145,3 @@ Before attempting this procedure, you should read and understand the information
[Administering App-V 5.1 by Using PowerShell](administering-app-v-51-by-using-powershell.md) [Administering App-V 5.1 by Using PowerShell](administering-app-v-51-by-using-powershell.md)

View File

@ -606,7 +606,7 @@ For a complete list of the Microsoft Edge policies, see [Available policies for
Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to http://www.msftconnecttest.com/connecttest.txt to determine if the device can communicate with the Internet. For more info about NCSI, see [The Network Connection Status Icon](http://blogs.technet.com/b/networking/archive/2012/12/20/the-network-connection-status-icon.aspx). Network Connection Status Indicator (NCSI) detects Internet connectivity and corporate network connectivity status. NCSI sends a DNS request and HTTP query to http://www.msftconnecttest.com/connecttest.txt to determine if the device can communicate with the Internet. For more info about NCSI, see [The Network Connection Status Icon](http://blogs.technet.com/b/networking/archive/2012/12/20/the-network-connection-status-icon.aspx).
In versions of Windows 10 prior to Windows 10, version 1607 and Windows Server 2016, the URL was [http://www.msftncsi.com](). In versions of Windows 10 prior to Windows 10, version 1607 and Windows Server 2016, the URL was `http://www.msftncsi.com`.
You can turn off NCSI by doing one of the following: You can turn off NCSI by doing one of the following: