Quantcast
Channel: TechNet Blogs
Viewing all 34890 articles
Browse latest View live

Available to Windows 10 Insiders Today: Access to published container ports via “localhost”/127.0.0.1

$
0
0

Until now, a lingering limitation on Windows 10 has prevented access to published ports for containers via "localhost" or 127.0.0.1 (a.k.a. loopback). What this meant, was that if you had, say, a container running as an IIS Web server and exposing content through port 80 of your host machine, you wouldn't be able to access that content locally, using the "http://localhost/" or even "http://127.0.0.1/".

But at last, this limitation has been removed! Beginning with Build 17025, available today to Windows Insiders, it's now possible on Windows 10 to access your containers via their locally published ports using "localhost" or 127.0.0.1.

Although simple, this is a little tedious to visualize, so let's lay it out with an example. The image below shows a container running on its host, with content published to host port 8080. In the past, to access this content developers on Windows 10 have had to use either their host's external IP address or the internal IP address of their container--so, in this example, "http://10.137.196.122:8080/" or "http://172.18.23.136:8080/". Now, however, we have added the plumbing on Windows 10 enable "http://localhost:8080/" and "http://127.0.0.1:8080/" as additional ways to access your published containers locally.

Ready to try this out? This functionality is included in the latest Windows 10 Insider Preview Build 17025.  If you're already a Windows Insider running Build 17025, you have this capability now! If not, click here to learn more about the Windows Insider program and sign up to start receiving Windows 10 Preview Builds.

 

 

 


PornHub-Netzwerk verbreitet Ad-Fraud-Malware

$
0
0

Der Security-Anbieter proofpoint beschreibt in einem Blog-Beitrag eine neue Malvertising-Attacke, die durch Fake-Meldungen zu verfügbaren Browser-Updates die Anwender zum Download von Ad-Fraud-Software zu bewegen versucht. Die entsprechenden Fenster poppten auf den Seiten des PornHub-Netzwerks auf, für die Verbreitung wurde das Werbenetzwerk von TrafficJunky genutzt. Beide Anbieter sortierten die infizierten Anzeigen sofort nach Bekanntwerden des Angriffs aus. Dennoch lohnt es sich, sich das Schema dieser Attacke einmal genauer anzusehen.

Organisiert wurde sie offenbar von der KovCoreG Gruppe, die durch die Ad-Fraud-Malware Kovter bekanntgeworden ist. Ein Beitrag im amerikanischen Windows Security Blog beschreibt die Funktionsweise dieses Programms. Während die originale Kovter-Version ein angebliches Update für Adobe Flash als Lockmittel verwendete, bietet der Nachfolger eine Aktualisierung für den Browser an und passt sich dabei dem vom Anwender aktuell geöffneten Programm an.

Passgenau pro Browser serviert

Die Analysten bei proofpoint konnten Varianten der Attacke für Microsoft Edge/Internet Explorer, Mozilla Firefox und Google Chrome identifizieren. Die Software arbeitet also mit einem Filter, um jedem Anwender die richtige Update-Meldung für seinen Browser präsentieren zu können. Und sie setzt noch weitere Filter ein, mit denen sie die Angriffsziele auf bestimmte Provider und geographische Regionen beschränkt. Zusätzliche Abfragen ermitteln die Zeitzone, das Bildschirmformat, die Sprache und den Verlauf des aktuellen Browser-Fensters. So verhindert die Malware zum einen, dass die Update-Meldung Anwender erreicht, die selbst nicht Englisch sprechen und andere Sprachversionen der genannten Browser installiert haben, und erhöht damit die Erfolgschancen der Attacke. Zum anderen erzeugt sie aus diesen Informationen eine eindeutige ID des Rechners.

Nimmt der Anwender nun die Einladung zum Aktualisieren seines Browsers an, ruft die Software einen JavaScript-Code auf, der eine Reihe von Dateien herunterlädt und installiert. Sie führen anschließend mit im Hintergrund laufenden Browser-Instanzen einen Click-Fraud (Klickbetrug) aus, täuschen also Klicks auf Werbebanner vor, die tatsächlich niemand gesehen hat. Ebenso gut könnte auf diesem Wege allerdings auch Ransomware verteilt werden. Die zuvor erwähnte ID dient dabei dem Zweck, Malware-Analysten den Zugriff zu den Hostservern so schwer wie möglich zu machen.

Updates nur aus sicherer Quelle

Die neue Kovter-Variante zielt vor allem auf Anwender in den USA, Großbritannien, Kanada und Australien. Aber auch deutsche Anwender waren bereits Ziel von Angriffen, die mit Fake-Updates arbeiteten. Sie boten beispielsweise Aktualisierungen für WhatsApp, Windows oder den Flash Player an, installierten jedoch tatsächlich Abofallen, Ransomware oder Werbeanzeigen. Anwender sollten sich bewusst sein, dass notwendige Programm- und Betriebssystem-Updates niemals über Websites ermittelt werden. Zudem sollten sie diese Aktualisierungen nur über interne Mechanismen wie etwa das Windows-Update beziehungsweise die App-Stores von Apple und Google herunterladen.

Gastbeitrag von Michael Kranawetter, National Security Officer (NSO) bei Microsoft in Deutschland. 

Available to Windows 10 Insiders Today: Access to published container ports via “localhost”/127.0.0.1

Updated M365 Collaboration Partner Playbook

$
0
0

Nick Johnson, PTS

 

Greetings Partners!

Today I'm excited to share that the newly updated Microsoft 365 Collaboration Partner Playbook—designed to help you build new practices and generate additional revenue based on Microsoft 365—is now available.

The playbook provides guidance on several key topics, including:

  • Microsoft Teams as the hub for teamwork
  • New collaboration scenarios to speed practice development
  • New revenue opportunities from Forrester Total Economic Impact study
  • How to elevate conversations with business decision makers
  • How the Firstline Workforce can expand your opportunities
  • The value of industry-targeted offerings

For anyone leading or building a Modern Workplace practice, this is an extremely valuable resource.

Download the new playbook today

Stay informed and engaged in the US Partner Community

$
0
0

Chinmayi Bhavanishankar - US Partner Experience Lead

The new era of business is here as companies continue on their digital transformation journeys. To address the partner-centered $4.5 trillion transformation opportunity, Microsoft continues to evolve its partner program, the Microsoft Partner Network, to provide the resources you need to build and sustain a profitable cloud practice, connect with customers and prospects, and differentiate your business. In the US Partner Community, we’ll connect you to those resources, as well as to subject-matter experts from across the Microsoft US Partner Team.

At Microsoft Inspire 2017, Microsoft CEO Satya Nadella laid out the path to enabling digital transformation through four solution areas. Judson Althoff, Microsoft Executive Vice President, Worldwide Commercial Business, focused the four pillars of digital transformation. Customer-focused, industry-focused, and partner-powered, these priorities provide a guideline for where you’ll see the US Partner Team align its people, programs, and investments.

In this online guide, I’ll share what I think are the best links where you can stay informed and engage with the US Partner Community and Microsoft. Choose your favorite way (or ways) to get the news and information relevant to your business and areas of interest. In addition to this post, you can download our slide that lists and links to these resources.

Partner newsletter and training schedule

The US Partner Team works with other Microsoft US teams, with the product teams, and with our worldwide counterparts to identify, curate, and publish partner-related news and information. These two online publications are regularly updated to provide you with timely and actionable content:

  • US partner news online – this weekly post brings together product and program announcements, new resources, and training opportunities, all with a partner focus. Subscribe to the US Partner Community blog by email or RSS feed
  • Hot Sheet training schedule – this monthly post is updated frequently as we learn about new partner courses, webcasts, office hours, and community calls. You’ll get a 6- to 8-week outlook, so you can plan ahead.

Follow us on Twitter and Facebook

We provide timely updates about US partner-relevant news and information throughout the business day on Twitter and Facebook. We appreciate your likes, shares, and comments.

 

@msuspartner - The US Partner Community Twitter channel covers all partner-relevant topics

@mslearningcurve - The US Partner Enablement channel provides notifications about partner-related training courses, webcasts, and calls

Follow the US Partner Community page on Facebook

In addition to our primary social channels on Twitter and Facebook, we post community calls to YouTube for on-demand viewing, and continue discussions on Linkedin.

Practice-building technical communities

We’ve simplified the number of technically focused communities we offer to the US Partner Community that help you start, build, and extend your Microsoft practice. These communities are led by technical subject-matter experts, and activities for each include blog posts, community calls, and Yammer group discussions.

Community Yammer* Community calls Time Registration
Modern Workplace – Productivity Modern Workplace Technical Community Second Friday of every month 1 PM EST aka.ms/usmodernworkplacecall
Modern Workplace – Windows & Devices Modern Workplace Technical Community Fourth Tuesday of every month 1 PM EST aka.ms/usmodernworkplacecall
Modern Workplace - Security Modern Workplace Technical Community Third Tuesday of every month 1 PM EST aka.ms/usmodernworkplacecall
Business Applications Business Applications Technical Community Second Tuesday of every month 12 PM EST aka.ms/usbusinessapplicationscall
Applications & Infrastructure Applications & Infrastructure Technical Community Third Friday of every month 1 PM EST aka.ms/usappsinfra
Data & Artificial Intelligence (AI) Data & AI Technical Community First Friday of every month 1 PM EST aka.ms/usdataAIcall
Open Source Solutions Open Source Solutions Technical Community Fourth Friday of every month 1 PM EST aka.ms/usosscall

