Friday, December 20, 2024

Bonita Studio

Bonita offers a click and drag workflow design with validation of data. In order to proceed further with my explanation please let me pause and explain what an API is. An operating system is like a kid’s toy called a lego. These blocks connect with other blocks through bumps which are like hooks in an API. The operating system which could be Windows or Mac OS X are like black boxes we cannot see through. However we know that these hooks exist and can be called or invoked by name. Now we have come closer to explaining what an API is, let’s talk about what a Restful API is. The Rest API talks about data in different states. Rest is short for Representational State transfers. This could be done as a web service. When people think of servers in technology, they think of big bulky hardware that would be a paperweight in a few years. Servers are more simple than this. They should be thought of as the capacity to perform a service. The Rest API defines the constraints that limits the states of the transformation of data. Now back to your question of how does this relate to Odoo. We must first ask ourselves what does Odoo provide. The Odoo provides a front-end for a process that runs on a database. This process is often performed by modules in the middle-layer. Odoo uses Rest APIs based on the python framework Flask.

https://api.asm.skype.com/v1/objects/0-cus-d7-a40caa86d8a1e1b86fb16e1e3d7f77b3/views/imgpsh_fullsize
Flask is a robust framework used for large scale web applications such as LinkedIn and Pintrest. Understanding flask can help us towards utalizing web services that are packaged together in Bonita. Key distinctions between the process management and project management are repeatability and predictability. If structure and sequence of work is unique, then it is a project. In business process management, sequence of work can vary from instance to instance: there are gateways, conditions; business rules etc. The key is predictability: no matter how many forks in the road, we know all of them in advance, and we understand the conditions for the process to take one route or another. Therefore, I think that with Bonita which uses a lot of lightweight microservices, this can be a real asset in the accounting side.

This information comes from Bonita:



https://api.asm.skype.com/v1/objects/0-cus-d5-7ebbcf42354acfb87622806e89adc2cc/views/imgpsh_fullsize

Thursday, November 16, 2017

Remove battery and power to reset POST

When there is a power surge some laptops stop working. The answer might be when your computer turns on there is a checksum that is done by POST or power on self test. Different tests are done to check the integerty of the hardware for example by counting RAM. A power surge can confuse this integerty check. To correct this, remove the battery and remove the power cord from the computer. This would reestablish a baseline by scanning for new hardware.

Neat tools to resolve Blue screen of dealth

I would use SFC /SCANNOW rather than chkdsk. As explained at https://www.sevenforums.com/performance-maintenance/325080-sfc-scannow-chkdsk-whats-diff.html the major difference: chkdsk checks disk for hardware issues. SFC is system file check and checks for missing or corrupt windows system files. Since the hard drive is brand new, I doubt that you would see a hard drive that is already bad. Besides if I'm remembering correctly your screenshot of speccy did not indicate that the SMART was tripped.
I would go to Window's System Reliability Monitor described in the CIO article here: http://www.cio.com/article/2998906/windows/how-to-work-with-windows-10-reliability-monitor.html
If you need any help interpreting BSOD (blue screen of death messages) I would suggest Nirsoft's Blue Screen Viewer, win crash report, and App Crash Report listed here:
If memory is an issue, I recommend you look at http://www.howtogeek.com/260813/how-to-test-your-computers-ram-for-problems/
Other tools/resources
Good luck and wishing you a speedy recovery

Reduce size of PDF document



