devblogs.microsoft.com Open in urlscan Pro
2a02:26f0:480:b9c::2f1e  Public Scan

Submitted URL: https://blogs.technet.microsoft.com/heyscriptingguy/2015/07/04/weekend-scripter-welcome-to-the-powershell-information-stream/
Effective URL: https://devblogs.microsoft.com/scripting/weekend-scripter-welcome-to-the-powershell-information-stream/
Submission: On March 13 via api from US — Scanned from DE

Form analysis 3 forms found in the DOM

Name: searchFormGET /search

<form class="c-search" autocomplete="off" id="searchForm" name="searchForm" role="search" action="/search" method="GET"
  data-seautosuggest="{&quot;queryParams&quot;:{&quot;market&quot;:&quot;en-us&quot;,&quot;clientId&quot;:&quot;7F27B536-CF6B-4C65-8638-A0F8CBDFCA65&quot;,&quot;sources&quot;:&quot;Microsoft-Terms,Iris-Products,DCatAll-Products&quot;,&quot;filter&quot;:&quot;+ClientType:StoreWeb&quot;,&quot;counts&quot;:&quot;5,1,5&quot;},&quot;familyNames&quot;:{&quot;Apps&quot;:&quot;App&quot;,&quot;Books&quot;:&quot;Book&quot;,&quot;Bundles&quot;:&quot;Bundle&quot;,&quot;Devices&quot;:&quot;Device&quot;,&quot;Fees&quot;:&quot;Fee&quot;,&quot;Games&quot;:&quot;Game&quot;,&quot;MusicAlbums&quot;:&quot;Album&quot;,&quot;MusicTracks&quot;:&quot;Song&quot;,&quot;MusicVideos&quot;:&quot;Video&quot;,&quot;MusicArtists&quot;:&quot;Artist&quot;,&quot;OperatingSystem&quot;:&quot;Operating System&quot;,&quot;Software&quot;:&quot;Software&quot;,&quot;Movies&quot;:&quot;Movie&quot;,&quot;TV&quot;:&quot;TV&quot;,&quot;CSV&quot;:&quot;Gift Card&quot;,&quot;VideoActor&quot;:&quot;Actor&quot;}}"
  data-seautosuggestapi="https://www.microsoft.com/msstoreapiprod/api/autosuggest"
  data-m="{&quot;cN&quot;:&quot;GlobalNav_Search_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c9c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c9c3m1r1a1&quot;}" aria-expanded="false">
  <input id="cli_shellHeaderSearchInput" aria-label="Search Expanded" aria-autocomplete="list" aria-expanded="false" aria-controls="universal-header-search-auto-suggest-transparent" aria-owns="universal-header-search-auto-suggest-ul" type="search"
    name="query" role="combobox" placeholder="Search" data-m="{&quot;cN&quot;:&quot;SearchBox_nav&quot;,&quot;id&quot;:&quot;n1c1c9c3m1r1a1&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}" data-toggle="tooltip" data-placement="right"
    title="" data-original-title="Search">
  <input type="hidden" name="blog" value="/scripting/" data-m="{&quot;cN&quot;:&quot;HiddenInput_nav&quot;,&quot;id&quot;:&quot;n2c1c9c3m1r1a1&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}">
  <button id="search" aria-label="Search" class="c-glyph" data-m="{&quot;cN&quot;:&quot;Search_nav&quot;,&quot;id&quot;:&quot;n3c1c9c3m1r1a1&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}" data-bi-mto="true" aria-expanded="false"
    disabled="disabled">
    <span role="presentation">Search</span>
    <span role="tooltip" class="c-uhf-tooltip c-uhf-search-tooltip">Search</span>
  </button>
  <div class="m-auto-suggest" id="universal-header-search-auto-suggest-transparent" role="group">
    <ul class="c-menu" id="universal-header-search-auto-suggest-ul" aria-label="Search Suggestions" aria-hidden="true" data-bi-dnt="true" data-bi-mto="true" data-js-auto-suggest-position="default" role="listbox" data-tel="jsll"
      data-m="{&quot;cN&quot;:&quot;search suggestions_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c1c9c3m1r1a1&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c1c9c3m1r1a1&quot;}"></ul>
    <ul class="c-menu f-auto-suggest-no-results" aria-hidden="true" data-js-auto-suggest-postion="default" data-js-auto-suggest-position="default" role="listbox">
      <li class="c-menu-item"> <span tabindex="-1">No results</span></li>
    </ul>
  </div>