*If you haven’t joined the US Partner Yammer Community yet, please request an invite at https://aka.ms/uspyammer

The US Partner Community blog brings together all US Partner related articles, information, and training calendar in one place, and is yet another way for you to stay updated as a Microsoft US Partner.

Business-oriented communities

Community Yammer* Community calls Time Registration
MPN 101 - Simplifying the partner program – one topic at a time MPN 101 community Every Wednesday 12:30 PM EST aka.ms/usmpn101calls
SMB Partners - Resources to help you serve your SMB customers SMB Partner Insider First Wednesday of every month 12:00 PM EST Community calls

Join the US Partner Community Yammer network

With more than 16,000 Microsoft and partner members, our Yammer network offers all US partners an opportunity to get just-in-time news and information and connect with Microsoft and other partners. You are encouraged to like, comment, and ask questions in the community—both Microsoft and partner subject-matter experts are happy to share their knowledge. One-page guide

Step 1

Join Yammer at yammer.com, and activate your account. If your company uses Yammer internally, join that network first.

Step 2

Request an invitation to join the US Partner Community Yammer network at yammer.com/msuspartner.

  • You must join this network with an email address from a corporate domain—public domains like Hotmail, Outlook.com, Gmail, Yahoo, Live.com, etc. will not be accepted
  • Email addresses must be for individuals, not for entities or teams (e.g., “salesteam@partnername.com” will not be approved)
  • We check for invitation requests to our community several times a day, and typically send invitations (by email) within a couple of hours on weekdays
  • Accept the invitation by clicking through the link provided in the email, and you will be a member of the US Partner Community Yammer network

Step 3

Find, join, and participate in groups that match your areas of interest. In addition to the Yammer groups above for our practice-building and business-oriented communities, consider joining these groups:

NEW! Collaboration & Cloud Voice technical journeys + new services

$
0
0

You can now access the Collaboration and Cloud Voice technical journeys online including three new one-on-one consultations and one technical training webcast. You’ll find the Office 365 technical presales and deployment services within the new Collaboration tab on the MPN page below. Accelerate your technical skills to sell and deploy solutions that expand across Exchange Online, SharePoint Online and Skype.

Get started today at aka.ms/CollaborationTechJourney.

New technical services focused on Collaboration:

What’s New in Office 365 (L200-300)
As the Microsoft Office 365 platform continues continue to rapidly evolve, we’ve designed this technical training webcast series to help MPN partners stay up-to-date on the latest developments. You’ll receive important news and updates regarding new service availability, feature updates or releases as they pertain to Office 365. The information presented will be mostly technical in nature, but occasionally our Microsoft technical experts will provide marketing and business news that is of interest to partners building a cloud practice. During this webcast you’ll also have the opportunity to ask questions as they may pertain to your practice.

Exchange Online Presales Consultation (L200-300)
Receive technical guidance as you pitch and close Exchange Online deals during this one-on-one consultation. Build your technical knowledge of the capabilities within Exchange Online, enabling you to better propose and plan the right customer solutions and mitigate potential issues along the way. Our Microsoft technical experts, will provide a customized experience to help you with customer presales and deployment questions and address any specific concerns you may have. Topics covered during this consultation can include Exchange Online identity management, security and compliance, migration, product demos, and more.

SharePoint Online Presales Consultation (L200-300)
Successfully pitch and close SharePoint Online deals with technical guidance as you plan and design SharePoint Online customer solutions. During this one-on-one consultation, a Microsoft expert will guide you through the advanced functionality of SharePoint Online and provide guidance on customer presales questions and any concerns you may have. You’ll walk away with a better understanding of how to propose and plan the right customer solutions and mitigate potential issues along the way. SharePoint Online topics covered during this consultation can include file migration, information architecture, OneDrive for Business and external sharing.

SharePoint Online Deployment Consultation (L200)
Is your customer ready to deploy SharePoint Online as part of their Office 365 solution? Let our Partner Technical Consultants help you ensure a smooth deployment process during this one-to-one consultation. Whether you need an architecture review or assistance during the deployment itself, our Microsoft experts will cover the most complex scenarios that you may encounter. We’ll help you ensure a smooth and successful deployment by covering the various deployment options available to your customer. (Cost 5 partner advisory hours)

 

New technical services focused on Cloud Voice:

Skype for Business Online Starter Kit Consultation (L200-300)
Expand your Skype for Business Online technical knowledge and receive personalized guidance to help with customer deployments and any specific questions you may have. As a perfect follow-up from the Introduction to Skype for Business Fundamentals training, this starter kit will build on your foundational knowledge and go deeper into specific topics that can help you with potential deployments. You’ll receive one-on-one technical assistance from a Partner Technical Consultant regarding Skype for Business Online features, plans, value proposition and deployment. (Cost 5 partner advisory hours)

Skype for Business Online Presales Consultation (L200-300)
Receive technical guidance as you design a Skype for Business plan for your customer’s solutions during this one-on-one consultation. Dive deeper into the functionality of Skype for Business Online with personalized guidance to help with customer presales questions and any specific concerns you may have. You’ll walk away with a better understanding of how to propose and plan the right customer solutions and mitigate potential issues along the way. Some topics that may be covered include Skype for Business Online features, plans, value proposition and deployment.

 

Don’t forget to check out the full suite of technical trainings, consultations and learning options available for Collaboration and Cloud Voice by visiting aka.ms/CollaborationTechJourney.

Time is running out! Technical promo for App Dev Partners ends soon!

$
0
0

Are you an app developer? Don’t miss this opportunity! Take advantage of the promotion to access several different technical consultations as you plan, build and deploy your apps – at no cost through December 31, 2017. And when you are ready to publish your app, get technical advice on the various marketplaces and technical requirements by requesting the Microsoft Marketplaces Consultation.

Request a technical consultation today!

  1. Develop apps on Azure: http://aka.ms/AppDevAzure
  2. Develop apps for Office 365: http://aka.ms/AppDevOffice365

Once the promotion ends, you will need to use your MPN benefits (Partner Advisory Hours) to access the technical consultations.

Office 365: Mail flow delays through third party SPAM gateways…

$
0
0

This week I had a customer present with an interesting issue.  They have a partner company they work with that users a third party spam filtering gateway prior to allowing mail into their on premises environment.  They were observing that emails to this partner company were often delayed.  When engaging with the partner company it was determined that their mail was being greylisted by the third party device.  The reason for the grey listing was due to the fact that the server advertised in the EHLO did not match the name of the server making the underlying connection.

 

It is not uncommon that the server name listed in the EHLO string does not match the server that is making the underlying outbound connection.  If we were to compare this to on premises concepts I would have a series of servers that act as my mail bridgeheads.  These servers would be subscribed to an outbound send connector – and that send connector would have a fully qualified domain name on it.  Regardless of which outbound bridge head was utilized it would always connect to the remote host and advertise the same EHLO name that would apply to the group through the send connector configuration.

 

In Office 365 we have a very similar concept.  Our array of bridgeheads each have individual server names and publically routable IP addresses assigned to them.  The names also are available in reverse DNS such that performing a reverse DNS query against the connections IP address would return the name of the individual bridge head making the connection.  When the individual bridgehead connects to a remote SMTP service it issues an EHLO command that represents a namespace that is assigned to a group of servers.  This namespace is resolvable also and also has it’s own corresponding DNS entries.  Let’s take a look at a sample.

 

I have addressed an email to a user at hotmail.com.  The bridge head that has picked up the connection is NAM01BR5.protection.outlook.com with IP address 192.168.200.1.  When connecting to the MX record for hotmail.com an EHLO is issued.  In this case EHLO NAM01.protection.outlook.com 172.16.16.1.  Notice that NAM01.protection.outlook.com is not NAM01BR5.protection.outlook.com.  In this case the third party gateway performs a reverse DNS lookup on the connecting IP address 192.168.200.1 and discovers that the host connecting is NAM01BR5 and not NAM01.  When this discover is made the solution determines that a SPAM rule has been violated – and bans the connection for 15 minutes then allowing the mail to go through.

 

Given that it is not uncommon that the EHLO domain advertised does not match the underlying connection this type of checking may be slightly aggressive.  Unfortunately on the Office 365 side the administrator cannot control this therefore all of their email will be delayed by 15 minutes until the third party addresses this configuration.


For Microsoft Partners: Six ways to help your customers to get value from Data

$
0
0

Are you working with customers interested in Data, Analytics or IoT project? Do you feel that you don’t have enough expertise to win the deal or deploy the solution? We have Canadian partners that can help you and your customer learn about the solution, deliver an assessment, test drive the solution and deploy the project to drive more Azure Data Services consumption & SQL Revenue!

Learn more: www.aka.ms/DataSix

clip_image002

Office 365: Create a report of distribution group usage…

$
0
0

Occasionally we receive customer requests for generation of report data.  Today I received a request where the customer wanted to generate a report of distribution list utilization.  In essence they wanted to understand which distribution lists in their environment were in use.  It sounds like the goal would be to eventually clean up those distribution lists that were not actually being utilized while retaining distribution lists that are in use.

 

I’m all in favor of a clean GAL – I work with plenty of customers who still seem to have objects around from Exchange 4.0 – so anything I can do to help with the cleanup effort I’m all for.

 

We do not have a precanned report that allows you to analyze distribution list utilization.  So any form of analysis would force us to get creative.  My idea for solving this particular question was to utilize the message tracking logs.  Since the live message tracking logs contain the last three days worth of message tracing events within Office 365 – we could potentially scan the logs for recipients that were distribution lists and see what we find.  A historical search would probably not be particularly useful since the number of searches were throttled.

 