Two methods come to mind. My favorite is to use ghostscript as a script using the command ghostscript -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf As you might note this keeps both the origional and modified files in the directory. However I would recommend moving the new files into a subdirectory for better results with the comparison. You can write a for loop in a bat file using a program such as winmerge and csdiff to compare the files. Now there is some confusion about what javascript is. Java is an object-oriented computer programming language commonly used to create interactive effects within web browsers The Mozilla developers define "JavaScript is a programming language that allows you to implement complex things on web pages — every time a web page does more than just sit there and display static information for you to look at — displaying timely content updates, or interactive maps, or animated 2D/3D graphics, or scrolling video jukeboxes, etc. — you can bet that JavaScript is probably involved. It is the third layer of the layer cake of standard web technologies, two of which (HTML and CSS) we have covered in much more detail in other parts of the Learning Area."https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript Computer hope defines Javascript as "Originally developed by Brendan Eich and originally known as LiveScript, the programming language JavaScript was renamed in 1995. JavaScript is an interpreted client-side scripting language that allows a web designer the ability to insert code into their web page. JavaScript is commonly placed into an HTML or ASP file, and runs directly from the web page. It is utilized to perform tasks such as printing the time and date, create a calendar, or other tasks that are not possible through plain HTML" Another tutorial writes "Javascript is a dynamic computer programming language. It is lightweight and most commonly used as a part of web pages, whose implementations allow client-side script to interact with the user and make dynamic pages. It is an interpreted programming language with object-oriented capabilities. JavaScript was first known as LiveScript, but Netscape changed its name to JavaScript, possibly because of the excitement being generated by Java. JavaScript made its first appearance in Netscape 2.0 in 1995 with the name LiveScript. The general-purpose core of the language has been embedded in Netscape, Internet Explorer, and other web browsers. The ECMA-262 Specification defined a standard version of the core JavaScript language. JavaScript is a lightweight, interpreted programming language. Designed for creating network-centric applications. Complementary to and integrated with Java. Complementary to and integrated with HTML. Open and cross-platform Client-side JavaScript Client-side JavaScript is the most common form of the language. The script should be included in or referenced by an HTML document for the code to be interpreted by the browser. It means that a web page need not be a static HTML, but can include programs that interact with the user, control the browser, and dynamically create HTML content. The JavaScript client-side mechanism provides many advantages over traditional CGI server-side scripts. For example, you might use JavaScript to check if the user has entered a valid e-mail address in a form field. The JavaScript code is executed when the user submits the form, and only if all the entries are valid, they would be submitted to the Web Server. JavaScript can be used to trap user-initiated events such as button clicks, link navigation, and other actions that the user initiates explicitly or implicitly. Advantages of JavaScript The merits of using JavaScript are − Less server interaction − You can validate user input before sending the page off to the server. This saves server traffic, which means less load on your server. Immediate feedback to the visitors − They don't have to wait for a page reload to see if they have forgotten to enter something. Increased interactivity − You can create interfaces that react when the user hovers over them with a mouse or activates them via the keyboard. Richer interfaces − You can use JavaScript to include such items as drag-and-drop components and sliders to give a Rich Interface to your site visitors. Limitations of JavaScript We cannot treat JavaScript as a full-fledged programming language. It lacks the following important features − Client-side JavaScript does not allow the reading or writing of files. This has been kept for security reason. JavaScript cannot be used for networking applications because there is no such support available. JavaScript doesn't have any multithreading or multiprocessor capabilities. Once again, JavaScript is a lightweight, interpreted programming language that allows you to build interactivity into otherwise static HTML pages. JavaScript Development Tools One of major strengths of JavaScript is that it does not require expensive development tools. You can start with a simple text editor such as Notepad. Since it is an interpreted language inside the context of a web browser, you don't even need to buy a compiler. To make our life simpler, various vendors have come up with very nice JavaScript editing tools. Some of them are listed here − Microsoft FrontPage − Microsoft has developed a popular HTML editor called FrontPage. FrontPage also provides web developers with a number of JavaScript tools to assist in the creation of interactive websites. Macromedia Dreamweaver MX − Macromedia Dreamweaver MX is a very popular HTML and JavaScript editor in the professional web development crowd. It provides several handy prebuilt JavaScript components, integrates well with databases, and conforms to new standards such as XHTML and XML. Macromedia HomeSite 5 − HomeSite 5 is a well-liked HTML and JavaScript editor from Macromedia that can be used to manage personal websites effectively. Where is JavaScript Today ? The ECMAScript Edition 5 standard will be the first update to be released in over four years. JavaScript 2.0 conforms to Edition 5 of the ECMAScript standard, and the difference between the two is extremely minor. The specification for JavaScript 2.0 can be found on the following site:http://www.ecmascript.org Today, Netscape's JavaScript and Microsoft's JScript conform to the ECMAScript standard, although both the languages still support the features that are not a part of the standard." When looking at these definitions Java is client side manipulation of the DOM, not server side. Therefore Javascript will not help in network input/output operations.