</form>

POST https://devblogs.microsoft.com/scripting?na=s

<form method="post" action="https://devblogs.microsoft.com/scripting?na=s" onsubmit="return newsletter_check(this)">
  <input type="hidden" name="nlang" value="">
  <div class="col-8 tnp-field tnp-field-email pull-left" style="margin-right:13px;width: 300px;margin-left: 30px;"><input style="border: 1px solid #CED4DA;background-color:#FFF;height: 34px;font-size: 14px;" class="tnp-email x-hidden-focus"
      type="email" name="ne" placeholder="Enter your email" required=""></div>
  <div style="padding:0 10px;" class="tnp-field tnp-field-button"><input class="tnp-submit x-hidden-focus" type="submit" value="Subscribe">
    <div style="clear: both;"></div>
    <div class="tnp-field tnp-privacy-field"><label style="font-size: 14px;font-weight: normal;">By subscribing you agree to our <a href="https://docs.microsoft.com/en-us/collaborate/terms-of-use" target="_blank">Terms of Use</a> and
        <a href="https://privacy.microsoft.com/en-us/privacystatement" target="_blank">Privacy Policy</a></label></div>
  </div>
</form>

#

<form id="myForm" action="#">
  <div class="modal-body">
    <div class="form-group">
      <label for="code-text">Paste your code snippet</label>
      <textarea class="form-control" id="code-text" style="height: 150px;"></textarea>
    </div>
  </div>
  <div class="modal-footer">
    <button type="button" onclick="myCodeCancelFunction()" class="btn btn-primary" data-dismiss="modal">Cancel</button>
    <button type="button" onclick="myCodeFunction()" class="btn btn-primary">Ok</button>
  </div>
</form>

Text Content

We use optional cookies to improve your experience on our websites, such as
through social media connections, and to display personalized advertising based
on your online activity. If you reject optional cookies, only cookies necessary
to provide you the services will be used. You may change your selection by
clicking “Manage Cookies” at the bottom of the page. Privacy Statement
Third-Party Cookies

Accept Reject Manage cookies

Skip to main content
Microsoft
Scripting
Scripting
Scripting
 * Home
 * DevBlogs
 * Developer
    * Visual Studio
    * Visual Studio Code
    * Visual Studio for Mac
    * DevOps
    * Windows Developer
    * Developer support
    * ISE Developer
    * Engineering@Microsoft
    * Azure SDK
    * Command Line
    * Perf and Diagnostics
    * Math in Office
    * React Native

 * Technology
    * DirectX
    * Semantic Kernel
    * SurfaceDuo
    * Windows AI Platform

 * Languages
    * C++
    * C#
    * F#
    * TypeScript
    * PowerShell Community
    * PowerShell Team
    * Python
    * JavaScript
    * Java
    * Java Blog in Chinese

 * .NET
    * All .NET posts
    * .NET MAUI
    * ASP.NET Core
    * Blazor
    * Entity Framework
    * AI
    * Machine Learning
    * Servicing
    * Xamarin
    * .NET Blog in Chinese

 * Platform Development
    * #ifdef Windows
    * Azure Government
    * Azure VM Runtime Team
    * Bing Dev Center
    * Microsoft Edge Dev
    * Microsoft Azure
    * Microsoft 365 Developer
    * Microsoft Entra Identity Developer Blog
    * Old New Thing
    * Power Platform
    * Windows MIDI and Music dev

 * Data Development
    * Azure Cosmos DB
    * Azure Data Studio
    * Azure SQL Database
    * OData
    * Revolutions R
    * SQL Server Data Tools

 * More