In full disclosure I ran this in my lab – which only has a few distribution lists and a few message tracking events.  Your success in a larger environment may vary.

 

The first step is to gather the groups into a variable.

 

$groups=Get-DistributionGroup -ResultSize unlimited

 

This should result in the $groups variable containing a list of groups to process.

 

$groups

Name                  DisplayName           GroupType PrimarySmtpAddress
----                  -----------           --------- ------------------
All                   All                   Universal All@contoso.com
Board Members         Board Members         Universal Board@contoso.com
Employees             Employees             Universal Employees@contoso.com
EOC-Alert             EOC-Alert             Universal EOC-Alert@contoso.com
TestDL                MigratedDl-TestDL     Universal MigratedDl_8cace652-98f1-4ca9-a2d9-f30f29abffe1_@FortMillRescu...
Office365Notification Office365Notification Universal Office365Notification@contoso.com

 

Once we have the groups in a variable we can begin the process of searching the message tracking logs. 

 

PS C:> $groups | %{Get-MessageTrace -RecipientAddress $_.primarysmtpaddress ; write-host “Processing Group” + $_.primarySMTPAddress ; Start-Sleep -Milliseconds 500} | export-csv -Path C:Tempoutput.csv –Append

 

Note that I have incorporated a sleep into our get command to help throttle the request for message tracing data and hopefully relieve some stress on our powershell throttling budget.  In addition I have utilize the append parameter with the CSV file.  I did this assuming that you’d run this maybe once a week for a month to gather some relevant data over 30 days.  This allows that data to be appended to the CSV file.  The write host will provide output to the console on the group being processed to provide some form of process tracking.

 

PS C:> $groups | %{Get-MessageTrace -RecipientAddress $_.primarysmtpaddress -Verbose; write-host "Processing Group" + $_.primarySMTPAddress ; Start-Sleep -Milliseconds 500} | export-csv -Path C:Tempoutput.csv -Append
Processing Group + All@contoso.com
Processing Group + Board@contoso.com
Processing Group + Employees@contoso.com
Processing Group + EOC-Alert@contoso.com
Processing Group + MigratedDl_8cace652-98f1-4ca9-a2d9-f30f29abffe1_@contoso.onmicrosoft.com
Processing Group + Office365Notification@contoso.com

 

Opening the CSV file in notepad we can validate that information is contained for each of the recipients.

 

#TYPE Deserialized.Microsoft.Exchange.Management.FfoReporting.MessageTrace
"PSComputerName","RunspaceId","PSShowComputerName","Organization","MessageId","Received","SenderAddress","RecipientAddress","Subject","Status","ToIP","FromIP","Size","MessageTraceId","StartDate","EndDate","Index"
"ps.outlook.com","e55f3262-ed9d-4d6a-8894-6754f34dc22b","False","contoso.onmicrosoft.com","<FEA02074-3006-4AEA-A0E2-43D47593713B@contoso.com>","11/6/2017 2:52:00 PM","bmoran@contoso.com.org","all@contoso.com.org","Tuesday & Wednesday Night Driver","Expanded",,"74.126.52.144","19398","7731ffda-9297-461a-a0e3-08d52525ef68","11/5/2017 1:00:27 AM","11/7/2017 1:00:27 AM","0"
"ps.outlook.com","e55f3262-ed9d-4d6a-8894-6754f34dc22b","False","contoso.onmicrosoft.com","<BN6PR06MB3491B192326AE8CFC6BAC738C3530@BN6PR06MB3491.namprd06.prod.outlook.com>","11/5/2017 8:16:40 PM","tmcmichael@contoso.com.org","all@contoso.com.org","Monday, Tuesday, and Wednesday","Expanded",,"2001:4898:8010:1::1ef","37249","067dc5b4-c38f-4c29-2a1b-08d5248a200a","11/5/2017 1:00:27 AM","11/7/2017 1:00:27 AM","1"
"ps.outlook.com","e55f3262-ed9d-4d6a-8894-6754f34dc22b","False","contoso.onmicrosoft.com","<CAPq5dUQaYMxzSZuryF6-T9P0aBipxkWEj0CfzeEd6Wv-O8gQkA@mail.gmail.com>","11/6/2017 3:59:42 PM","brian@contoso.com","board@contoso.com.org","Board Meeting Reminder at Station 1","Expanded",,"209.85.128.180","31479","9eeb9375-7128-452c-0909-08d5252f646a","11/5/2017 1:00:28 AM","11/7/2017 1:00:28 AM","0"

 

Now that we have the information regarding the DLs that have been sent to – it would be helpful if this data was in a more usable format.

 

We can import the CSV file into a working variable.

 

$data=Import-Csv -Path C:Tempoutput.csv

 

The variable now holds the data to manipulate moving forward.

 

PS C:> $data

PSComputerName   : ps.outlook.com
RunspaceId       : e55f3262-ed9d-4d6a-8894-6754f34dc22b
Organization     : contoso.onmicrosoft.com
MessageId        : <FEA02074-3006-4AEA-A0E2-43D47593713B@contoso.com>
Received         : 11/6/2017 2:52:00 PM
SenderAddress    : bmoran@contoso.com
RecipientAddress : all@contoso.com
Subject          : Tuesday & Wednesday Night Driver
Status           : Expanded
ToIP             :
FromIP           : 74.126.52.144
Size             : 19398
MessageTraceId   : 7731ffda-9297-461a-a0e3-08d52525ef68
StartDate        : 11/5/2017 1:00:27 AM
EndDate          : 11/7/2017 1:00:27 AM
Index            : 0

PSComputerName   : ps.outlook.com
RunspaceId       : e55f3262-ed9d-4d6a-8894-6754f34dc22b
Organization     : contoso.onmicrosoft.com
MessageId        : <BN6PR06MB3491B192326AE8CFC6BAC738C3530@BN6PR06MB3491.namprd06.prod.outlook.com>
Received         : 11/5/2017 8:16:40 PM
SenderAddress    : tmcmichael@contoso.com
RecipientAddress : all@contoso.com
Subject          : Monday, Tuesday, and Wednesday
Status           : Expanded
ToIP             :
FromIP           : 2001:4898:8010:1::1ef
Size             : 37249
MessageTraceId   : 067dc5b4-c38f-4c29-2a1b-08d5248a200a
StartDate        : 11/5/2017 1:00:27 AM
EndDate          : 11/7/2017 1:00:27 AM
Index            : 1

 

With the data in a variable – we can utilize the sort method to generate a list of the unique recipients found.

 

PS C:> $data | select-object recipientaddress -Unique

RecipientAddress
----------------
all@contoso.org
board@contoso.org
eoc-alert@contoso.org
office365notification@contoso.org

 

This data can also be exported to CSV file for further analysis using the export-csv command.

 

This may serve as a method to attempt to report on the distribution lists that are in use within an Office 365 tenant.  You can also use the same process for modern groups by replacing get-distributionGroup with get-unifiedGroup.

System Center Configuration Manager クライアントがインストールされた PC でマスター イメージを取得する手順 (ワークグループ対応版)

$
0
0

皆様、こんにちは。System Center Configuration Manager サポート チームです。

今回は System Center Configuration Manager クライアントがインストールされた PC でマスター イメージを取得する手順をご紹介します。同様の手順については、こちらの技術情報でもご紹介しておりますが、本記事では展開後にドメインに参加せず、ワークグループ端末として利用する場合も考慮した手順であり、当サポート部門でもご案内した実績が多い手順でもありますので、お役立ていただけますと幸いです。なお、再イメージングする手順につきましては、次のブログ記事がお役立ていただけますので、こちらも合わせてご確認ください。

 

System Center Configuration Manager クライアントがインストールされた PC でマスター イメージを再取得する手順

 

対象製品

System Center 2012 Configuration Manager

System Center 2012 R2 Configuration Manager

System Center Configuration Manager Current Branch / LTSB

 

手順

・前提条件

参照コンピューターは、SCCM サーバーとの通信ができない環境にした上で、下記手順を実施します。これは、準備中にサイト コードが割り当てられてしまうことを念のために防ぐためです。また、ネットワーク未接続の状態にすることは必須要件ではないので、サイト コードに割り当てられないようになっていることが担保できれば接続していても問題はございません。

 

・手順

次の手順を実施して、サイト コードをクリアし、一意の情報を削除してから、マスター イメージを採取します。

1. サイト コード未割り当ての状態でエージェントをインストールする
2. SMS Agent Host サービスの停止とスタート アップの種類の変更
3. SCCM で使用する自己署名証明書を削除する
4. SCCM 独自の信頼キーと管理ポイントの証明書を削除する
5. SMSSLP または DNSSUFFIX のレジストリ値を設定する (任意)
6. SMS Agent Host サービスのスタート アップの種類の変更

7. マスターイメージの採取

5. の手順は SCCM 用に AD スキーマを拡張したドメイン環境に所属するクライアントでは必要ありません。各手順の詳細は以下の通りです。

 

1. サイト コード未割り当ての状態でエージェントをインストールする

以下の手順にて、サイト コードが "未割り当て" の状態でエージェントのセットアップを行います。

1) サイト サーバーより、SCCM インストール フォルダー 配下に存在する Client フォルダーを
コピーし保存します。インストール フォルダーの初期設定は以下になります。

Program FilesMicrosoft Configuration ManagerClient