Temporary DNS server

There are three methods for this
method 1;
method 3:
method 2:
1) Export the network settings using the following command: netsh -c interface dump > PATH_AND_FILENAME.txt for example you can use a flash drive for this. It might be best to name this file default.
2) Alter that computer setting up Cisco DNS as shown https://support.opendns.com/hc/en-us/articles/228006987-Windows-7
3) Export the network settings using the following command netsh -c interface dump > PATH_AND_FILENAME.txt
4) gather  computers names  through a dsquery command
This step should be done on a domain controller
dsquery * -filter "(objectCategory=Computer)" –attr name < computers.txt
alternatively this could be done by net view on a smaller business environment
net view > computers.txt
5) netsh to set remote computer group to use opendns DNS settings from the text file gathered in step 3
Maintenance.bat
FOR /F "tokens=*" %%A in (computer.txt) DO GOTO=Funt: :Funt set var = tokens netsh -r %var% -f PATH_AND_FILENAME.txt echo %var% ENDLOCAL
normal.bat
FOR /F "tokens=*" %%A in (computer.txt) DO GOTO=Funt: :Funt set var = tokens netsh -r %var% -f PATH_AND_FILENAME.txt echo %var% > success.txt ENDLOCAL
Diffs.bat
@echo on cd path for /f %%a in (computers.txt) do ( for /f %%b in (success.txt) do ( if %%a==%%b () else (netsh interface ip set dns "Local Area Connection" dhcp ) )

DNS hints

ipconfig /flushdns and temporally change DNS server in the connection properties. IE Google DNS 8.8.8.8
"It's probably caused by a local network connectivity issue (but also a DNS error is possible).
It may happen, there isn't much you can do.
What I'd suggest to always wrap that (network related) code in a loop with a try/catch block (as also suggested here for other fallible operations). Handle known exceptions, wait a little (say 1000 msec) and try again (for say 3 times). Only if failed all times then you can quit/report an error to your users. Very raw example like this:
private const int NumberOfRetries = 3; private const int DelayOnRetry = 1000; public static HttpResponseMessage GetFromUrl(string url) { for (int i=1; i <= NumberOfRetries; ++i) { try { // Also consider to make this method async and await this return new HttpClient().GetAsync(url).Result; } catch (Exception e) { // DO BETTER THAN THIS! Catch what you want to handle, // not all exceptions worth a retry. Documentation and many // tests will help you to narrow a limited subset of // exceptions and error codes. // Last one, (re)throw exception and exit if (i == NumberOfRetries) throw; // Many network related errors will recover "automatically" // after some time, exact delay is pretty arbitrary and // should be determined with some tests. 1 second is pretty // "good" for local I/O operations but network issues may // need longer delays. Thread.Sleep(DelayOnRetry); } } }"
Also I found https://www.microsoft.com/en-us/download/details.aspx?id=44226 and wireshark to be helpful in finding local DNS errors.
From Wikimedia "
o analyze DNS query traffic:
1) Observe the traffic captured in the top Wireshark packet list pane. 2) To view only DNS traffic, type udp.port == 53 (lower case) in the Filter box and press Enter. 3) Select the DNS packet labeled Standard query A en.wikiversity.org. Observe the packet details in the middle Wireshark packet details pane. Notice that it is an Ethernet II / Internet Protocol Version 4 / User Datagram Protocol / Domain Name System (query) frame.4)Expand Ethernet II to view Ethernet details.5) Observe the Destination and Source fields. The destination should be either your local DNS server's MAC address or your default gateway's MAC address and the source should be your MAC address. 6) You can use ipconfig /all and arp -a to confirm. 7) Expand Internet Protocol Version 4 to view IP details. 8) Observe the Source address. Notice that the source address is your IP address. 9) Observe the Destination address. Notice that the destination address is the IP address of the DNS server. Expand User Datagram Protocol to view UDP details. 10) Observe the Source port. Notice that it is a dynamic port selected for this DNS query. Observe the Destination port. Notice that it is domain (53), the DNS server port. Expand Domain Name System (query) to view DNS details. Expand Flags to view flags details. Observe the Recursion desired field. Notice that a recursive query is requested. Expand Queries to view query details. Observe the query for en.wikiversity.org. Activity 3 - Analyze DNS Response Traffic
To analyze DNS response traffic:
In the top Wireshark packet list pane, select the next DNS packet, labeled Standard query response CNAME wikiversity.... Observe the packet details in the middle Wireshark packet details pane. Notice that it is an Ethernet II / Internet Protocol Version 4 / User Datagram Protocol / Domain Name System (response) frame. Expand Ethernet II to view Ethernet details. Observe the Destination and Source fields. The destination should be your MAC address and the source should be your local DNS server's MAC address or your default gateway's MAC address. Expand Internet Protocol Version 4 to view IP details. Observe the Source address. Notice that the source address is the DNS server IP address. Observe the Destination address. Notice that the destination address is your IP address. Expand User Datagram Protocol to view UDP details. Observe the Source port. Notice that it is domain (53), the DNS server port. Observe the Destination port. Notice that it is the same dynamic port used to make the DNS query in the first packet. Expand Domain Name System (query) to view DNS details. Expand Flags to view flags details. Observe the flags. Notice that this is a recursive response. Expand Queries to view query details. Observe the query for en.wikiversity.org. Expand Answers to view answer details. Observe the CNAME and A records returned in response to this DNS query."
"Tip 2: Understand where DNS information is stored DNS zone data can be stored in the AD information tree or in the file system in c:\%systemroot%\system32\dns. I strongly recommend that you store zone information in AD, then replicate this zone information either to every DNS server in the domain (DomainDNSZones) or possibly in the forest (ForestDNSZones). Storing DNS information on every DNS server in the domain, then forwarding upstream to the parent zone is an optimal choice. DNS forwarding would be set up so that DNS servers in child1.domain1.local and child2.domain1.local forward to DNS servers in parent domain1.local. In the parent domain, there would be delegation to each child domain. (For additional information about DNS zone location, see my article "Chasing the DNS Zone Location Problem".)
Tip 3: Identify whether the DNS problem is a name-registration or name-resolution problemTo resolve a name, the name must be registered in a zone on a DNS server. In a Windows environment, different services register different records. In Windows 7, Windows Vista, Windows Server 2008 R2, and Server 2008, the DNS client service registers A and PTR records. In Windows XP and Windows Server 2003, the DHCP client service registers A and PTR records. The registration interval is 24 hours, except for when the DHCP server is doing the registering; in this case, the registration should take place when the DHCP client's lease is renewed.
In Server 2008 R2, Server 2008, and Windows 2003, the Netlogon service is responsible for the registration of some additional records. A log of the records registered by the Netlogon service is located at %SystemRoot%\System32\Config\Netlogon.dns. Domain controllers (DCs) dynamically register 15 to 30 SRV records every hour in Server 2008, whereas in Windows 2003 the registration by Netlogon is every 24 hours.
In Server 2008, the Cluster service registers the cluster network name resource when the resource comes online. The record is updated at least once every 24 hours. The setting RegisterAllProvidersIP can be used to determine whether all IP addresses for the network name resource are registered in DNS. (For more information, see the Microsoft article "Description of what to consider when you deploy Windows Server 2008 failover cluster nodes on different, routed subnets".)
The problem is a DNS registration issue. If DNS records are not present in the DNS console, use ADSI Edit to verify that the records are not simply being displayed in the DNS console GUI or in AD. Verify record existence in AD by following the steps in the article "Event ID 4515 is logged in the DNS Server log in Windows Server 2003". If the records are not present, install Microsoft's Network Monitor on the machine performing the DNS registration and take a network trace while attempting to register the A, PTR, or SRV records. To initiate A and PTR record registration, issue this command:
ipconfig /registerdns
For SRV record registration, issue this command:
c:\net stop netlogon && net start netlogon
Stop the network trace and filter on DNS traffic. If no registration traffic is present in the network trace, focus on whether the service responsible for the registration (DHCP client, DNS client, Netlogon, Cluster) is running, and check the event logs. (If you're still stuck at this point, it may be time to call Microsoft Support.)
The problem is a DNS resolution issue. If the technical issue is not related to DNS record registration, change the troubleshooting approach and investigate DNS name resolution. First, ping the Fully Qualified Domain Name (FQDN) of the target and determine success or failure. If the failure is by name and not by IP address, verify that the DNS server settings are properly configured in the TCP/IP properties of the machine initiating the query. Next, start a network trace and clear the resolver cache by issuing this command:
c:\ipconfig /flushdns
Now ping the target by FQDN (e.g., ping server.domain1.local). Stop the network trace and determine whether there is an outbound DNS query and/or an inbound DNS response. The goal here is to determine whether the issue is with getting a query to the DNS server or if the DNS server gets the query and either doesn't respond or the response fails to reach the DNS query initiator.
Tip 4: Use DNS diagnostic tools To assist you in troubleshooting DNS issues, make sure you have these tools in your DNS toolkit: DNSLint, DCDiag, and NSlookup.
DNSLint. The DNSLint utility has three functional tests, all of which output results to an HTML report. The test are for "lame delegation", the DNS records required for AD replication to succeed, and verifying a user-defined set of DNS records on multiple DNS servers. Specify /d on the dnslint command to perform the domain name test and provide results that can help in diagnosing lame delegation. Specify /s to indicate the IP address of the DNS server for the DNS server authoritative for the domain. Specify /ad to determine whether the DNS record needing AD forest replication is resolvable. (For more information, see "Description of the DNSLint utility".)
DCDiag. You can run the dcdiag command using the option /test:DNS. Test options include a DNS basic test and tests for forwarders and root hints, delegation, DNS dynamic updates, DNS record registration, and Internet name testing.
Test the health of a DC:
DCDIAG /TEST:DNS /v /s:<DCNAME> /f:<filename.log>
Test the health of all forest DCs:
DCDIAG /TEST:DNS /f /e /f:<filename.log>
Test the DC's ability to register the DC Locator DNS records:
DCDIAG /TEST:RegisterInDNS /DnsDomain:<FQDN of domain> /v /f:<filename.log>
(In the previous commands, /v specifies verbose output, /s means run local, /f means direct output to file, and /e means test all servers.)
In Windows 2003 SP2, use the DCDiag utility included with SP2, as described in support.microsoft.com/kb/926027. In Server 2008 and Server 2008 R2, install DCDiag by navigating to Server Manager, Features, Add Features, Remote Server Administration Tools, Role Administration Tools, Select DNS Server Tools, Next, Install.
NSlookup. This is a well-known command for DNS troubleshooting. View NSlookup syntax variations by running NSlookup from a command prompt, then issuing the command help. Keep in mind that NSlookup has its own built-in stub resolver in the executable and does not use the OS's resolver.
Tip 5: Microsoft DNS best practices Check your Server 2008 R2 DNS environment's heath by using the Microsoft Best Practices Analyzer (BPA) included in Server 2008 R2. Two variations of the tool exist: one for best practices for DNS configuration, and the second for best practices for DNS operation. BPA is helpful tool for scanning your Server 2008 R2 DNS environment and investigating potential DNS configuration issues.
To open BPA, follow these steps:
Go to Start, Administrative Tools, and click Server Manager. In the tree pane, open Roles, then select the role for which you want to open BPA. In the details pane, open the Summary section, then open the Best Practices Analyzer area.
For more information about BPA, see the Best Practices Analyzer page.
For Windows Server 2008, a DNS model exists for the Microsoft Baseline Configuration Analyzer (MBCA). The MBCA tool compares DNS server configurations against DNS best practices outlined in the MBCA 2.0 DNS model. You can download MBCA here.
Healthy DNS, Healthy AD A Windows AD environment can experience a variety of problems when name resolution fails. Determine whether the problem is localized to a machine, subnet, or network. Next, determine whether the problem is with DNS name registration or with DNS name resolution. Finally, use Microsoft tools when needed, both for troubleshooting and keeping your DNS environment healthy."

Non profit Azure

Notes: I heard the end of life for Windows 7 is coming up in January of 2020. Political jokes aside this date is coming up and Microsoft no longer supports free upgrades.

Also DSC is a little more up to date over GPO. I will blog about DSC and agentless Chef in an upcoming blog post.

I found a way to connect Windows 7 machines to active services in Microsoft Azure. There is a process to get it free from Microsoft. To do this go to techsoup and get a authorization code. Next head to http://eligibilityweb.azurewebsites.net/ In this task, you enable Azure AD Domain Services for your directory. Perform the following configuration steps to enable Azure AD Domain Services for your directory.

Navigate to the Azure classic portal (https://manage.windowsazure.com/).
Select the Active Directory node on the left pane.
Select the Azure AD tenant (directory) for which you would like to enable Azure AD Domain Services.

Select Azure AD Directory

Click the Configure tab.

Configure tab of directory

Scroll down to a section titled domain services.

Domain Services configuration section

Toggle the option titled Enable domain services for this directory to YES. You notice a few more configuration options for Azure AD Domain services appear on the page.

Enable Domain Services

Note

When you enable Azure AD Domain Services for your tenant, Azure AD generates and stores the Kerberos and NTLM credential hashes that are required for authenticating users.
Specify the DNS domain name of domain services.

The default domain name of the directory (that is, ending with the .onmicrosoft.com domain suffix) is selected by default.
The list contains all domains that have been configured for your Azure AD directory – including verified as well as unverified domains that you configure in the ‘Domains’ tab.
Additionally, you can also type a custom domain name. In this example, we have typed in a custom domain name 'contoso100.com'.

Warning

Ensure that the domain prefix of the domain name you specify (for example, 'contoso100' in the 'contoso100.com' domain name) is fewer than 15 characters. You cannot create an Azure AD Domain Services domain with a domain prefix longer than 15 characters.
Ensure that the DNS domain name you have chosen for the managed domain does not already exist in the virtual network. Specifically, check if:

you already have a domain with the same DNS domain name on the virtual network.
the virtual network you've selected has a VPN connection with your on-premises network and you have a domain with the same DNS domain name on your on-premises network.
you have an existing cloud service with that name on the virtual network.
The next step is to select a virtual network in which you'd like Azure AD Domain Services to be available. Select the virtual network and dedicated subnet you created in the drop-down titled Connect domain services to this virtual network.

Ensure that the virtual network you have specified belongs to an Azure region supported by Azure AD Domain Services. Refer to the Azure services by region page to know the Azure regions in which Azure AD Domain Services is available.
Virtual networks belonging to a region where Azure AD Domain Services is not supported do not show up in the drop-down list.
Use a dedicated subnet within the virtual network for Azure AD Domain Services. Ensure you do not select the gateway subnet. See networking considerations.
Similarly, virtual networks that were created using Azure Resource Manager do not appear in the drop-down list. Resource Manager-based virtual networks are not currently supported by Azure AD Domain Services.
To enable Azure AD Domain Services, click Save from the task pane at the bottom of the page.
The page displays a ‘Pending …’ state, while Azure AD Domain Services is being enabled for your directory.

Enable Domain Services - pending state

P



Note

Azure AD Domain Services provides high availability for your managed domain. After you enable Azure AD Domain Services, notice the IP addresses at which Domain Services are available on the virtual network show up one by one. The second IP address is displayed shortly, as soon the service enables high availability for your domain. When high availability is configured and active for your domain, you should see two IP addresses in the domain services section of the Configure tab.
After about 20-30 minutes, you see the first IP address at which Domain Services is available on your virtual network in the IP address field on the Configure page.

Domain Services enabled - first IP provisioned

When high availability is operational for your domain, you see two IP addresses displayed on the page. Your managed domain is available on your selected virtual network at these two IP addresses. Note down the IP addresses so you can update the DNS settings for your virtual network. This step enables virtual machines on the virtual network to connect to the domain for operations such as domain join.

Domain Services enabled - both IPs provisioned

Note

Depending on the size of your Azure AD tenant (number of users, groups etc.), synchronizationto your managed domain takes a while. This synchronization process happens in the background. For large tenants with tens of thousands of objects, it may take a day or two for all users, group memberships, and credentials to be synchronized.


Task 4 - Update DNS settings for the Azure virtual network
The next configuration task is to update the DNS settings for the Azure virtual network. Task 4: Update DNS settings for the Azure virtual network
In preceding configuration tasks, you have successfully enabled Azure AD Domain Services for your directory. The next task is to ensure that computers within the virtual network can connect and consume these services. Update the DNS server settings for your virtual network to point to the two IP addresses at which Azure AD Domain Services is available on the virtual network.

Note

Note down the IP addresses for Azure AD Domain Services displayed on the Configure tab of your directory, after you have enabled Azure AD Domain Services for the directory.
Perform the following configuration steps to update the DNS server setting for the virtual network in which you have enabled Azure AD Domain Services.

Navigate to the Azure classic portal (https://manage.windowsazure.com/).
Select the Networks node on the left pane.

Virtual networks node

In the Virtual Networks tab, select the virtual network in which you enabled Azure AD Domain Services to view its properties.
Click the Configure tab.

Virtual networks node

In the DNS servers section, enter the IP addresses of Azure AD Domain Services.
Ensure that you enter both the IP addresses that were displayed in the Domain Services section on the Configure tab of your directory.
To save the DNS server settings for this virtual network, click Save on the task pane at the bottom of the page.

Update the DNS server settings for the virtual network.

Note

After updating the DNS server settings for the virtual network, it may take a while for virtual machines on the network to get the updated DNS configuration. If a virtual machine is unable to connect to the domain, you can flush the DNS cache (eg. 'ipconfig /flushdns') on the virtual machine. This command forces a refresh of the DNS settings on the virtual machine.
Task 5 - Enable password synchronization to Azure AD Domain Services
The next configuration task is to enable password synchronization to Azure AD Domain Services.

In preceding tasks, you enabled Azure AD Domain Services for your Azure AD tenant. The next task is to enable credential hashes required for NTLM and Kerberos authentication to synchronize to Azure AD Domain Services. Once credential synchronization is set up, users can sign in to the managed domain using their corporate credentials.

The steps involved are different based on whether your organization has a cloud-only Azure AD tenant or is set to synchronize with your on-premises directory using Azure AD Connect.





Task 5: Enable password synchronization to AAD Domain Services for a cloud-only Azure AD tenant
Azure AD Domain Services needs credential hashes in a format suitable for NTLM and Kerberos authentication, to authenticate users on the managed domain. Unless you enable AAD Domain Services for your tenant, Azure AD does not generate or store credential hashes in the format required for NTLM or Kerberos authentication. For obvious security reasons, Azure AD also does not store any credentials in clear-text form. Therefore, Azure AD does not have a way to generate these NTLM or Kerberos credential hashes based on users' existing credentials.

Note

If your organization has a cloud-only Azure AD tenant, users that need to use Azure AD Domain Services must change their passwords.
This password change process causes the credential hashes required by Azure AD Domain Services for Kerberos and NTLM authentication to be generated in Azure AD. You can either expire passwords for all users in the tenant that need to use Azure AD Domain Services or instruct these users to change their passwords.

Enable NTLM and Kerberos credential hash generation for a cloud-only Azure AD tenant

Here are instructions you need to provide end users, so they can change their passwords:

Navigate to the Azure AD Access Panel page for your organization at http://myapps.microsoft.com/
Select the profile tab on this page.
Click the Change password tile on this page.

Create a virtual network for Azure AD Domain Services.

Note

If you do not see the Change password option on the Access Panel page, ensure that your organization has configured password management in Azure AD.
On the change password page, type your existing (old) password and then type a new password and confirm it. Click submit.

Create a virtual network for Azure AD Domain Services.

After you have changed your password, the new password will be usable in Azure AD Domain Services shortly. After a few minutes (typically, about 20 minutes), you can sign in to computers joined to the managed domain using the newly changed password.

Here is the documentation for getting Windows 7 on Azure domain join https://docs.microsoft.com/en-us/azure/active-directory/active-directory-conditional-access-automatic-device-registration-windows7 Basically it involves downloading a MSI that can be run on the Windows 7 machines and can be pushed out using the existing services as a group policy. To block any computer from getting this update go to the computer and go to regedit as an administrator and click on the folder containing the policies and remove system from having write access. go that computer and go press windows key and the r key for run and type in regedit and navigate to HKCU\Software\Policies
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies and right click and navigate to permissions and select deny for full control and read for the user name "system" https://support.microsoft.com/en-us/help/816102/how-to-use-group-policy-to-remotely-install-software-in-windows-server-2008-and-in-windows-server-2003