Theme
 * Light
 * Dark

Login
Search Search
 * No results

Cancel
This is an archived blog.

The “Hey, Scripting Guys!” blog has been retired. There are many useful posts in
this blog, so we keep the blog here for historical reference. However, some
information might be very outdated and many of the links might not work anymore.

 

New PowerShell content is being posted to the PowerShell Community blog where
members of the community can create posts by submitting content in the GitHub
repository.

Learn More
Close


WEEKEND SCRIPTER: WELCOME TO THE POWERSHELL INFORMATION STREAM

Doctor Scripto



July 4th, 20150 0

Summary: Learn about the Windows PowerShell information stream in this guest
post by June Blender.

Microsoft Scripting Guy, Ed Wilson, is here. Today we have another guest blog
post by Honorary Scripting Guy and Sapien technical evangelist, June Blender.
Take it away June…

Note  This post is updated on August 3, 2015 for the Windows PowerShell
5.0.10240 preview. A previous version described the information stream features
in Windows PowerShell 5.0.10018. This post introduces the new information stream
in Windows PowerShell 5.0, and it explains the issue it tries to solve and its
elegant solution.

In March 2014, I wrote a Hey, Scripting Guy! Blog post, Understanding Streams,
Redirection, and Write-Host in PowerShell, which explained the output streams in
Windows PowerShell.



The outlier in the stream world has always been the much-maligned Write-Host
cmdlet. Windows PowerShell inventor, Jeffrey Snover decried it as Write-Host
Considered Harmful. Famously, in his 2012 Scripting Games commentary, Stop Using
Write-Host!, Windows PowerShell MVP and first follower, Don Jones, proclaimed
that Write-Host kills puppies. That’s a lot of high-powered condemnation for a
cmdlet.

It’s all about to change. With the advent of the information stream in Windows
PowerShell 5.0, Write-Host is being redeemed. Actually, it's being,
well…mainstreamed. And, Windows PowerShell 5.0 includes a new cmdlet,
Write-Information, that has the benefits of Write-Host without the costs.


WRITE-HOST AND STREAMS


The root of the problem is that in Windows PowerShell versions 1.0 through 4.0,
Write-Host output doesn’t go to a stream. It goes straight to the host program,
such as the console, ISE, or PowerShell Studio. What happens then is determined
by the host program, and it might vary.

Because Write-Host doesn't go to a stream, if you put Write-Host in a script,
the end-user can't suppress it, can't save it, and can't redirect it.

 * You can't suppress Write-Host output because there's no preference that
   silences it.
 * You can’t save Write-Host output in a variable, because the assignment
   operator uses the output stream. The Write-Host output is written to the host
   program, but the variable is empty.



 * You can't pass Write-Host output down the pipeline, because only the output
   stream goes down the pipeline.



 * You can't redirect Write-Host output, because redirection sends output from
   one stream to another, and Write-Host isn't part of any stream.




WRITE-HOST AND STREAM POLLUTION


Despite this very high-level condemnation, people kept using Write-Host,
precisely because it doesn't go to the output stream. Write-Host is
eco-friendly, because it doesn't pollute the output stream.

The underlying principle is that every command should generate one type of
output. For example, Get-Process returns Process objects, and Start-Job returns
PSRemotingJob objects.

You never want a command like the following, which returns process objects and a
string:



In its own sad way, Write-Host solves this problem. In this version, I replaced
Write-Output with Write-Host. Now this function writes a process object and a
string, but only the process object is written to the output stream. Typically,
the user sees the string, but it's not saved in the variable or passed down the
pipeline.




WRITE-INFORMATION AND THE INFORMATION STREAM


The dilemma was how to fix the harmful aspects of Write-Host (can't suppress,
capture, or redirect), but keep it from polluting the output stream. And of
course, the solution must be backward compatible.

This most elegant solution is provided by the information stream and the
Write-Information cmdlet. The information stream is a new output stream that
works much like the error and warning streams.