2) 参照コンピューターにローカル管理者権限をもつユーザーでログインします。
3) 項番 1) でコピーした Client フォルダーを、クライアント上の任意のフォルダーに格納します。
4) サイト サーバーと通信できないようにするため、ネットワーク ケーブルを抜きます。
5) [管理者として実行] にてコマンド プロンプトを開き、cd コマンドでクライアントに格納した Client フォルダーに移動します。
6) 以下のコマンドを実行します。

ccmsetup.exe
※オプションなしで ccmsetup.exe を実行することにより、"未割り当て" の状態でエージェントがセットアップされます。

7) タスクマネージャーを起動して [プロセス] タブにて ccmsetup.exe が表示されなくなるまで待ちます。
8) [コントロール パネル] -> [システムとセキュリティ] -> [Configuration Manager] を開き、
以下のようにサイト コードが "未割り当て" の状態であることを確認します。

[コンポーネント] タブ : 「CCM 通知エージェント」以外のすべての項目が「インストール済み」であることを確認します。
※ 「CCM 通知エージェント」は「無効」になります。
[サイト] タブ : 「現在の割り当てサイト コード」が空欄であることを確認します。

 

2. SMS Agent Host サービスの停止とスタート アップの種類の変更

[管理ツール] - [サービス] を起動し、SMS Agent Host サービスを停止します。また、マスター イメージ採取前に自動でサービスが起動しないように、右クリックしてプロパティを開き、スタートアップの種類を [手動] に変更します。

 

3. SCCM で使用する自己署名証明書を削除する

以下の手順で自己署名証明書を削除します。

1) コマンド プロンプトを開き、"mmc" を入力して実行します。
2) [ファイル] - [スナップインの追加と削除] をクリックします。
3) 左ペインから [証明書] をクリックして [追加] ボタンをクリックします。
4) "コンピューター アカウント" にチェックを入れて、[次へ] をクリックします。
5) "ローカル コンピューター" にチェックし、[完了] をクリックします。
6) 右ペインに "証明書(ローカル コンピューター)" が追加されていることを確認し [OK] をクリックします。
7) 左ペインにて、[証明書] - [SMS] - [証明書] を選択します。
8) 中央ペインに表示された 2 つの "SMS" 証明書に対して、それぞれ右クリックして [削除] を選択します。
「選択された証明書を永久的に削除しますか?」というメッセージが表示されますので、[はい] を選択します。
9) [ファイル] - [終了] をクリックします。「コンソールの設定を コンソール1 に保存しますか?」というメッセージが表示されますので、[いいえ] を選択して、mmc を終了します。

 

4. SCCM 独自の信頼キーと管理ポイントの証明書を削除する

エージェントのインストール完了後に、もしネットワークに接続して、SCCM サーバー(管理ポイント サーバー) との通信が可能となった場合、参照コンピューターが、SCCM で使用する信頼キーと管理ポイントの証明書を WMI の中に保持した状態となる可能性があります。

この場合、参照コンピューターに保存されている信頼キーや管理ポイントの証明書を削除する必要があります。wbemtest より、WMI 名前空間 "rootccmlocationservices" に接続できない場合は、SCCM サーバーと一度も接続がされていないため、問題ありません。接続できる場合は、情報を削除するため、以下の手順を実施してください。

以下の内容をサンプルとしてスクリプトを作成し、vbs ファイルとして保存します。本スクリプトを実行することで、信頼キーや管理ポイントの証明書も削除されます。

----- サンプルここから -----
dim oSMSClient
dim objLocator
dim objService

set objLocator = CreateObject("WbemScripting.SWbemLocator")
set objService = objLocator.ConnectServer(".", "rootccmlocationservices") set keys = objService.ExecQuery("select * from TrustedRootKey")

for each k in keys
k.delete_()
next
----- サンプルここから -----

スクリプトを作成した後、参照コンピューターでコマンド プロンプトを "管理者として実行" にて起動し、
以下のコマンドを実行します。

※) C:Temp にスクリプト DeleteTRK.vbs を保存した場合
cd C:Temp
cscript DeleteTRK.vbs

スクリプト実行完了後、以下の手順で、正常に信頼キーや証明書が削除されたことを確認します。

1) コマンド プロンプトを "管理者として実行" にて起動して wbemtest を実行し、"rootccmlocationservices" 名前空間に接続します。
2)「スーパークラス名の入力」はブランクのまま、「クラスの列挙」を "再帰" を有効にして実行します。
3) 一覧から "TrustedRootKey" を選択し、ダブルクリックして開きます。
4) 開いた画面で「インスタンス」をクリックします。
5) インスタンスが存在しないことを確認します。

 

5. SMSSLP または DNSSUFFIX のレジストリ値を設定する (任意)

ccmsetup.exe をオプションなしでインストールした場合、AD スキーマが拡張されており、サイト割り当ての境界グループが設定されていれば、次回起動後にサイトが自動的に割り当てられます。但し、AD スキーマを拡張していない場合やワークグループ端末の場合は、AD スキーマから情報を取得して自動でサイトを割り当てることができませんので、サイト割り当てができるように、SMSSLP または DNSSUFFIX のレジストリ値を設定することをご検討ください。SMSSLP のレジストリ値は ccmsetup.exe に SMSMP オプション、DNSSUFFIX のレジストリ値は、DNSSUFFIX オプションを付加してインストールした場合に、セットされるレジストリ値です。SMSSLP のレジストリ値の設定が必要である場合は、以下のレジストリ値に、割り当てるサイトの管理ポイント サーバーの FQDN 名をセットしてください。(対象端末から、名前解決できる FQDN 名であることが前提です。)

・SMSSLP
キーの場所 : HKEY_LOCAL_MACHINESOFTWAREMicrosoftCCM
値の名前 : SMSSLP
値の種類 : REG_SZ

・DNSSUFFIX
キーの場所 : HKEY_LOCAL_MACHINESOFTWAREMicrosoftCCMLocationServices
値の名前 : DnsSuffix
値の種類 : REG_SZ

 

6. SMS Agent Host サービスのスタート アップの種類の変更

[管理ツール] - [サービス] を起動し、SMS Agent Host サービスを右クリックしてプロパティを開き、スタートアップの種類を [自動] に変更します。SMS Agent Host サービスを開始しないように注意してください。

 

7. マスターイメージの採取

sysprep /generalize が実行された参照コンピューターをキャプチャして、マスター イメージを採取します。(System Center Configuration Manager のキャプチャー メディアを使用すれば、sysprep /generalize は内部的に自動実行されます。かつ上記情報の削除も内部的に実行されますのでキャプチャしたイメージを System Center Configuration Manager から展開する際には今回の記事でご案内した手順ではなくぜひ System Center Configuration Manager のキャプチャー メディアをご利用ください。)

 

(補足情報)

Windows 7 / Windows 8.1 環境において、同時に System Center Endpoint Protection (SCEP) クライアントをインストールする場合は、「7. マスターイメージの採取」の前に、次の手順を実施してください。

 

Configuration Manager で Endpoint Protection クライアントをディスク イメージにプロビジョニングする方法

 

なお、手動適用するための SCEP 用の定義ファイルは、Microsoft Malware Protection Center より入手可能です。適用する定義ファイルは既定の設定にてご利用の場合にはネットワーク検査システムが有効であるため、以下の 2 種類です。

・ウイルス対策 / スパイウェア対策の定義ファイル

・ネットワーク検査システム定義ファイル


Authoritative Restore of SYSVOL after Deallocation of Azure DCs

$
0
0

The Problem

If you run an isolated lab in Azure IaaS with more than one Domain Controller and are in the habit of shutting down and de-allocating the VMs to save money, you may have found that SYSVOL doesn’t replicate when you start them back up.

The Cause

De-allocation/re-allocation of a VM changes the VM generation ID and Active Directory forces a safe recovery on restart. The problem with safe recovery in an isolated Azure IaaS lab is that no DC is authoritative.

The Solution

A manual authoritative restore of DFSR SYSVOL is required using steps outlined in KB2218556.

The Whinge

I’m fed up with doing this so wrote a PowerShell script

The Script

# Get the list of all DCs in the local domain
$domainControllers = Get-ADDomainController -Filter *

# Use the first DC in the list as the primary member for DFSR
# If a specific DC is preferred, use Get-ADDomainController -Identity <DC_Hostname>
$primaryDC = $domainControllers[0]

# Stop DFSR on all DCs
foreach ($dc in $domainControllers)
{
    Invoke-Command -ComputerName $dc.HostName -ScriptBlock {Stop-Service DFSR}
}

# Modify DFSR subscription object to disable the SYSVOL replica in AD and replicate it
foreach ($dc in $domainControllers)
{
    $sysvolSubscriptionObject = "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings," + $dc.ComputerObjectDN
    Get-ADObject -Identity $sysvolSubscriptionObject | Set-ADObject -Server $primaryDC -Replace @{"msDFSR-Enabled"=$false}
    Get-ADDomainController -filter * | foreach {Sync-ADObject -Object $sysvolSubscriptionObject -Source $primaryDC -Destination $_.hostname}
}

# Start and then stop DFSR on all DCs
foreach ($dc in $domainControllers)
{
    Invoke-Command -ComputerName $dc.HostName -ScriptBlock {Start-Service DFSR}
    Start-Sleep -Seconds 20
    Invoke-Command -ComputerName $dc.HostName -ScriptBlock {Stop-Service DFSR}
}

# Modify DFSR subscription to enable the SYSVOL replica in AD and set the primary
# Force replication of these changes
$sysvolSubscriptionObject = "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings," + $primaryDC.ComputerObjectDN
Get-ADObject -Identity $sysvolSubscriptionObject | Set-ADObject -Server mrm-DC01 -Replace @{"msDFSR-Options"=1}

