How to Disable IPv6 through Group Policy
http://social.technet.microsoft.com/wiki/contents/articles/5927.how-to-disable-ipv6-through-group-policy.aspx
Tuesday, February 11, 2014
Thursday, January 30, 2014
SQL 2012 and Scale-out-file-server. Unable to Attach a Database
Working with a client with an installation of a Clustered SQL 2012 R2 servers with a Clustered File Server providing SMB3 shares to a Scale-Out-File-Server, we discovered that we could not attach an existing Database file.
The error message is:
As a test, we can create a new database, verify that it exists, detach it, and then immediately try to re-attach it, and we get the error.
We of course have verified that the Administrative User, the SQL Service Account, and the Computers all have full rights to this data directory.
We opened a case with Microsoft, and after 4 hours on the phone, were told that this appears to be a bug when using a UNC, presumably on a Scale-out-file-Server, for our data.
The workaround is to use a SQL command to attach the database instead.
(Filename ='\\sqlserver-1\SQLServer-Data\SQLdata-1\Logs\OldData_log.ldf')
The error message is:
Cannot access the specified path or file on the server. Verify
that you have the necessary security privileges and that the path or file
exists.
As a test, we can create a new database, verify that it exists, detach it, and then immediately try to re-attach it, and we get the error.
We of course have verified that the Administrative User, the SQL Service Account, and the Computers all have full rights to this data directory.
We opened a case with Microsoft, and after 4 hours on the phone, were told that this appears to be a bug when using a UNC, presumably on a Scale-out-file-Server, for our data.
The workaround is to use a SQL command to attach the database instead.
Create
database OldData On
(Filename = '\\sqlserver-1\SQLServer-Data\SQLdata-1\Data\OldData.mdf'),(Filename ='\\sqlserver-1\SQLServer-Data\SQLdata-1\Logs\OldData_log.ldf')
for ATTACH
Labels:
Clustering,
Microsoft,
SMB3,
SQL,
Windows 2012
Friday, January 10, 2014
Internet Explorer 11 (Windows 8.1) "Google Bug". Back Button hangs IE
I discovered this week that there is a bug in Google's web page that causes Internet Explorer 11 to hang when you click the back button.
The specific scenario is that when you start on Google's web page, and go to a link of some sort, it can trigger this bug when you click back to return to google.
This is fairly well documented on some forums, in that it has been like this for a while, and Google seems unwilling, or unable, to modify their code to not trigger this bug. I do not consider it a IE11 bug as much as I consider it a problem with Google. Microsoft should of course fix their issue, but also you would think that Google might take this seriously.
To trigger the issue, Go to google.com and search for something that takes you to a Microsoft page. Example: "Exchange edge server". Click on the first link and then click on any link on that Microsoft page. Then click back twice. The first "back" will work fine because it takes you to the original Microsoft page. Now click Back again. IE will eventually display (Not responding) on the status line, and you will need to force a closure of the browser.
I do not know of any workaround, other than to always open any link on the Google web page with a right-click and "Open new tab", or even easier is to use another browse such as Firefox.
Before anyone flames me, I did do all of the standard things such as:
The specific scenario is that when you start on Google's web page, and go to a link of some sort, it can trigger this bug when you click back to return to google.
This is fairly well documented on some forums, in that it has been like this for a while, and Google seems unwilling, or unable, to modify their code to not trigger this bug. I do not consider it a IE11 bug as much as I consider it a problem with Google. Microsoft should of course fix their issue, but also you would think that Google might take this seriously.
To trigger the issue, Go to google.com and search for something that takes you to a Microsoft page. Example: "Exchange edge server". Click on the first link and then click on any link on that Microsoft page. Then click back twice. The first "back" will work fine because it takes you to the original Microsoft page. Now click Back again. IE will eventually display (Not responding) on the status line, and you will need to force a closure of the browser.
I do not know of any workaround, other than to always open any link on the Google web page with a right-click and "Open new tab", or even easier is to use another browse such as Firefox.
Before anyone flames me, I did do all of the standard things such as:
- Start Internet Explorer with no Plugings (iexplorer.exe -extoff)
- Remove and Re-install IE 11
(http://windows.microsoft.com/en-ca/internet-explorer/install-ie#ie=ie-11)
(IE 11 will automatically uninstall upon reboot if the feature is unchecked in Windows 8.1/Server 2012 R2) - Investigate the Patch for IE11 for Windows 8.1 (won't install on my machine)
http://support.microsoft.com/kb/2901549
Labels:
Google,
Internet Explorer,
Microsoft
SMTP and Spamhaus blocking. What I learned today.
I was setting up a new client with an Exchange Server, and we discovered that we could not send email to any Microsoft Hosted email addresses. Basically, to a subdomain of Outlook.com.
All office 365 hosted email domain are subdomains of this address.
The issue was discovered when we tried to send an email manually using a text based email tool.
The dialog looks like this (note that the unique data has been modified for privacy):
blat.exe -body "this is a test" -to someone@o365hosted.ca -server o365hosted.mail.protection.outlook.com -f me@legit.ca -s "Test of SMTP" -debug
Blat v3.1.1 (build : Feb 27 2013 20:04:23)
32-bit Windows, Full, Unicode
<<6:46 +0000
>>>putline>>> EHLO lab1-exch2013
<<<<... Text removed for clarity
<<Sending stdin.txt to someone@o365hosted.ca
Subject: Test of SMTP
Login name is Me@legit.ca
>>>putline>>> MAIL FROM:<Me@legit.ca>
<<>>>putline>>> RCPT TO:<someone@o365hosted.ca >
<<http://www.spamhaus.org/lookup.lasso
*** Warning *** The SMTP server does not like the name someone@o365hosted.ca.
*** Warning *** Have you set the 'To:' field correctly, or do you need authorization (-u/-pw) ?
*** Warning *** The SMTP server response was -> 550 5.7.1 Service unavailable; Client host [123.45.67.89] blocked using Spamhaus; To request removal from this list see http://www.spamhaus.org/lookup.lasso
>>>putline>>> QUIT
<<
The IP address (not shown) was a static IP assigned to a Telus.Net client.
A quick check at MXToolbox.com revealed that blocked at Spamhaus, and SORBS, but no others.
Next, a check at Spamhaus indicated that the IP Address is listed in the PBL. What is the PBL you say? It is a list of addresses that require Authentication or discrete PTR records in order to be trusted.
See https://www.spamhaus.org/lookup/ and enter your IP address for a lookup.
In my case is says:
By default, this assumes that the IP is a Dynamically Assigned IP. In our case of course, from Telus.
There are 2 solutions for our problem of being able to send to any email domain by MX record.
All office 365 hosted email domain are subdomains of this address.
The issue was discovered when we tried to send an email manually using a text based email tool.
The dialog looks like this (note that the unique data has been modified for privacy):
blat.exe -body "this is a test" -to someone@o365hosted.ca -server o365hosted.mail.protection.outlook.com -f me@legit.ca -s "Test of SMTP" -debug
Blat v3.1.1 (build : Feb 27 2013 20:04:23)
32-bit Windows, Full, Unicode
<<
>>>putline>>> EHLO lab1-exch2013
<<
<<
Subject: Test of SMTP
Login name is Me@legit.ca
>>>putline>>> MAIL FROM:<Me@legit.ca>
<<
<<
*** Warning *** The SMTP server does not like the name someone@o365hosted.ca.
*** Warning *** Have you set the 'To:' field correctly, or do you need authorization (-u/-pw) ?
*** Warning *** The SMTP server response was -> 550 5.7.1 Service unavailable; Client host [123.45.67.89] blocked using Spamhaus; To request removal from this list see http://www.spamhaus.org/lookup.lasso
>>>putline>>> QUIT
<<
The IP address (not shown) was a static IP assigned to a Telus.Net client.
A quick check at MXToolbox.com revealed that blocked at Spamhaus, and SORBS, but no others.
Next, a check at Spamhaus indicated that the IP Address is listed in the PBL. What is the PBL you say? It is a list of addresses that require Authentication or discrete PTR records in order to be trusted.
See https://www.spamhaus.org/lookup/ and enter your IP address for a lookup.
In my case is says:
By default, this assumes that the IP is a Dynamically Assigned IP. In our case of course, from Telus.
There are 2 solutions for our problem of being able to send to any email domain by MX record.
- We could go to Telus and request a discrete PTR record, or
- we can simple configure the Exchange Send Connector to use the SMTP Smart host of smtp.telus.net.
Labels:
Office365,
outlook.com,
SMTP,
Spamhaus
Thursday, December 5, 2013
How to configure Primary DC to sync time with an external Time Source
This article explains how to configure your Windows Server 2008 R2 Active Directory Primary Domain Controller to synchronize time with an external time source.
Note: In an active directory, all member computers will sync time with the PDC, so you only need to setup an external time source on the PDC.
Open an elevated command prompt and type the following:
You can run W32tm /resync on member computers to sync time with the PDC.
A good reliable time source to use is pool.ntp.org.
Check out the NTP Project for world wide time sources.
Also note: from Microsoft:
http://support.microsoft.com/kb/816042
Note: In an active directory, all member computers will sync time with the PDC, so you only need to setup an external time source on the PDC.
Open an elevated command prompt and type the following:
Net Stop W32Time W32tm /config /syncfromflags:manual /manualpeerlist:"" W32tm /config /reliable:yes Net Start W32Time W32tm /config /update W32tm /resync
You can run W32tm /resync on member computers to sync time with the PDC.
A good reliable time source to use is pool.ntp.org.
Check out the NTP Project for world wide time sources.
Also note: from Microsoft:
http://support.microsoft.com/kb/816042
Monday, November 25, 2013
Powershell Tricks and Notes
How to expand parameterizedProperty
Note if you issue the following command:
Get-ADComputer -Filter * |Get-Member
You will get the following result:
TypeName: Microsoft.ActiveDirectory.Management.ADComputer
Name MemberType Definition
---- ---------- ----------
Contains Method bool Contains(string propertyName)
Equals Method bool Equals(System.Object obj)
GetEnumerator Method System.Collections.IDictionaryEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Item ParameterizedProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection Item(string p...
DistinguishedName Property System.String DistinguishedName {get;set;}
DNSHostName Property System.String DNSHostName {get;set;}
Enabled Property System.Boolean Enabled {get;set;}
Name Property System.String Name {get;}
ObjectClass Property System.String ObjectClass {get;set;}
ObjectGUID Property System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, ...
SamAccountName Property System.String SamAccountName {get;set;}
SID Property System.Security.Principal.SecurityIdentifier SID {get;set;}
UserPrincipalName Property System.String UserPrincipalName {get;set;}
Notice that property "Item".
So when you type:
Get-ADComputer -Filter * -Property * |Get-Member
You hope tp get something that expands the properties of "Item".
Now. What if you get an error:
PS C:\Data\Scripts> Get-ADComputer -Identity lab17dc1 -property * |gm
Get-ADComputer : One or more properties are invalid.
Parameter name: msDS-AssignedAuthNPolicy
At line:1 char:1
+ Get-ADComputer -Identity lab17dc1 -property * |gm
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (lab17dc1:ADComputer) [Get-ADComputer], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm
ands.GetADComputer
Well that is a big Oops. It is actually a bug in AD.
Here is a workaround for THIS bug. To get your properties, do the following:
Get-ADComputer -Identity lab17dc1 |Get-ADObject -properties *|gm
Now you get something like:
TypeName: Microsoft.ActiveDirectory.Management.ADObject
Name MemberType Definition
---- ---------- ----------
Contains Method bool Contains(string propertyName)
Equals Method bool Equals(System.Object obj)
GetEnumerator Method System.Collections.IDictionaryEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Item ParameterizedProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
accountExpires Property System.Int64 accountExpires {get;set;}
badPasswordTime Property System.Int64 badPasswordTime {get;set;}
badPwdCount Property System.Int32 badPwdCount {get;set;}
CanonicalName Property System.String CanonicalName {get;}
CN Property System.String CN {get;}
codePage Property System.Int32 codePage {get;set;}
countryCode Property System.Int32 countryCode {get;set;}
Created Property System.DateTime Created {get;}
createTimeStamp Property System.DateTime createTimeStamp {get;}
Deleted Property System.Boolean Deleted {get;}
Description Property System.String Description {get;set;}
DisplayName Property System.String DisplayName {get;set;}
DistinguishedName Property System.String DistinguishedName {get;set;}
dNSHostName Property System.String dNSHostName {get;set;}
dSCorePropagationData Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
instanceType Property System.Int32 instanceType {get;}
isCriticalSystemObject Property System.Boolean isCriticalSystemObject {get;set;}
isDeleted Property System.Boolean isDeleted {get;}
LastKnownParent Property System.String LastKnownParent {get;}
lastLogoff Property System.Int64 lastLogoff {get;set;}
lastLogon Property System.Int64 lastLogon {get;set;}
lastLogonTimestamp Property System.Int64 lastLogonTimestamp {get;set;}
localPolicyFlags Property System.Int32 localPolicyFlags {get;set;}
logonCount Property System.Int32 logonCount {get;set;}
Modified Property System.DateTime Modified {get;}
modifyTimeStamp Property System.DateTime modifyTimeStamp {get;}
msDFSR-ComputerReferenceBL Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
msDS-GenerationId Property System.Byte[] msDS-GenerationId {get;}
msDS-SupportedEncryptionTypes Property System.Int32 msDS-SupportedEncryptionTypes {get;set;}
Name Property System.String Name {get;}
nTSecurityDescriptor Property System.DirectoryServices.ActiveDirectorySecurity nTSecurityDes...
ObjectCategory Property System.String ObjectCategory {get;}
ObjectClass Property System.String ObjectClass {get;set;}
ObjectGUID Property System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Cul...
objectSid Property System.Security.Principal.SecurityIdentifier objectSid {get;}
operatingSystem Property System.String operatingSystem {get;set;}
operatingSystemVersion Property System.String operatingSystemVersion {get;set;}
primaryGroupID Property System.Int32 primaryGroupID {get;set;}
ProtectedFromAccidentalDeletion Property System.Boolean ProtectedFromAccidentalDeletion {get;set;}
pwdLastSet Property System.Int64 pwdLastSet {get;set;}
rIDSetReferences Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
sAMAccountName Property System.String sAMAccountName {get;set;}
sAMAccountType Property System.Int32 sAMAccountType {get;set;}
sDRightsEffective Property System.Int32 sDRightsEffective {get;}
serverReferenceBL Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
servicePrincipalName Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
userAccountControl Property System.Int32 userAccountControl {get;set;}
uSNChanged Property System.Int64 uSNChanged {get;}
uSNCreated Property System.Int64 uSNCreated {get;}
whenChanged Property System.DateTime whenChanged {get;}
whenCreated Property System.DateTime whenCreated {get;}
Note if you issue the following command:
Get-ADComputer -Filter * |Get-Member
You will get the following result:
TypeName: Microsoft.ActiveDirectory.Management.ADComputer
Name MemberType Definition
---- ---------- ----------
Contains Method bool Contains(string propertyName)
Equals Method bool Equals(System.Object obj)
GetEnumerator Method System.Collections.IDictionaryEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Item ParameterizedProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection Item(string p...
DistinguishedName Property System.String DistinguishedName {get;set;}
DNSHostName Property System.String DNSHostName {get;set;}
Enabled Property System.Boolean Enabled {get;set;}
Name Property System.String Name {get;}
ObjectClass Property System.String ObjectClass {get;set;}
ObjectGUID Property System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, ...
SamAccountName Property System.String SamAccountName {get;set;}
SID Property System.Security.Principal.SecurityIdentifier SID {get;set;}
UserPrincipalName Property System.String UserPrincipalName {get;set;}
Notice that property "Item".
So when you type:
Get-ADComputer -Filter * -Property * |Get-Member
You hope tp get something that expands the properties of "Item".
Now. What if you get an error:
PS C:\Data\Scripts> Get-ADComputer -Identity lab17dc1 -property * |gm
Get-ADComputer : One or more properties are invalid.
Parameter name: msDS-AssignedAuthNPolicy
At line:1 char:1
+ Get-ADComputer -Identity lab17dc1 -property * |gm
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (lab17dc1:ADComputer) [Get-ADComputer], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm
ands.GetADComputer
Well that is a big Oops. It is actually a bug in AD.
Here is a workaround for THIS bug. To get your properties, do the following:
Get-ADComputer -Identity lab17dc1 |Get-ADObject -properties *|gm
Now you get something like:
TypeName: Microsoft.ActiveDirectory.Management.ADObject
Name MemberType Definition
---- ---------- ----------
Contains Method bool Contains(string propertyName)
Equals Method bool Equals(System.Object obj)
GetEnumerator Method System.Collections.IDictionaryEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Item ParameterizedProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
accountExpires Property System.Int64 accountExpires {get;set;}
badPasswordTime Property System.Int64 badPasswordTime {get;set;}
badPwdCount Property System.Int32 badPwdCount {get;set;}
CanonicalName Property System.String CanonicalName {get;}
CN Property System.String CN {get;}
codePage Property System.Int32 codePage {get;set;}
countryCode Property System.Int32 countryCode {get;set;}
Created Property System.DateTime Created {get;}
createTimeStamp Property System.DateTime createTimeStamp {get;}
Deleted Property System.Boolean Deleted {get;}
Description Property System.String Description {get;set;}
DisplayName Property System.String DisplayName {get;set;}
DistinguishedName Property System.String DistinguishedName {get;set;}
dNSHostName Property System.String dNSHostName {get;set;}
dSCorePropagationData Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
instanceType Property System.Int32 instanceType {get;}
isCriticalSystemObject Property System.Boolean isCriticalSystemObject {get;set;}
isDeleted Property System.Boolean isDeleted {get;}
LastKnownParent Property System.String LastKnownParent {get;}
lastLogoff Property System.Int64 lastLogoff {get;set;}
lastLogon Property System.Int64 lastLogon {get;set;}
lastLogonTimestamp Property System.Int64 lastLogonTimestamp {get;set;}
localPolicyFlags Property System.Int32 localPolicyFlags {get;set;}
logonCount Property System.Int32 logonCount {get;set;}
Modified Property System.DateTime Modified {get;}
modifyTimeStamp Property System.DateTime modifyTimeStamp {get;}
msDFSR-ComputerReferenceBL Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
msDS-GenerationId Property System.Byte[] msDS-GenerationId {get;}
msDS-SupportedEncryptionTypes Property System.Int32 msDS-SupportedEncryptionTypes {get;set;}
Name Property System.String Name {get;}
nTSecurityDescriptor Property System.DirectoryServices.ActiveDirectorySecurity nTSecurityDes...
ObjectCategory Property System.String ObjectCategory {get;}
ObjectClass Property System.String ObjectClass {get;set;}
ObjectGUID Property System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Cul...
objectSid Property System.Security.Principal.SecurityIdentifier objectSid {get;}
operatingSystem Property System.String operatingSystem {get;set;}
operatingSystemVersion Property System.String operatingSystemVersion {get;set;}
primaryGroupID Property System.Int32 primaryGroupID {get;set;}
ProtectedFromAccidentalDeletion Property System.Boolean ProtectedFromAccidentalDeletion {get;set;}
pwdLastSet Property System.Int64 pwdLastSet {get;set;}
rIDSetReferences Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
sAMAccountName Property System.String sAMAccountName {get;set;}
sAMAccountType Property System.Int32 sAMAccountType {get;set;}
sDRightsEffective Property System.Int32 sDRightsEffective {get;}
serverReferenceBL Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
servicePrincipalName Property Microsoft.ActiveDirectory.Management.ADPropertyValueCollection...
userAccountControl Property System.Int32 userAccountControl {get;set;}
uSNChanged Property System.Int64 uSNChanged {get;}
uSNCreated Property System.Int64 uSNCreated {get;}
whenChanged Property System.DateTime whenChanged {get;}
whenCreated Property System.DateTime whenCreated {get;}
Labels:
AD,
Microsoft,
powershell
Tuesday, November 12, 2013
Use Excel's conditional formatting to highlight weekends
Use Excel's conditional formatting to highlight weekends
Excellent, simple, article on how to highlight weekends in a spreadsheet. Includes a sample spreadsheet for downloading.
http://www.techrepublic.com/blog/windows-and-office/use-excels-conditional-formatting-to-highlight-weekends/
Excellent, simple, article on how to highlight weekends in a spreadsheet. Includes a sample spreadsheet for downloading.
http://www.techrepublic.com/blog/windows-and-office/use-excels-conditional-formatting-to-highlight-weekends/
Subscribe to:
Posts (Atom)