With these new features, you can write messages to the user without polluting
the information stream. And you can suppress the messages, capture them, save
them, and redirect them.

The information stream has a preference variable, $InformationPreference, with a
default value of SilentlyContinue, and a common parameter, InformationAction, to
override the preference for the current command. It also has an
InformationVariable common parameter that saves the stream content in the
specified variable.

The new cmdlet, Write-Information, provides information to the user without
polluting the output stream. I think of it as a do-over of Write-Host. Both
Write-Host and Write-Information write to the information stream, but they
behave differently, because Write-Host must be backward compatible.

Write-Information writes InformationRecord objects
(System.Management.Automation.InformationRecord) to the information stream. Its
output is determined by the $InformationPreference variable, which is set to
SilentlyContinue by default. So, by default, its output is suppressed.



To display a Write-Information message, change the default value of the
$InformationPreference variable, or use a value of Continue for the new
InformationAction common parameter.



Write-Host also writes InformationRecord objects to the information stream, but
it is not affected by the $InformationPreference variable or the
InformationAction common parameter. (Windows PowerShell 5.0 is still in preview,
so this might change.)



However, you can save the content of Write-Host and Write-Information output in
a variable by using the new InformationVariable common parameter.



Because they write to the information stream (stream #6), you can redirect the
output of Write-Host and Write-Information to a file. (Notice that redirecting
host output suppresses it. Windows PowerShell 5.0 is still in preview, so this
might change.)



You can also redirect output from the information stream (stream #6) to standard
output (stream #1). (For help, see about_Redirection.) Redirecting to standard
output lets you use the assignment operator.



Then you can pass content from the information stream down the pipeline, such as
to the Get-Member and Select-Object cmdlets.



Unless you intentionally redirect them, Write-Information and Write-Host
messages still don't pollute the output stream.

Now if someone was to write a function, such as Get-PowerShellProcess (and you
still should never do this), the information is suppressed by default and the
end-user could display the information without polluting the output stream. (I
had to enable cmdlet binding to get the common parameters.)




WRITE-HOST VS. WRITE-INFORMATION


As you adopt Write-Information, keep in mind that there are a few differences:

 * Write-Information responds to the values of the $InformationPreference
   variable and the InformationAction common parameter. Write-Host does not.
 * Write-Host has parameters that change its display, for example,
   ForegroundColor and BackgroundColor. Write-Information does not.



 * Write-Information has a Tags parameter like New-ModuleManifest and cmdlets in
   the AzureResourceManager module. Write-Host does not.



 * Write-Host takes value from the pipeline. Write-Information does not.



As you learn Windows PowerShell 5.0, play around with the information stream.
And the next time you're tempted to use Write-Host, use Write-Information
instead.

~June

Thanks, June!

I invite you to follow me on Twitter and Facebook. If you have any questions,
send email to me at scripter@microsoft.com, or post your questions on the
Official Scripting Guys Forum. See you tomorrow. Until then, peace.

Ed Wilson, Microsoft Scripting Guy 





DOCTOR SCRIPTO SCRIPTER, POWERSHELL, VBSCRIPT, BAT, CMD

Follow


Posted in ScriptingTagged getting started guest blogger June Blender PowerShell
5.0 Scripting Guy! Weekend Scripter Windows PowerShell


READ NEXT

PowerTip: Multiply Value in Variable and Store Results
Summary: Use Windows PowerShell to multiply the value stored in a variable and
store the results. (image)  How can I use Windows PowerShell to multiply the
value of...
Doctor Scripto
July 4, 2015
0 comment
PowerTip: Multiply Value in Variable and Store Results
Summary: Use Windows PowerShell to multiply the value stored in a variable and
store the results.(image)  How can I use Windows PowerShell to multiply the
value of a...
Doctor Scripto
July 4, 2015
0 comment


0 COMMENTS

Discussion is closed.

POWERSHELL RESOURCES

PowerShell Documentation

Scripting Forums

PowerShell Forums

PowerShell on TechCommunity

PowerShell.org - Community Resource

TOPICS

.csv.NET.NET Core.NET Framework2015 Holiday Series4.070-410Aaron
NelsonAccess.ApplicationACLsactivationActive DirectoryActive Directory
Application Mode (ADAM)ActiveX Data Objects (ADO)Adam BertramAdam DriscollAdam
HaynesAdmin First StepsADO.NETADSIAdvanced FunctionsAlan ByrneAlan MorrisAlex
Verboonand jobsAnders WahlqvistAndroidAndy
SchneideranonymousAntivirusApp-VapplicationsArrayArraysarrays hash tablesarrays
hash tables and dictionary objectsarrays hashtables and dictionary
objectsASCIIAshley McGloneAsia GandeckaASP.NET Coreassociators
ofAttributesAudioAuthorsAutomatic VariablesAutomationAzureAzure
AutomationAzureADbackground jobsbackupbackup and system restoreBartek
BielawskiBashbasic computer informationbasic hardware and firmwareBasic Hardware
informationbasic informationBasicsBATCHmanbatteries and power
suppliesBeginnerBen PearceBen VierckBest Practicebest practicesBhargav
ShuklaBill GrauerBill StewartBitLockerBITSBob StevensBoe ProxbreakpointBrent
FormanBrian HitneyBrian JackettBrian LalancetteBrian WilhiteBrian WrenBruce
PayetteBuck WoodyBuild your own cmdletC#CertificatecertificatesChad Millerchange
journalChendrayan VenkatesanChris BelleeChris CampbellChris ConteChris DentChris
WeaverChris WuChrissy LeMaireChristopher WeaverCIMClassesClaudia
Fergusonclient-side managementclient-side printingClint HuffmanClinton
KnightcloudCloud ServicesColorCOMCOM and DCOMComma and other deliminited
filesComma and other delimited filesComma separated and other delimited
filescommentscommunityCompare-Objectcompressed filescomputer
accountsComputersConfiguration ManagerConnectconsoleContinuous
DeliveryContinuous IntegrationCorey RothCredential GuardCryptographyCSV and
other delimited filesDACLS and SACLSDan ReistDan
SheehanDatadatabasesDataGriddatesdates and timesDave BishopDave WyattDavid
MoravecDavid O’BriendebugdebuggerdebuggingDebugging and
DiagnosticsDefenderDennis WhitneyDeployment and UpgradeDesktopdesktop
managementDesktop MgmtDHCPDHCP serverDia Reevesdialog
boxesdirectoriesDirectorydisk drives and volumesdisk quotasDisksDISMdisplaying
outputDNSDNS serverDockerDoctor ScriptoDomain ControllersdomainsDon GillDon
JonesDon WalkerDoug Finkedownloading filesed
wilsonEdgeeditorendpointenumEnumsEric Wrighterror handlingevent logsevent logs
and monitoringEventing and MonitoringEventsEvents and Loggingevents and
monitoringExcel spreadsheetExcel.ApplicationExchangeExchange 2010Exchange
OnlineExtensionsF#FacebookFAST ESP 5.3 SP3Filefilesfiles and
foldersfilesystemFileSystemObjectfirewallfoldersFormatting
outputfunctionsFundamentalsGary JacksonGary SiepserGeneral Managementgeneral
management tasksGeneral Mgmt TasksGeorges MaheuGershon LevitzGet-Randomgetting
startedGlyn CloughgraphicalgraphicsGreg LindsayGroup PolicyGroupinggroupsguest
bloggerGuestBloggerGUIhardwarehashhash tablesHashTableshashtables and dictionary
objectsHeath LawsonHelpHey Scripting GuyHistorical DebuggingHistoryholiday
2013Honorary Scripting GuysHyper-VHyperVIan FarrigniteIgnite 2015Ignite
2016IISIngo KarsteininputIntellisenseinternetInternet ExplorerInternet Explorer
7Internet SearchInvoke-RestMethodInvoke-WebRequestiOSIoTISEISE editingJakob
Gottlieb SvendsenJames BrundageJames KehrJames O’NeillJan Egil RingJason
HelmickJason HofferleJason MorganJason RybergJason WalkerJavaJD PlatekJeff
WoutersJeffery HicksJeremy EngelJim ChristopherjobsJoel BennettJoel StidleyJoel
VickeryJohn FerringerJohn SlackJon NewmanJonathan AllenJonathan MeddJonathan
TylerJonathan YongJosh AtwellJosh GavantJsonJudith HermanJune BlenderJustin
Hallk Scripting TechniquesKarl MitschkeKeith HIllKeith MayerKen McFerronKendal
VanDykeKevin KlineKlaus SchulteKory ThacherkorytLaerte JuniorLINUXlocal account
managementlocal accountslocal accounts and Windows NT 4.0 accountslocal user
account managementLog Analyticslog parserLogging and eventslogon
sessionslogsLogs and loggingLogs and monitoringloopingLYNCManagementMarc
CarterMarco ShawMark MorowczynskiMark SchillMark Tabladillomasking
passwordsmathMatt BongioviMatt GraeberMatt HesterMatt HitchcockMatt
TisdaleMatthew KerfootMCSEMDTMediaMessaging & Communicationmessaging and
communicationMetadataMichael BlumenthalMichael WellsMicrosoft 365Microsoft
AccessMicrosoft ExcelMicrosoft Exchange 2003Microsoft Exchange 2007Microsoft
Exchange 2010Microsoft OfficeMicrosoft OutlookMicrosoft PowerPointMicrosoft
VisioMicrosoft WordmigrationMike F RobbinsMike FalMike O'NeillMike PfeifferMike
StiersMini Scripting GamesMobilemoduleModule BrowsermodulesmonitoringMonitoring
and logsMSOMSmultimediaNano ServerNetwork Adapternetwork
adaptersnetworkingNicholas CainNicolas BlankNiklas GoudeNorman
DrewsNumbersObjectsODBCOfficeOffice 365Office 365 APIOffice 365 SitesOliver
Lipkauoperating systemOracleother Directory ServicesOUsOut-GridViewOutputpacket
tracespage filesparameterPartnerspasswordsPatrick MercierPaul GreeleyPaul
HiginbothamPaulo MorgadoPer Pedersenperformanceperipherals and devicespermission
and securitypermissionsPesterPhil Braniffpinvokepipelineplain-text
logsPodcastportsports and slotspower managementPowerCLIPowerShellPowerShell
3powershell 3.0PowerShell 4PowerShell 4.0Powershell 5PowerShell 5.0PowerShell
best practicesPowerShell GalleryPowerShell GetPowerTipPowerTip: Find Default
Session Config Connection in PowerShell Summary: Find the default session
configuration connection in Windows PowerShell. How can I determine what default
session configurationPrintprint serversPrint Servers Print Queues and print
jobsprinter ports drivers and
devicesPrintersprintingProcessprocessesProcmonprofileprofilespromptProvidersPSDrivesPSGalleryPSGetPSProvidersPSReadLinequery
completion serverqueuesRagnar HarperRaimund AndreeRavikanthRaymond
Mitchellreceiving inputRecycle BinReferenceRegExregistryregular
expressionsreliabilityremoteRemote EndpointremotingReportingReportsResource
Guideresource ownershipretrieving inputRhys CampbellRich PrescottRichard
DiphoornRichard SiddawayRob CampbellRobert RobeloRod ColledgeRODCRohn
EdwardsRolf MasuchRPCRSATRSSRSS feedsRudolf VeselyrunningRunspaceSANSchedule
Tasksscheduled taskscheduled tasksSchemaSCOM 2007 R2ScopeScott GeScript
AnalyzerScript BrowserScript Centerscript signingScripterScripti9ng
TechniquesScriptingScripting Games 2014Scripting Guy!Scripting
Techniquescripting techniquesscripting templatesScripting WifeSean KearneySean
McCownsearchSearchingsearching Active DirectorysecuritySelect-Stringsending
emailsending mailSeriesSerkan VarogluServer ApplicationsServer-Side
ManagementServer-Side updateserversservers WSUSService Packs and Hot
Fixesservice packs and hotfixesservicessessionsSeth BrandesShadow CopyShane
HoeyShane NelsonShannon Mashared folders and mapped drivesSharePointSharePoint
2010SharePoint OnlineShay Levyshell.applicationSherif TalaatShubert
SomerSiegfried Jagottsites and subnetsSkyDriveSMTP MailSnapshot
DebuggerSnippetsSoftwaresortingspecial folderssplattingSQLSQL 2012SQL ServerSQL
Server 2008SQL Server 2012startup and shutdownStefan RothStefan StrangerStephane
van GulickSteve JefferySteve MurawskiSteven MurawskistorageStreamsstringstring
manipulationStringsSusan FerrellSusan HillSysinternalsSystem CenterSystem
RestoreTaylor GibbTCP/IPTeamsTechEdTechEd 2014TechEd2012Teresa WilsonTerminal
ServerTerri DonahueTest ExperienceTestingTexttext filesText manipulationTFSThe
MAKThiyaguThomas LeeThomas RaynerThomas StringerTibor SoosTim Boltontime
syncTime SynchronizationTimeSpanTimothy WarnerTips and TricksTobias WeltnerTodd
KlindtTom MoserTom ShinderTome Tanasovskitop 20tracetracestranslationTrevor
SullivantroubleshootingTypesupdatesUpgradeuser accountsuser groupsusersusing the
Internetusing the webVariableVariablesVBVBScriptVBScript migrationVersionversion
informationvideovideo and displayVideosVinay PamnaniVirtual Machinesvirtual
serverVisual StudioVisual Studio 2017Visual Studio App CenterVisual Studio
CodeVisual Studio for MacVisual Studio IDEVisual Studio Live ShareVisual Studio
MarketplaceVisual Studio PreviewsVisual Studio SubscriptionsVisual Studio Tools
for AIVisual Studio Tools for XamarinVMMWalid MoselhyWeb pages and HTAsWeb
Serviceweb servicesWebinarWebsitesWeekend ScripterWei Hao LimWill AndersonWill
MartinWill SteeleWilliam StanekWin32Windows 10Windows 8Windows 8.1Windows
AzureWindows ExplorerWindows Management FrameworkWindows Media Player and
audioWindows NTWindows PEWindows PowerShellWindows PowerShell 3.0Windows
PowerShell 4.0Windows PowerShell 5Windows PowerShell 5.0Windows PowerShell
ISEWindows PowerShllWindows Server 2012Windows Server 2012 R2Windows Server
2016Windows To GoWindows UpdateWindows VistaWindows Windows
PowerShellWinNTWinRMWMIWordWord.ApplicationWorkflowWorkflowsWPFWPKwritingwriting
scriptsWshShellWSUSXamarinXMLxpathYan PanYuri DiogenesZachary LoeberZune and
other media devices

ARCHIVE

 * February 2021
 * January 2021
 * September 2020
 * December 2019
 * November 2019
 * October 2019
 * September 2019
 * August 2019
 * July 2019
 * November 2018
 * September 2018
 * August 2018
 * July 2018
 * June 2018
 * May 2018
 * April 2018
 * March 2018
 * February 2018
 * January 2018
 * December 2017
 * November 2017
 * October 2017
 * August 2017
 * July 2017
 * February 2017
 * January 2017
 * December 2016
 * November 2016
 * October 2016
 * September 2016
 * August 2016
 * July 2016
 * June 2016
 * May 2016
 * April 2016
 * March 2016
 * February 2016
 * January 2016
 * December 2015
 * November 2015
 * October 2015
 * September 2015
 * August 2015
 * July 2015
 * June 2015
 * May 2015
 * April 2015
 * March 2015
 * February 2015
 * January 2015
 * December 2014
 * November 2014
 * October 2014
 * September 2014
 * August 2014
 * July 2014
 * June 2014
 * May 2014
 * April 2014
 * March 2014
 * February 2014
 * January 2014
 * December 2013
 * November 2013
 * October 2013
 * September 2013
 * August 2013
 * July 2013
 * June 2013
 * May 2013
 * April 2013
 * March 2013
 * February 2013
 * January 2013
 * December 2012
 * November 2012
 * October 2012
 * September 2012
 * August 2012
 * July 2012
 * June 2012
 * May 2012
 * April 2012
 * March 2012
 * February 2012
 * January 2012
 * December 2011
 * November 2011
 * October 2011
 * September 2011
 * August 2011
 * July 2011
 * June 2011
 * May 2011
 * April 2011
 * March 2011
 * February 2011
 * January 2011
 * December 2010
 * November 2010
 * October 2010
 * September 2010
 * August 2010
 * July 2010
 * June 2010
 * May 2010
 * April 2010
 * March 2010
 * February 2010
 * January 2010
 * December 2009
 * November 2009
 * October 2009
 * September 2009
 * August 2009
 * July 2009
 * June 2009
 * May 2009
 * April 2009
 * March 2009
 * February 2009
 * January 2009
 * December 2008
 * November 2008
 * October 2008
 * September 2008
 * August 2008
 * July 2008
 * June 2008
 * May 2008
 * April 2008
 * March 2008
 * February 2008
 * January 2008
 * December 2007
 * November 2007
 * October 2007
 * September 2007
 * August 2007
 * July 2007
 * June 2007
 * May 2007
 * April 2007
 * March 2007
 * February 2007
 * January 2007
 * December 2006
 * November 2006
 * October 2006
 * September 2006
 * August 2006
 * July 2006
 * June 2006
 * May 2006
 * April 2006
 * March 2006
 * February 2006
 * January 2006
 * December 2005
 * November 2005
 * October 2005
 * September 2005
 * August 2005
 * July 2005
 * June 2005
 * May 2005
 * April 2005
 * March 2005
 * February 2005
 * January 2005
 * December 2004
 * November 2004
 * October 2004
 * September 2004
 * August 2004


STAY INFORMED

By subscribing you agree to our Terms of Use and Privacy Policy

 * 
 * 
 * 




CODE BLOCK

×
Paste your code snippet
Cancel Ok

Feedback

What's new
 * Surface Laptop Studio 2
 * Surface Laptop Go 3
 * Surface Pro 9
 * Surface Laptop 5
 * Surface Studio 2+
 * Copilot in Windows
 * Microsoft 365
 * Windows 11 apps

Microsoft Store
 * Account profile
 * Download Center
 * Microsoft Store support
 * Returns
 * Order tracking
 * Certified Refurbished
 * Microsoft Store Promise
 * Flexible Payments

Education
 * Microsoft in education
 * Devices for education
 * Microsoft Teams for Education
 * Microsoft 365 Education
 * How to buy for your school
 * Educator training and development
 * Deals for students and parents
 * Azure for students

Business
 * Microsoft Cloud
 * Microsoft Security
 * Dynamics 365
 * Microsoft 365
 * Microsoft Power Platform
 * Microsoft Teams
 * Microsoft Industry
 * Small Business

Developer & IT
 * Azure
 * Developer Center
 * Documentation
 * Microsoft Learn
 * Microsoft Tech Community
 * Azure Marketplace
 * AppSource
 * Visual Studio

Company
 * Careers
 * About Microsoft
 * Company news
 * Privacy at Microsoft
 * Investors
 * Diversity and inclusion
 * Accessibility
 * Sustainability

Your Privacy Choices Opt-Out Icon Your Privacy Choices Your Privacy Choices
Opt-Out Icon Your Privacy Choices
 * Sitemap
 * Contact Microsoft
 * Privacy
 * Manage cookies
 * Terms of use
 * Trademarks
 * Safety & eco
 * Recycling
 * About our ads
 * © Microsoft 2024