foreach ($dc in $domainControllers)
{
    $sysvolSubscriptionObject = "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings," + $dc.ComputerObjectDN
    Get-ADObject -Identity $sysvolSubscriptionObject | Set-ADObject -Server $primaryDC -Replace @{"msDFSR-Enabled"=$true}
    Get-ADDomainController -filter * | foreach {Sync-ADObject -Object $sysvolSubscriptionObject -Source $primaryDC -Destination $_.hostname}
}

# Start DFSR on all DCs
foreach ($dc in $domainControllers)
{
    Invoke-Command -ComputerName $dc.HostName -ScriptBlock {Start-Service DFSR}
}

The Warning

I’d caution against setting this as a scheduled task or anything too creative. You really do want all DCs booted and running before you do this

The Conclusion

Hopefully it’s useful to some

Windows Server 2012 以降での AD RMS サーバー上の DB メンテナンスについて –その 2

$
0
0

こんにちは、RMS サポートの益戸です。

以前、「Windows Server 2012 以降での AD RMS サーバー上の DB メンテナンスについて」にてご紹介したクエリについて、今回は改良版をご用意いたしました。

MSIPC のバージョンアップに伴い、以下の公開情報にもあるとおり、今までは多くのデータが保管されることが少なかった UserAgent および、ErrorInformation についても削除を行うよう修正を加えております。ご利用方法については、前回のブログを参照ください。
弊社の複数環境にて動作確認を致しておりますが、ご利用いただく中でご不明な点などございましたら、弊社サポートをご利用いただければ幸いでございます。

 

[ご参考]

Windows サーバーで AD RMS のイベント ID 84 が発生します。

https://support.microsoft.com/ja-jp/help/4038927/event-id-84-ad-rms-windows-server

 

SQL 文をコピーする際には、ダブルバイトが存在しないことをご確認ください。

ブラウザによっては、「'」等がダブルバイトになることがあります。ご注意ください。

[Delete 用 SQL 文]

--////////////////////////////////////////////////////////////////////////////////////////////////

-- Description:

--       This script can be used to delete records in the AD RMS Logging source database.

-- ////////////////////////////////////////////////////////////////////////////////////////////////

 

----debug print

select 'ServiceRequestAndCertificate',count(*) from ServiceRequestAndCertificate select 'ServiceRequest',count(*) from ServiceRequest select 'Certificate',count(*) from Certificate select 'XrmlObject',count(*) from XrmlObject select 'UserAgent',count(*) from UserAgent --Add ----debug print

 

DECLARE @DeleteEndTime DateTime

DECLARE @MaxErrorInformationId int

DECLARE @MaxCertificateId int

DECLARE @MaxXrmlObjectId int

 

SET @DeleteEndTime = DATEADD(day, -1, getutcdate()) SELECT @MaxErrorInformationId = MAX(ErrorInformationId) FROM ErrorInformation SELECT @MaxCertificateId = MAX(CertificateId) FROM Certificate SELECT @MaxXrmlObjectId = MAX(XrmlObjectId) FROM XrmlObject

-- ////////////////////////////////////////////////////////////////////////////////////////////////

IF OBJECT_ID('tempdb..#Temp_ArchivedSvcRequestIDs_del') IS NOT NULL

DROP TABLE #Temp_ArchivedSvcRequestIDs_del CREATE TABLE #Temp_ArchivedSvcRequestIDs_del (

ServiceRequestId int NOT NULL,

RequestTypeId smallint,

ServerInformationId smallint,

ErrorInformationId int,

RequestUserId int,

UserAgentId int,

PRIMARY KEY CLUSTERED (ServiceRequestId ASC)

)

INSERT INTO #Temp_ArchivedSvcRequestIDs_del (ServiceRequestId, RequestTypeId, ServerInformationId, ErrorInformationId, RequestUserId, UserAgentId) (

SELECT SRC_SR.ServiceRequestId, SRC_SR.RequestTypeId, SRC_SR.ServerInformationId, SRC_SR.ErrorInformationId, SRC_SR.RequestUserId, SRC_SR.UserAgentId

FROM ServiceRequest AS SRC_SR

WHERE SRC_SR.CreatedTime <= @DeleteEndTime

 

)

 

-- ////////////////////////////////////////////////////////////////////////////////////////////////

-- CLEAN UP

-- ////////////////////////////////////////////////////////////////////////////////////////////////

BEGIN

DELETE FROM ServiceRequestAndCertificate

FROM ServiceRequestAndCertificate AS SRC_SVC_CERT

INNER JOIN #Temp_ArchivedSvcRequestIDs_del

ON #Temp_ArchivedSvcRequestIDs_del.ServiceRequestId = SRC_SVC_CERT.ServiceRequestId END

 

BEGIN

DELETE FROM ServiceRequest

FROM ServiceRequest AS SRC_SR

INNER JOIN #Temp_ArchivedSvcRequestIDs_del

ON #Temp_ArchivedSvcRequestIDs_del.ServiceRequestId = SRC_SR.ServiceRequestId END

 

BEGIN

DELETE FROM UserAgent

where UserAgentId not in (select distinct UserAgentId from ServiceRequest) END

 

 

BEGIN

--Table ServiceRequest is cleaned up before this.

DELETE FROM ErrorInformation

FROM ErrorInformation AS SRC_EI

WHERE NOT EXISTS (SELECT 1 FROM ServiceRequest AS SRC_SR WHERE SRC_SR.ErrorInformationId = SRC_EI.ErrorInformationId ) AND ErrorInformationId < @MaxErrorInformationId END

 

BEGIN

--Table ServiceRequestAndCertificate is cleaned up before this.

DELETE FROM Certificate

FROM Certificate AS SRC_C

WHERE NOT EXISTS (SELECT 1 FROM ServiceRequestAndCertificate AS SRC_SVC_CERT WHERE SRC_SVC_CERT.CertificateId = SRC_C.CertificateId) AND CertificateId < @MaxCertificateId END

 

BEGIN

--Table Certificate is cleaned up before this.

DELETE FROM XrmlObject

FROM XrmlObject AS SRC_XO

WHERE NOT EXISTS (SELECT 1 FROM Certificate AS SRC_C WHERE SRC_XO.XrmlObjectId = SRC_C.IssuedPrincipalObjectId) AND

NOT EXISTS (SELECT 1 FROM Certificate AS SRC_C WHERE SRC_XO.XrmlObjectId = SRC_C.IssuerObjectId) AND

NOT EXISTS (SELECT 1 FROM Certificate AS SRC_C WHERE SRC_XO.XrmlObjectId = SRC_C.WorkObjectId) AND

NOT EXISTS (SELECT 1 FROM Certificate AS SRC_C WHERE SRC_XO.XrmlObjectId = SRC_C.FederationPrincipalObjectId)

AND XrmlObjectId < @MaxXrmlObjectId

END

 

IF OBJECT_ID('tempdb..#Temp_ArchivedSvcRequestIDs_del') IS NOT NULL

DROP TABLE #Temp_ArchivedSvcRequestIDs_del

 

----debug print

select 'ServiceRequestAndCertificate',count(*) from ServiceRequestAndCertificate select 'ServiceRequest',count(*) from ServiceRequest select 'Certificate',count(*) from Certificate select 'XrmlObject',count(*) from XrmlObject select 'UserAgent',count(*) from UserAgent --Add ----debug print

 

 

[Trancate 用 SQL 文]

-- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////

-- Description:

--     This script can be used to Truncate all the records in following tables: ServiceRequestAndCertificate, ServiceRequest, Certificate and XrmlObject if you want to keep the source logging DB small.

--////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

----debug print

select 'ServiceRequestAndCertificate',count(*) from ServiceRequestAndCertificate select 'ServiceRequest',count(*) from ServiceRequest select 'Certificate',count(*) from Certificate select 'XrmlObject',count(*) from XrmlObject select 'UserAgent',count(*) from UserAgent select 'ErrorInformation',count(*) from ErrorInformation

----debug print

 

 

ALTER TABLE [dbo].[ServiceRequestAndCertificate] DROP CONSTRAINT [FK_REQUESTID_ServiceRequestAndCertificate_ServiceRequest]

ALTER TABLE [dbo].[ServiceRequestAndCertificate] DROP CONSTRAINT [FK_CERTIFICATEID_ServiceRequestAndCertificate_Certificate]

 

ALTER TABLE [dbo].[Certificate] DROP CONSTRAINT [FK_ISSUEDPRINCIPALOBJECTID_Certificate_XrmlObject]

ALTER TABLE [dbo].[Certificate] DROP CONSTRAINT [FK_ISSUEROBJECTID_Certificate_XrmlObject]

ALTER TABLE [dbo].[Certificate] DROP CONSTRAINT [FK_WORKOBJECTID_Certificate_XrmlObject]

ALTER TABLE [dbo].[Certificate] DROP CONSTRAINT [FK_FEDERATIONPRINCIPALOBJECTID_Certificate_XrmlObject]

 

ALTER TABLE [dbo].[ServiceRequest] DROP CONSTRAINT [FK_CLIENTINFOID_ServiceRequest_UserAgent]

GO

ALTER TABLE [dbo].[ServiceRequest] DROP CONSTRAINT [FK_ERRORINFORMATIONID_ServiceRequest_ErrorInformation]

GO

 

-------------------------------

TRUNCATE TABLE ServiceRequestAndCertificate TRUNCATE TABLE ServiceRequest TRUNCATE TABLE Certificate TRUNCATE TABLE XrmlObject TRUNCATE TABLE UserAgent TRUNCATE TABLE ErrorInformation GO

 

--------------------------------

ALTER TABLE [dbo].[ServiceRequestAndCertificate] ADD CONSTRAINT [FK_REQUESTID_ServiceRequestAndCertificate_ServiceRequest] FOREIGN KEY ( [ServiceRequestId]

) REFERENCES [ServiceRequest] (

[ServiceRequestId]

)

ALTER TABLE [dbo].[ServiceRequestAndCertificate] ADD CONSTRAINT [FK_CERTIFICATEID_ServiceRequestAndCertificate_Certificate] FOREIGN KEY ( [CertificateId]

) REFERENCES [Certificate] (

[CertificateId]

)

 

ALTER TABLE [dbo].[Certificate] ADD CONSTRAINT [FK_ISSUEDPRINCIPALOBJECTID_Certificate_XrmlObject] FOREIGN KEY ( [IssuedPrincipalObjectId]

) REFERENCES [XrmlObject] (

[XrmlObjectId]

)

ALTER TABLE [dbo].[Certificate] ADD CONSTRAINT [FK_ISSUEROBJECTID_Certificate_XrmlObject] FOREIGN KEY ( [IssuerObjectId]

) REFERENCES [XrmlObject] (

[XrmlObjectId]

)

ALTER TABLE [dbo].[Certificate] ADD CONSTRAINT [FK_WORKOBJECTID_Certificate_XrmlObject] FOREIGN KEY ( [WorkObjectId]

) REFERENCES [XrmlObject] (

[XrmlObjectId]

)

ALTER TABLE [dbo].[Certificate] ADD CONSTRAINT [FK_FEDERATIONPRINCIPALOBJECTID_Certificate_XrmlObject] FOREIGN KEY ( [FederationPrincipalObjectId]

) REFERENCES [XrmlObject] (

[XrmlObjectId]

)

 

 

ALTER TABLE [dbo].[ServiceRequest] WITH CHECK ADD CONSTRAINT [FK_CLIENTINFOID_ServiceRequest_UserAgent] FOREIGN KEY([UserAgentId]) REFERENCES [dbo].[UserAgent] ([UserAgentId]) GO

 

ALTER TABLE [dbo].[ServiceRequest] CHECK CONSTRAINT [FK_CLIENTINFOID_ServiceRequest_UserAgent]

GO

 

ALTER TABLE [dbo].[ServiceRequest] WITH CHECK ADD CONSTRAINT [FK_ERRORINFORMATIONID_ServiceRequest_ErrorInformation] FOREIGN KEY([ErrorInformationId]) REFERENCES [dbo].[ErrorInformation] ([ErrorInformationId]) GO

 

ALTER TABLE [dbo].[ServiceRequest] CHECK CONSTRAINT [FK_ERRORINFORMATIONID_ServiceRequest_ErrorInformation]

GO

 

 

----debug print

select 'ServiceRequestAndCertificate',count(*) from ServiceRequestAndCertificate select 'ServiceRequest',count(*) from ServiceRequest select 'Certificate',count(*) from Certificate select 'XrmlObject',count(*) from XrmlObject select 'UserAgent',count(*) from UserAgent select 'ErrorInformation',count(*) from ErrorInformation

----debug print

Azure CLI を用いて Recovery Services コンテナーのバックアップ ポリシーを更新する方法

$
0
0

こんにちは、Azure サポート チームの伊東です。

2017 年 10 月に Azure CLI を用いて Azure Backup を管理、運用する機能がプレビュー版で公開されました。Azure CLI を用いた Azure Backup の機能については下記弊社公開情報をご覧ください。Azure 仮想マシンのバック方法や Azure Backup に関する Azure CLI のコマンドをご確認いただけます。

・Manage your Azure VM backups with Azure CLI 2.0 - Preview

https://azure.microsoft.com/ja-jp/blog/manage-your-azure-vm-backups-with-azure-cli-2-0-preview/

・CLI を使用した Azure での仮想マシンのバックアップ

https://docs.microsoft.com/ja-jp/azure/backup/quick-backup-vm-cli

・az backup (Azure Backup に関する Azure CLI のコマンド一覧がご確認いただけます。)

https://docs.microsoft.com/en-us/cli/azure/backup?view=azure-cli-latest

 

本日は Azure CLI を用いて Recovery Services コンテナーでのバックアップ ポリシーを変更する方法をご案内いたします。

本ブログは Azure CLI 2.0 がインストールされた前提で作成しております。まだインストールされていない方は、下記リンクからインストールの方法をご覧ください。

・Azure CLI 2.0 のインスト―ル

https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli?view=azure-cli-latest

 

残念ながら、現時点 (2017 年 11 月 6 日) では Azure CLI のコマンドのみでバックアップ ポリシーを新規作成することは出来ません。既存のポリシーに対してパラメータの変更を行うことは可能ですので、その手順について下記でご案内いたします。基本的な操作手順は以下の通りです。

  1. 既に作成されているポリシーを Azure CLI で読み込み、JSON ファイルとして読み込む
  2. 作成した JSON ファイルをテキスト エディタなどで編集して詳細なパラメータを設定する
  3. Azure CLI でバックアップ ポリシーをアップデートする

1.既に作成されているポリシーを Azure CLI で読み込み、JSON ファイルとして読み込む

下記コマンドを実行すると、下記出力結果で示されるような既存バックアップ ポリシーの詳細な情報が JSON 形式で出力されます。

az backup policy show --output json --resource-group <リソース グループ名> --vault-name <コンテナー名> --name <バックアップ ポリシー名>

以下、出力結果。

PS C:WINDOWSsystem32> az backup policy show --output json --resource-group yuiRG --vault-name RecoveryServicesVault --name CLItest
{
  "eTag": null,
  "id": "/Subscriptions/5a36****-****-****-****-********* 063/resourceGroups/yuiRG/providers/Microsoft.RecoveryServices/vaults/RecoveryServicesVault/backupPolicies/CLItest",
  "location": null,
  "name": "CLItest",
  "properties": {
    "backupManagementType": "AzureIaasVM",
    "protectedItemsCount": 0,
    "retentionPolicy": {
      "dailySchedule": {
        "retentionDuration": {
          "count": 150,
          "durationType": "Days"
        },
        "retentionTimes": [
          "2017-10-20T10:00:00+00:00"
        ]
      },
      "monthlySchedule": {
        "retentionDuration": {
          "count": 80,
          "durationType": "Months"
        },
        "retentionScheduleDaily": null,
        "retentionScheduleFormatType": "Weekly",
        "retentionScheduleWeekly": {
          "daysOfTheWeek": [
            "Sunday"
          ],
          "weeksOfTheMonth": [
            "First"
          ]
        },
        "retentionTimes": [
          "2017-10-20T10:00:00+00:00"
        ]
      },
      "retentionPolicyType": "LongTermRetentionPolicy",
      "weeklySchedule": {
        "daysOfTheWeek": [
          "Sunday"
        ],
        "retentionDuration": {
          "count": 104,
          "durationType": "Weeks"
        },
        "retentionTimes": [
          "2017-10-20T10:00:00+00:00"
        ]
      },
      "yearlySchedule": {
        "monthsOfYear": [
          "January"
        ],
        "retentionDuration": {
          "count": 10,
          "durationType": "Years"
        },
        "retentionScheduleDaily": null,
        "retentionScheduleFormatType": "Weekly",
        "retentionScheduleWeekly": {
          "daysOfTheWeek": [
            "Sunday"
          ],
          "weeksOfTheMonth": [
            "First"
          ]
        },
        "retentionTimes": [
          "2017-10-20T10:00:00+00:00"
        ]
      }
    },
    "schedulePolicy": {
      "schedulePolicyType": "SimpleSchedulePolicy",
      "scheduleRunDays": null,
      "scheduleRunFrequency": "Daily",
      "scheduleRunTimes": [
        "2017-10-20T10:00:00+00:00"
      ],
      "scheduleWeeklyFrequency": 0
    },
    "timeZone": "Tokyo Standard Time"
  },
  "resourceGroup": "yuiRG",
  "tags": null,
  "type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}

2.作成した JSON ファイルをテキスト エディタなどで編集して詳細なパラメータを設定する

手順 1 で出力された結果をコピーして JSON ファイルとして保存します。バックアップの頻度やリテンション期間など、変更したいパラメータをテキスト エディタなどを用いて設定します。

3.Azure CLI でバックアップ ポリシーをアップデートする

下記コマンドで JSON ファイルを指定し、ポリシーをアップデートします。コマンド内の JSON ファイルへのパスは引用符 (“ ”) を用いるようご注意ください。

az backup policy set --policy <"作成した JSON ファイルへのパス"> --resource-group <リソース グループ名> --vault-name <コンテナー名>

 

以上、Azure CLI を用いて Recovery Services コンテナーのバックアップ ポリシーを変更する方法をご案内いたしました。

※ 本情報の内容 (添付書類、リンク先などを含む) は、作成日時点のものであり、予告なく変更される場合があります。

Managing Android for Work devices independently in the Intune console

$
0
0

We’ve heard your feedback and accordingly, Intune now supports managing enrollment of Android for Work (AFW) devices independently from the Android platform, with no change in the end user experience. In this blog post, we’ll show you what will change in the enrollment flow, after your enrollment settings are migrated to the new AFW management experience. We’ll also share documentation links that will be updated as the change rolls out.

Here’s how the Platform and Platform configuration blades will look after the update, showing AFW as a new platform.

clip_image002

 

clip_image004

 

Android for work settings that were previously managed under Device Enrollment > Android for Work Enrollment > Android for Work Enrollment Settings will now be managed from Device Enrollment > Enrollment restrictions> Device Type Restrictions. Here’s a screenshot of what the AFW Enrollment blade will look like.

clip_image006

 

Clicking on ‘Enrollment Restrictions’ in the AFW Enrollment blade will take you to the new Enrollment Restrictions blade, shown below.

clip_image008

By default, your Android for Work devices settings will be the same as your settings for your Android devices. However, after you change your Android for Work settings that will no longer be the case. If you block personal Android for Work enrollment, only corporate Android devices can enroll as Android for Work.

If you have never previously enrolled Android for Work devices

The new Android for Work platform is blocked in the default Device Type Restrictions. After the feature update, you can allow devices to enroll with Android for Work. To do so, change the default or create a new Device Type Restriction to supersede the default Device Type Restriction.

If you have enrolled Android for Work devices

In this case, your situation depends on the setting you have chosen.

Setting

Android for Work status in default Device Type Restriction

What this means for you

Manage all devices as Android

Blocked

All Android devices must enroll without Android for Work.

Manage supported devices as Android for Work

Allowed

All Android devices that support Android for Work must enroll with Android for Work.

Manage supported devices for users only in these groups as Android for Work

Blocked

A separate Device Type Restriction policy was created to override the default. This policy defines the groups you previously selected to allow Android for Work enrollment. Users within the selected groups will continue to be allowed to enroll their Android for Work devices. All other users are restricted from enrolling with Android for Work.

In all cases, your intended regulation is preserved. No action is required on your part to maintain the global or per-group allowance of Android for Work in your environment.

These changes will begin rolling out with the November update to the Intune service, but may take time to execute on your account. You will receive a confirmation notification in the Office 365 Message Center portal when these changes are effective for your account.

Helpful links

We’ll add more information about the new AFW enrollment flow, at the links listed here.

https://docs.microsoft.com/en-us/intune/android-enroll

https://docs.microsoft.com/en-us/intune/enrollment-restrictions-set

https://docs.microsoft.com/en-us/intune/ui-changes

Check back soon to see what updates we’ve made to our documentation!


Microsoft Teams: PowerShell Support

$
0
0

As an IT Professional, I am always looking for ways to automate tasks and make daily operations simple. When it comes to Microsoft Teams, being able to automate the creation of teams, channels, and settings within a team is critical to the success of Microsoft Teams within an organization. PowerShell support for Microsoft Teams allows you to do exactly that, and it gives me additional ideas to make the administration of Teams easier:

  • Automatically provision new teams, new channels within the team, add members and set options such as a picture, and member permissions.
  • Create a self-service tool that uses PowerShell on the back-end to make creating teams easy for end-users but with controls for IT. For example, a user browses to a website form to create a team. PowerShell can check for a team that has a duplicate name, to ensure users aren't creating teams with the same name. I see this as one simple example but is powerful when we start to think about governance we can provide to the business on Microsoft Teams.
  • If I need to add a large number of members to a team, using PowerShell I can add those members in bulk from a .csv
  • Standardize settings within each team that is created.
  • What's your idea for using PowerShell with Microsoft Teams? (Tell me in the comments below!)

In this blog I will take you through how to download, install and run the a few examples in the Microsoft Teams PowerShell module. At the time of this writing, the following cmdlets are available:

Install-Module MicrosoftTeams


At the prompt type Y and press Enter:


If you are prompted for untrusted repository, type A (for Yes to All) and press Enter. The module will install.


Once installed, we can now connect to Microsoft Teams. To connect type the following and press Enter:

Connect-MicrosoftTeams

 

At the Microsoft Teams PowerShell Cmdlets dialog box, type your Office 365 credentials and press Enter


Once connected to the Microsoft Teams instance in your Office 365 tenant, the following will be displayed:


You can now start to run cmdlets, or scripts against Microsoft Teams! Note, at any time you can type Get-Command -Module MicrosoftTeams to see a full list of commands available:


To return a list of the teams in the environment, type the following and press Enter:

Get-Team

 Note: Within PowerShell, teams are referenced as a GroupID for the underlying Office 365 Group.


For the next example, let's create a new team for marketing employees in San Diego that is a private team. Type the following command and press Enter:

New-Team -DisplayName "San Diego Marketing" -AccessType Private

 The team will be created with an Office 365 GroupID assigned:


Note: The GroupID is important when you wish to assign classification policies to the underlying Office 365 group, in addition to when you need to remove the team among other things.

Within the Microsoft Teams client (teams.microsoft.com) we can see the team has been created:


To remove the team, type the following and press Enter. Where <GroupID> is the GroupID of the team you created:

Remove-Team -GroupID <GroupID>


Conclusion: These are some of the basic functions you can perform with the Microsoft Teams PowerShell Module. Over time I'll be adding additional scenarios with PowerShell – if there's one you are interested in leave me a comment and I would be happy to write about it! 

証明書の登録 Web サービスの URL を追加/変更する際の注意事項

$
0
0

Active Directory 証明書サービスを日々ご利用いただいている皆様

こんにちは。Windows サポート チームの工藤です。
今回は 「証明書の登録 Web サービス」の URL を、追加/変更する際の手順および注意事項についてご案内いたします。

これを機に、まず「証明書の登録 Web サービス」を簡単にご紹介したいと思います。

証明書の登録 Web サービスとは

「証明書の登録 Web サービス」では、HTTPS プロトコルにて、ネットワークのクライアント コンピューターから、証明書の要求を受け入れて、発行された証明書を返すことができます。
具体的には、証明書の登録 Web サービスが代わりとなって、DCOM プロトコルを使用して証明機関 (CA) と通信を行い、依頼元クライアントの証明書の要求および発行、証明書ストアへの登録を行います。

「証明書の登録 Web サービス」は、「証明書の登録ポリシー Web サービス」と一緒に利用することで、クライアント コンピューターがドメインのメンバーでない場合や、ドメイン メンバーが自身のドメインに接続していない場合でも、ポリシー ベースの証明書の登録を可能にする、Active Directory 証明書サービスの役割サービスのひとつになります。

具体的な通信のシーケンスはこのようになります。

※「証明書の登録 Web サービス」を CES (Certificate Enrollment Web Service)、「証明書の登録ポリシー Web サービス」を CEP (Certificate Enrollment Policy Web Service) と表記します。

Step1. CEP サーバーに https でアクセスをします。
Step2. CEP サーバーは、DC より ldap 検索で得た CES サーバーの URL を、証明書要求元クライアントに返します。
Step3. 証明書要求元クライアントは、CEP サーバーより得た情報を元に、CES サーバーに https でアクセスします。
Step4. CES サーバーは、RPC/DCOM 通信にて証明機関 (CA) に証明書の発行要求を行います。
Step5. CES サーバーは、証明機関 (CA) が発行した証明書を、証明書要求元クライアントに返します。

証明書の登録 Web サービス (CES) のURL変更方法

続いて、「証明書の登録 Web サービス」で利用する URL の設定 (変更) 方法ですが、本ブログでは、ブログ タイトルにも冠した注意事項よりご説明のうえで、Certutil コマンドを利用した手順をご案内いたします.


!! 注意事項 !!
CES の URL を、追加/変更する際に、ADSI エディタ上で直接 ” ms-PKIEnrollmentService” の属性を変更すると、正しく反映されない場合がありますので、必ず Certutil コマンドをご利用くださいますようお願いいたします。


// CES の URL を追加する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. CA サーバーに管理者権限を持つアカウントでログオンします。

2. コマンド プロンプトを管理者権限で起動し、以下コマンドを実行します。

Certutil -config "[CAサーバーFQDN][CA 名]" -enrollmentServerURL [追加したい CES の URL] [認証タイプ]

※ 例えば、ユーザー名とパスワードを利用した認証による、URL を追加したい場合は、以下のようになります)

例:

※ 登録済みの URL を指定した場合は、以下のようにエラーが返されます。

※ 認証タイプは UserName の他にも、以下のタイプを指定することが可能です。

Kerberos (Kerberos 認証)
ClientCertificate (クライアント証明書認証)

// CES の URL を削除する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
コマンド プロンプトで実行するコマンドを以下のように指定します。

Certutil -config "[CAサーバーFQDN][CA 名]" -enrollmentServerURL [削除したい CES の URL] delete

例:

// CES の URL を確認する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
コマンド プロンプトで実行するコマンドを以下のように指定します。

certutil -config "[CAサーバーFQDN][CA 名]" -enrollmentServerURL

例:

※ ADSI エディタでは、CN=Enrollment Services,CN=Public Key Services,cn=Services,CN=Configuration, DC=[domain name] の右ペインに表示される CA 名オブジェクトから確認できます。
CA 名オブジェクトの ​"msPKI-Enrollment-Servers" 属性に CES の URL が格納されていますが、上述しました通り、ADSI エディタ上からの値の変更は行わないでください。

- 参考情報

Certificate Enrollment Web Services in Active Directory Certificate Services
https://social.technet.microsoft.com/wiki/contents/articles/7734.certificate-enrollment-web-services-in-active-directory-certificate-services.aspx

証明書の登録 Web サービスの概要
https://technet.microsoft.com/ja-jp/library/dd759209(v=ws.11).aspx

証明書の登録ポリシー Web サービスの概要
https://technet.microsoft.com/ja-jp/library/dd759230(v=ws.11).aspx

本記事は、お客様のお問合せを契機に掲載に至りました。
貴重なご指摘をくださいましたお客様には、深くお礼を申し上げます。

なお、コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

監査ログを無効化しても内部的には監査ログの設定が有効化のままとなる動作について

$
0
0

こんにちは。SharePoint サポートの趙 雲龍です。

 

本投稿では、画面上から監査ログを無効化しても内部的には監査ログの設定が有効化のままとなる動作についてご紹介いたします。

SharePoint Server 2013、および SharePoint Server 2016 においては、一度情報管理ポリシーを設定しますと、画面上から監査ログを無効化を行っても、内部的には監査ログの設定が有効のままになる動作となります。

その場合、該当のリストでアイテムの追加等を行えば監査ログが記録され続ける動作となります。

 

■ 情報管理ポリシーの設定

以下の手順で、リストの情報管理ポリシーを有効に設定した場合に発生します。

1. [リストの設定] – [情報管理ポリシーの設定] を順にクリックします。

2. "コンテンツ タイプ" セッションにて、[アイテム] をクリックします。

3. [監査を有効にする] にチェックを入れ、表示された項目にもチェックを入れて [OK] をクリックします。

 

4. 対象のリストにアクセスし、新しいアイテムを作成します。

 

■ 監査ログ状態の確認方法

監査ログの設定が有効になっているかの確認は、以下の PowerShell を実行し、出力結果から EffectiveAuditMask が "None" ではなく、数字が表示されていることにより判断可能です。

 

============== コマンドここから ===============

$web = Get-SPWeb <サイト コレクション>

$web.Audit | fl

$list = $web.Lists["リストの名前"]

$list.Audit | fl

============== コマンドここまで ===============

 

出力例:

============== 出力結果ここから ===============

UseAuditFlagCache : False

AuditFlags         : None

EffectiveAuditMask : 6687

============== 出力結果ここまで ===============

 

 

<補足>
AuditFlags と EffectiveAuditMask の値は、等しくならない場合がございます。
AuditFlags はサイト コレクション毎、リスト毎などで値を持ち、それぞれに設定された監査のフラグを表します。
EffectiveAuditMask は、サイト コレクション毎、リスト毎などで実際に有効になっている監査のフラグになります。
また、リストでは、サイト コレクションの監査設定を継承します。
そのため、例えばサイト コレクションでの監査設定とリストの監査設定が異なる場合、リストにおいては、リスト独自の設定と、サイト コレクションでの設定の両方のフラグが有効になります。

本動作は SharePoint Server 2013、SharePoint Server 2016 の動作制限となります。

今回の投稿は以上になります。

Xbox 史上もっともパワフルな『Xbox One X』 本日から国内販売開始

$
0
0

世界中のゲーム ファンの皆さんに 4K ゲームと4K エンターテインメントの歴史的一歩をお届けするために、Xbox 史上もっともパワフルな Xbox、『Xbox One X』 が本日、日本でも販売を開始しました。Xbox One X ならすばらしい環境でゲームをプレイすることができます。発売当日時点でもっとも多くのゲームが動作する Xbox として、すべての Xbox One 用ゲームと下位互換対応タイトルが Xbox One X でプレイ可能です。また、発売当日には 50 タイトル以上のゲームが「Xbox One X Enhanced」として用意され、1 週間以内には 70 タイトル以上になり (米国での発表時点情報)、それらには「Forza Motorsport 7」「Super Lucky's Tale」「Assassin's Creed Origins」「シャドウ・オブ・ウォー」や「FIFA 18」が含まれます。多くの Xbox One 用ゲームを Xbox One X でプレイすると、従来の Xbox One ファミリーでプレイした時と比較して快適にプレイすることができます。また、世界中で話題のタイトル『PlayerUnknown's Battlegrounds』も 2017 年 12 月 12 日には Xbox One X を含むすべての Xbox One ファミリーでプレイすることができます。

Xbox One X の性能について

ネイティブ 4K の解像度を描画するのに十分な性能を搭載し、HDR (ハイ ダイナミック レンジ)と広色域に対応した真の 4K ゲーミングを実現するために Xbox One X は開発されました。従来の Xbox One 用ゲームも画質やフレームレートの改善、ロード時間の短縮などを実現し、Xbox One X を 2K TV に接続してプレイしても多くのメリットがあります。また、4K を世界中のすばらしいゲームに提供し、4K UHD Blu-ray および 4K ストリーミング再生や、ゲームおよび映画への HDR 対応、Dolby Atomos 対応など多くの新しい機能を搭載しています。さらに、Xbox One X はXbox 史上もっとも高性能な Xbox だけでなく、もっとも小さな本体に多くの機能を搭載した据え置き型ゲーム機です。

Xbox One X Enhanced について

Xbox One X 発売当日から、多くの Xbox One 用ゲームが Xbox One X Enhanced プログラムの一環として無料アップデートが配信されています。Xbox One X Enhanced ゲームは、Xbox One X の 4K および HDR の機能を最大限発揮させるために更新プログラムまたはゲーム本体が提供されます。Xbox One X Enhanced プログラムの対応タイトルや詳細については https://www.xbox.com/enhanced を参照ください。

Xbox One ファミリーについて

Xbox One X は Xbox One S などの含む Xbox One ファミリーの最新機種です。過去、現在、将来に渡る 1,300 タイトル以上のゲームが楽しめ、200 以上もの Xbox One 専用タイトルは、初代 Xbox One、Xbox One S および Xbox One X すべての Xbox One ファミリーで楽しむことができます。 さらに、Xbox One 対応周辺機器も Xbox One X ですべて動作します。

Xbox One X の詳細については、 https://www.xbox.com/ja-JP/xbox-one-x をご参照ください。

Working with SharePoint and DSC – Configuring your nodes

$
0
0

Hello All,

Moving along with my dive into DSC it is now time to configure our nodes, and first as a recap this is what we have done

Now we will configure our nodes to check in with the DSC server and pull MOF's or modules as they need.  The script I wrote runs remotely from a central server and then it performs the following:

  1. Creates the Instructions to setup node for Pull (Creates a MOF)
  2. Pushes out pfx to all nodes for DSCService if using self-signed cert(Insure we don't have a Root Trust issue)
  3. Then runs Set-DSCLocalConfigurationManager against all nodes using those MOF files

And how do we do this....well let's look at the script

In the first section we are creating the instructions for the nodes, there are several settings that are important to how this works like ConfigurationMode and RefreshMode.  While I recommend you just go with the values I have provided you can read more about them here

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
param([string] $Server,[string]$url,[string]$path,[string]$RegistrationKey)
    Node $Server
{
Settings
{
ConfigurationMode = ‘ApplyAndAutocorrect’
RefreshMode = 'Pull'
RefreshFrequencyMins = 30              # How often we look for new config on pull server
RebootNodeIfNeeded = $true
ActionAfterReboot = 'ContinueConfiguration'
AllowModuleOverwrite = $true
ConfigurationModeFrequencyMins = 15         #How often we check that server config is correct
}
ConfigurationRepositoryWeb PSDSCPullServer
{
ServerURL = $url
RegistrationKey = $RegistrationKey
ConfigurationNames = @($server)
AllowUnsecureConnection = $true
}
ReportServerWeb PSDSCPullServer          # https://msdn.microsoft.com/en-us/powershell/dsc/reportserver
{
ServerURL = $url
RegistrationKey = $RegistrationKey
AllowUnsecureConnection = $true
}
}
}

The last part to this is where we iterate thru each node out of the DSCConfig.ps1 file, and  then push the pfx to each node (If using a self-signed cert) so that we don't have trust issues connecting to the service.  Finally we will create the MOF file (Instructions) for that node and use it with the command Set-DscLocalConfigurationManager at this point the node will run the instructions and configure DSC then register with the service on the pull server.

$data.AllNodes | ?{$_.MinRole} | ForEach-Object {
$node = $_.NodeNameif($data.NonNodeData.DSCConfig.DSCAcceptSelfSignedCertificates)
{
Enable-WSManCredSSP -DelegateComputer $node -Role Client -Force
Connect-WSMan $node
Set-Item "WSMan:$nodeServiceAuthCredSSP" -Value $True
$Command = {Import-PfxCertificate -FilePath $Pfx -CertStoreLocation Cert:LocalMachineAuthRoot -Password $Pwd}
Invoke-Command -ComputerName $node -ScriptBlock {Import-PfxCertificate -FilePath $args[0] -CertStoreLocation Cert:LocalMachineAuthRoot -Password $args[1]} -ArgumentList $Pfx,$Pwd -Authentication Credssp -Credential $SetupAccount
}

Write-host "Creating MOF File for Node: $node"

    PullClientConfigID -server $_.NodeName -Url $Data.NonNodeData.DSCConfig.DSCConfigServiceEndPoint -Path $Data.NonNodeData.DSCConfig.DSCConfigModuleShare -RegistrationKey $Data.NonNodeData.DSCConfig.DSCConfigRegistryKey -OutputPath $OutputDir
    Write-Host "Pushing configuration to server: $node"
Set-DscLocalConfigurationManager -ComputerName $_.NodeName -path $OutputDir -Verbose
}

Once the script has completed running without error all your nodes (Read SharePoint Servers) will be configured to pull the MOF from the DSC service and build out your farm.  And that will be our next step creating those MOF Files.

You can find a copy of my script here

Pax

Viewing all 34890 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>