tag:blogger.com,1999:blog-62429212643741375962024-03-13T17:54:56.201+01:00full fart i norgePaulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.comBlogger29125tag:blogger.com,1999:blog-6242921264374137596.post-89572537860160686862020-12-01T12:05:00.004+01:002020-12-01T12:07:26.827+01:00Teams: Requesting control is disabled by the sharer company's administrator<p>Go to the Teams Admin portal</p><p>Under <b>Meetings</b>, <b>Meeting policies</b>, check which policies you have</p><p>Make sure the meeting policy you are using has the following enabled</p><p></p><div class="separator" style="clear: both; text-align: left;"><a href="https://lh3.googleusercontent.com/-cw0KR6lSX1E/X8Yhnj_DfnI/AAAAAAABhfA/KGHioHwDkRwxh1PLpZlOsDZpAluLFR_mgCLcBGAsYHQ/image.png" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="456" data-original-width="1046" height="227" src="https://lh3.googleusercontent.com/-cw0KR6lSX1E/X8Yhnj_DfnI/AAAAAAABhfA/KGHioHwDkRwxh1PLpZlOsDZpAluLFR_mgCLcBGAsYHQ/w519-h227/image.png" width="519" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Next, make sure that policy is applying to the users</div><br />Under <b>Users</b>, click on <b>View policies</b>. You may need to click on the gear icon to show the column.<p></p><p>In my case, <b>RestrictedAnonymousAccess</b> was applying and overriding the settings in <b>Global (Org-wide default)</b></p><p><b></b></p><div class="separator" style="clear: both; text-align: center;"><b><a href="https://lh3.googleusercontent.com/-RrHw1vLyJ90/X8YjwvVhFOI/AAAAAAABhfQ/Q6NUh10cu78A9zwWFjLNpmIa8WaZsqMewCLcBGAsYHQ/image.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="241" data-original-width="1628" height="98" src="https://lh3.googleusercontent.com/-RrHw1vLyJ90/X8YjwvVhFOI/AAAAAAABhfQ/Q6NUh10cu78A9zwWFjLNpmIa8WaZsqMewCLcBGAsYHQ/w669-h98/image.png" width="669" /></a></b></div><b><br /><br /></b><p></p><p><b><br /></b></p><p><br /></p><p>Use the following post on Microsoft to fix<br /><a href="https://docs.microsoft.com/en-us/microsoftteams/meeting-policies-restricted-anonymous-access">https://docs.microsoft.com/en-us/microsoftteams/meeting-policies-restricted-anonymous-access</a></p><p>Depending on the size of your organisation, you can use the <b>Users </b>page to assign the policies in bulk.</p><p>Get the user to sign out and back into the Teams client</p>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-82188951435340781882016-02-03T11:21:00.003+01:002016-02-03T11:21:46.080+01:00Stopping the Default Email Address Policy applying to MailUsers and MailContacts, and removing the excess email addresses you accidentally addedThe Default Email Address Policy applies to every object in Exchange. This will include any MailContacts or MailUsers you have created. To work around this, try the following:<br /><br />First, make sure you have an Email Address Policy created for your own users. This will apply to Exchange mailboxes, Resource mailbox and any Mail-enabled groups. This will have a priority of 1<br /><br />Now for the workaround.<br /><br />Create a new dummy Accepted Domain<br /><br /><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">New-AcceptedDomain -Name "External Contacts" -DomainName external.contacts</span></span><br /><br /> Now create a new Email Address Policy<br /><br /><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">New-EmailAddressPolicy -Name "External Contacts" –EnabledPrimarySMTPAddressTemplate "SMTP:%m@external.contacts" -IncludedRecipients "MailContacts,MailUsers" -Priority 2</span></span><br /><br />This will assign the email address <b>alias@external.contacts</b> to any future MailContacts or MailUsers<br /><br /> Now to remove all the additional email addresses from MailUsers and MailContacts you may have accidentally added...<br /><br />The command below, will remove all email addresses, apart from the primarysmtpaddress<br /><br /><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">get-mailuser |foreach {set-mailuser -identity $_.identity -emailaddresses "SMTP:$($_.primarysmtpaddress)"} </span></span><br /><br />If you get any permission errors, you need to <b>Enable Inheritance</b> in Security settings of their AD object<br /><br /> You can check to see what email addresses a MailUser has with<br /><br /><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">get-mailuser | fl identity,primarysmtpaddress,emailaddresses </span></span><br /><br />Now replace <span style="font-family: "Courier New",Courier,monospace;">get-mailuser</span> with <span style="font-family: "Courier New",Courier,monospace;">get-mailcontact</span>, and <span style="font-family: "Courier New",Courier,monospace;">set-mailuser</span> with <span style="font-family: "Courier New",Courier,monospace;">set-mailcontact</span> in the commands above to complete the process <br /><br /><br /><br />Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-9464841057996888602015-06-03T08:41:00.001+02:002018-06-08T14:47:50.481+02:00Deleting a Specific Email from all Exchange Mailboxes Using Powershell (eg. Spam, Phishing, Virus)If your organisation receives a dodgy email, or someone within your organisation forwards one, here is a PS one-liner to delete it from all mailboxes in Exchange 2010<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Get-Mailbox -ResultSize Unlimited | Search-Mailbox -SearchQuery 'Subject:"*Anlieferung Ihrer Sendung 35171196631*"' -DeleteContent</span><br />
<br />
Obviously, you will need to make sure your search term only targets that specific email. Luckily in the case above, it is a very unique email subject!<br />
<br />
It is also recommended to type this command out manually, rather than copying from the page. Single and double quotes can get lost in the translation!<br />
<br />
You can preview how many messages will be deleted by replacing <b>-DeleteContent</b> with <b>-EstimateResultOnly</b><br />
<br />
The more mailboxes and emails you have, the longer this will take to complete.<br />
<br />
Another useful example is when someone accidentally sends an email to the entire company. This can be used so that the sender and intended recipient still keep their email, but everyone else does not.<br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Get-Mailbox -ResultSize Unlimited |?{$_.DisplayName -ne "Name of Sender"} |?{$_.DisplayName -ne "Name of Intended Recipient"}|Search-Mailbox -SearchQuery {Subject:"Subject title to search for" AND From:"Name of Sender"} -deletecontent</span><br />
<br />
This does not search any PST files a user has, just their Exchange mailboxPaulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-66577423446485407992015-03-20T09:27:00.003+01:002015-03-20T09:27:53.258+01:00Bad Request - Request Too Long when downloading Skype for Business PreviewIf you are getting the error<br />
<br />
<h2>
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">Bad Request - Request Too Long</span></span></h2>
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">HTTP Error 400. The size of the request headers is too long. </span></span><br />
<br />
when downloading Skype for Business Preview (Office 2016,) use Internet Explorer instead.<br />
<br />Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-69412493912207026582014-11-06T09:56:00.001+01:002014-11-06T09:56:21.917+01:00Outlook 2013 IMAP Inbox Empty with Telenor Webmail (online.no)When connecting Outlook to IMAP from Telenor (online.no) the Inbox was empty; only Sent items were available.<br />
<br />
This is because Telenor have all the folders under the Inbox. You can see this by right clicking on the Inbox and choosing <b>IMAP Folders</b>. You will then see, Inbox, Inbox.Drafts, Inbox.Sent and so on<br />
<br />
To fix this you need to set the <b>Root folder path</b> setting to <b>Inbox</b><br />
<br />
Open Outlook then click on <b>File</b>, <b>Account Settings, </b>then <b>Account Settings </b>again.<br />
Click on your (Telenor) IMAP account and click <b>Change</b><br />
Click <b>More Settings ...</b> then <b>Advanced</b><br />
Under <b>Folders</b> it should say <b>Root folder path:</b><br />
Type <b>Inbox</b><b> </b><br />
Click <b>OK</b> and continue to exit out of the dialogue boxes<br />
<br />
The Inbox should now synchronise as normal.Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-70690064631974288952014-10-27T11:13:00.001+01:002014-10-27T13:52:14.745+01:00Mouse sticking on monitor edgesThis will stop the mouse pointer from sticking at the monitor edges, when moving slowly between two monitors. This seems to be happening on Windows 8.1 Update 1, and Windows Technical Preview.<br />
<br />
Run <span style="font-family: "Courier New",Courier,monospace;"><b>regedit</b></span><br />
Navigate to <span style="font-family: "Courier New",Courier,monospace;">HKEY_CURRENT_USER\Control Panel\Desktop</span><br />
<span style="font-family: inherit;">Look for the value <span style="font-family: "Courier New",Courier,monospace;">MouseMonitorEscapeSpeed</span></span><br />
<span style="font-family: inherit;">If it doesn<span style="font-family: inherit;">'t ex<span style="font-family: inherit;">sist, creat<span style="font-family: inherit;">e a new <span style="font-family: "Courier New",Courier,monospace;">DWORD</span> valu<span style="font-family: inherit;">e</span></span></span></span> </span>for it<br />
<br />
Set the value to <span style="font-family: "Courier New",Courier,monospace;"><b>1</b></span><br />
<br />
Now go to <span style="font-family: "Courier New",Courier,monospace;">HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell </span><br />
<br />
Create a new Key called <span style="font-family: "Courier New",Courier,monospace;"><b>EdgeUI</b></span><br />
<br />
Create a new DWORD called <span style="font-family: inherit;"><span style="font-family: "Courier New",Courier,monospace;">MouseMonitorEscapeSpeed</span></span> and set the value to <span style="font-family: "Courier New",Courier,monospace;">1</span><br />
<br />
Now restart your computer.<br />
<br />
This is a per-user setting, so if there are multiple users on a computer, you will need to edit this setting for every user.Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-85024478408446460102014-08-05T10:17:00.000+02:002014-08-18T12:34:00.320+02:00Changing to ACHI from RAID (Dell T5500)Replacing 3x SAS disk RAID on a Perc6 controller, with a single SSD connected to the motherboard SATA ports, I needed to perform the following steps; otherwise I would get a BSOD on booting.<br />
<br />
Run <b>regedit</b><br />
Edit the following keys so that the value is <b>0 </b>instead of <b>3 </b><br />
<br />
(Windows 7)<br />
<span style="font-family: "Courier New",Courier,monospace;">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Msahci\Start</span><br />
<br />
(Windows 8)<br />
<span style="font-family: "Courier New",Courier,monospace;">HKEY_LOCAL_MACHINE<b>\</b>SYSTEM<b>\</b>CurrentControlSet\Services\storahci\Start</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\IastorV\Start</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\atapi\Start </span><br />
<br />
Reboot, then change the BIOS settings in the from <span style="font-family: "Courier New",Courier,monospace;">RAID </span>to <span style="font-family: "Courier New",Courier,monospace;">RAID/ACHI Autodetect</span><br />
Make sure the SATA ports are enabled in the BIOS<br />
<br />
Apply the BIOS settings, then reboot.Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-11080923817881757442014-04-14T09:57:00.001+02:002014-04-14T09:58:23.885+02:00Test SQL OLE Connection StringA quick way to test or generate an OLE SQL connection string for your application<br />
<br />
For example, troubleshooting the following UniFLOW database connection string<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">Provider=SQLOLEDB.1;Persist Security Info=True;User ID=<i><some_User></i>;Password=<i><some_password></i>;Initial Catalog=<i><Database></i>;Data Source=<i><SQL_Server></i>;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096</span><br />
<br />
Log on to the server running the application<br />
<br />
Right click on the desktop and choose <b>New -> Text document</b><br />
Rename the document <b>SQLTest.udl </b>- the <b>UDL</b> extenstion is the important part<br />
<br />
Double click the new file and a <b>Data Link Properties</b> wizard should pop up<br />
<br />
You can now enter the details of the database server and test the connection<br />
<br />
Clicking <b>OK</b> will save the connection string into the SQLTest.udl file. Just open it with Notepad to see the connection string.Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-45895126486423055992014-02-06T15:06:00.000+01:002014-04-30T11:34:50.862+02:00Remove OEM Modern UI (Metro) Apps from Windows 8.1<span style="font-family: inherit; font-size: small;">Use these PowerShell commands to remove any OEM Modern Apps. In this example, anything not published by Microsoft is removed. It's best to do this while in the first account you create, before joining a domain </span><br />
<br />
<span style="font-family: inherit; font-size: small;">You need to run these from an administrative PowerShell session.</span><br />
<span style="font-family: inherit; font-size: small;"><br /></span>
<span style="font-family: inherit; font-size: small;">Use this code first to see what will be removed:</span><br />
<br />
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">Get-AppxPackage -AllUsers | where Publisher -notmatch "Microsoft"</span></span><br />
<span style="font-family: inherit; font-size: small;">This will show currently installed apps, and who has them installed<span style="color: black;"> </span></span><br />
<br />
<span style="font-family: inherit; font-size: small;"><span style="color: black;"><span style="font-family: "Courier New",Courier,monospace;">Get-AppxProvisionedPackage -online | where PackageName -notmatch "Microsoft" </span></span></span><br />
<span style="font-family: inherit; font-size: small;"><span style="color: black;">This will show apps that are part of the image Windows was deployed with</span></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-family: inherit; font-size: small;"><span style="color: black;">In both instances, the Sony Vaio listed McAfee Virus Control, the Intel App store, Skype and some Vaio apps.</span></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-family: inherit; font-size: small;"><span style="color: black;">Then to remove:</span></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;"><span style="color: black;">Get-AppxPackage
-AllUsers | where Publisher -notmatch "Microsoft" | Remove-AppxPackage</span></span></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-family: inherit;"><span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;"><span style="color: black;">Get-AppxProvisionedPackage -online | where PackageName -notmatch
"Microsoft" | Remove-AppxProvisionedPackage - online</span></span></span> </span>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-58804592524763416222013-12-06T14:02:00.003+01:002013-12-06T14:04:03.953+01:00Getting Make and Model from WMIC for WDT/MDTWhen setting up your driver folders, their names need to follow the WMIC make and model. Here are the commands to get this information.<br />
<br />
From an elevated command prompt:<br />
<br />
For computer model<br />
<span style="font-family: "Courier New",Courier,monospace;">wmic computersystem get model </span><br />
<br />
For computer make/manufacturer<br />
<span style="font-family: "Courier New",Courier,monospace;">wmic computersystem get manufacturer</span>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-45343242806486970422013-08-09T11:21:00.000+02:002013-08-09T11:21:13.660+02:00Searching for a file using Unix command lineThis will search the current directory and all sub-directories for an exact match of string in quotes<br />
<span style="font-family: "Courier New",Courier,monospace;"><br /></span>
<span style="font-family: "Courier New",Courier,monospace;"><kbd>find . -name "<span style="font-family: "Courier New",Courier,monospace;">searchstring</span>" -prin<span style="font-family: "Courier New",Courier,monospace;">t</span></kbd></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><kbd><span style="font-family: "Courier New",Courier,monospace;"> </span> </kbd></span><br />
Here is an example with output<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">[root@cacti /]# find . -name "cacti" -print<br />./etc/logrotate.d/cacti<br />./var/backups/cacti<br />./var/lib/mysql/cacti
</span><br />
<br />
You can add asterisks as a wild card. The example below finds any filename that contains the search string<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">[root@cacti /]# find . -name "*cacti*" -print<br />./etc/logrotate.d/<b>cacti</b><br />./home/<b>cacti</b>-0.8.8a<br />./usr/libexec/webmin/<b>cacti</b>ez<br />./var/backups/<b>cacti</b><br />./var/lib/mysql/<b>cacti</b>
</span>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-10582673964931264202013-07-30T10:31:00.003+02:002013-07-30T10:31:35.917+02:00Change Server 2012 or Windows 8 Product KeyFrom the Start Screen (Modern UI) type<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">slui.exe 0x3</span><br />
<br />
and press return<br />
<br />
A new window should open allowing you to enter a Product KeyPaulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-72127344633223211962013-07-29T08:15:00.003+02:002013-08-19T08:51:49.015+02:00Office 2010 SP2 activation fails with error 0x80070190 I have an Office 2010 deployment with SP2 updates copied into the Updates folder.<br />
<br />
On a new install, if the Activation Wizard appeared, it would not
activate, giving an error<br />
<br />
<span style="font-family: "Courier New", Courier, monospace;">An unspecified error has occurred. Your request cannot be processed at this time. Please try again later. (0x80070190)</span><br />
<br />
It seems the activation wizard is no longer automatically UAC prompting for elevated permissions.<br />
<br />
To work around this, there are two options:<br />
<br />
Using the Administrative Command Prompt, navigate to<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">C:\Program Files\Microsoft
Office\Office14<br />
</span><br />
or<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">C:\Program Files (x86)\Microsoft Office\Office14 </span><br />
<br />
Then run<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">cscript ospp.vbs /act</span><br /><br />The software activated using the MAK already provided by the Office Customisation Tool<br />
<br />
Alternatively, if you navigate to where Office is installed and right click on
an Office program and <span style="font-family: "Courier New",Courier,monospace;">Run As Administrator</span> eg. EXCEL, POWERPNT, WINWORD<br />
<br />
Then GUI activation will succeed<br />
<br />
If you are using Windows 7, you can press the Start button on your keyboard and type <span style="font-family: "Courier New",Courier,monospace;">Word</span><span style="font-family: inherit;">. </span><br />
<br /><span style="font-family: "Courier New",Courier,monospace;">Microsoft Word 2010</span> should appear at the top. Then hold down <span style="font-family: "Courier New",Courier,monospace;">Ctrl</span> & <span style="font-family: "Courier New",Courier,monospace;">Shift</span> keys, and press return. This will also launch the program as an administrator<br />
<br />
The same also applies to <b>Visio </b>and <b>Project</b>. No Office product will
activate unless performed from an administrative command prompt or
explicitly running the program as Administrator Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com37tag:blogger.com,1999:blog-6242921264374137596.post-13137647063959285542013-07-10T11:33:00.002+02:002013-07-10T11:33:37.203+02:00How to tell if you are UEFI booting into WindowsOpen an administrative command prompt and type<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">bcdedit /enum</span><br />
<br />
You should get something similar to this:<br />
<br />
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">Windows Boot Manager<br />--------------------<br />identifier {bootmgr}<br />device partition=G:<br /><span style="color: #3d85c6;"><b>path \EFI\Microsoft\Boot\bootmgfw.efi</b></span><br />description Windows Boot Manager<br />locale en-US<br />inherit {globalsettings}<br />default {current}<br />resumeobject {c60ccebc-b3b0-11e2-a58b-f01faf015989}<br />displayorder {current}<br />toolsdisplayorder {memdiag}<br />timeout 30<br /><br />Windows Boot Loader<br />-------------------<br />identifier {current}<br />device partition=C:<br /><span style="color: #3d85c6;"><b>path \WINDOWS\system32\winload.efi</b></span><br />description Windows 8.1 Preview<br />locale en-US<br />inherit {bootloadersettings}<br />recoverysequence {c60ccebe-b3b0-11e2-a58b-f01faf015989}<br />recoveryenabled Yes<br />isolatedcontext Yes<br />allowedinmemorysettings 0x15000075<br />osdevice partition=C:<br />systemroot \WINDOWS<br />resumeobject {c60ccebc-b3b0-11e2-a58b-f01faf015989}<br />nx OptIn<br />bootmenupolicy Standard </span></span><br />
<br />
Look for the <b>path</b> variable.<br />
<br />
If it ends in<span style="font-family: "Courier New",Courier,monospace;"> .efi</span> - you are UEFI booting<br />
It will end in <span style="font-family: "Courier New",Courier,monospace;">.exe</span> if you are booting in the older wayPaulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-30354564801988780752013-06-27T13:40:00.000+02:002013-06-27T13:40:24.117+02:00Windows 8.1 Preview fails to installInstalling through the Windows Store, when the process reached the final stages I experienced a BSOD. Subsequently, the install process rolled back. <br />
<br />
The install error given was <span style="font-family: "Courier New",Courier,monospace;">0xC1900101 - 0x4000D</span><br />
<br />
Looking at the BSOD information a driver called <span style="font-family: "Courier New",Courier,monospace;">AKSDF.SYS</span><b><span style="font-family: "Courier New",Courier,monospace;"> </span></b>was the cause. It seems to be some sort of licensing software, though I'm not sure where it came from or what it protects; the install date was around the same time as the installation of Fiery Printserver controller software and X-Rite i1 colour calibration software.<br />
<br />
Uninstalling the software did not make a difference to retrying the 8.1 upgrade.<br />
<br />
I had to manually delete all files in <span style="font-family: "Courier New",Courier,monospace;">C:\Windows\</span> that matched the following pattern:<br />
<b><br /></b><span style="font-family: "Courier New",Courier,monospace;">AKS*.SYS</span><br />
<br />
If I only deleted <span style="font-family: "Courier New",Courier,monospace;">AKSDF.SYS</span>, <span style="font-family: "Courier New",Courier,monospace;">AKSFRIDGE.SYS</span> caused a BSOD on the next attempt. So they all had to go.<br />
<br />
Windows 8.1 Preview successfully installed after thatPaulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com4tag:blogger.com,1999:blog-6242921264374137596.post-24099224770104084082013-04-24T10:31:00.001+02:002013-04-24T10:37:22.975+02:00SonicWall SSL VPN NetExtender, Mac OSX and the Microsoft RDP clientWhen connecting via NetExtender to a SonicWall SSL VPN appliance, RDP connections to a Windows Terminal Server may not work.<br />
<br />
It seems the Microsoft RDP client is launched instead of the SonicWall Java-based RDP client.
This fails to connect successfully. However, if you specify the IP address of the terminal server manually it will work, but most end users will not know this IP! <br />
<br />
<br />
To work around this, create a dedicated bookmark on the SonicWall with the service set to<br />
"Terminal Services (RDP - Java)"<br />
<br />
It's also a good idea to install the latest NetExtender client software from Dell SonicWall by visiting<br />
<br />
<a href="https://sslvpn.demo.sonicwall.com/">https://sslvpn.demo.sonicwall.com/</a><br />
<br />
and logging into their demo system. This will update the client software on your computer to the latest version. Useful in case your SonicWall firmware is a few revisions behind!Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-50969050149122003402013-03-14T13:47:00.003+01:002015-11-27T13:08:02.134+01:00Install .NET 3.5 on Server 2012 or Windows 8, 10, 2012Make sure you have the Windows 8, 10 or Server 2012 installation disc in your drive<br />
<br />
In the example below, the installation disc is in the D:\ drive<br />
<br />
Open an administrative PowerShell command window and enter the following:<br />
<br />
<b>Server 2012</b><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="userInput">Install-WindowsFeature –name NET-Framework-Core –source <b>D:\sources\sxs</b></span></span><br />
<br />
<b><span style="font-family: inherit;">Windows 8, 10</span></b><br />
<span style="font-family: "courier new" , "courier" , monospace;">Enable-WindowsOptionalFeature –online –featurename NetFx3 -source <b>D:\sources\sxs</b></span><br />
<br />
<span style="font-family: inherit;">Wait until installation is complete, then run Windows Update to get the latest patches and fixes</span>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-69093929834137525212013-02-06T08:19:00.001+01:002013-02-06T08:19:52.623+01:00Upgrade Windows 2012 Evaluation with a full version keyOpen an administrative command prompt<br />
<br />
Use<br />
<span style="font-family: "Courier New",Courier,monospace;">DISM /online /Get-TargetEditions</span><br />
to list the versions you can
upgrade to. They are listed under "Target Edition"<br />
<br />
To upgrade from Evaluation to Standard use<br />
<span style="font-family: "Courier New",Courier,monospace;">DISM /online
/Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
/AcceptEula </span><br />
<br />
You should be prompted to reboot.<br />
<br />
This will not work for Evaluation Domain Controllers. See <a href="http://technet.microsoft.com/en-us/library/jj574204.aspx" target="_blank">here</a>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-58097692346001807552012-12-17T11:48:00.002+01:002012-12-17T11:48:26.811+01:00Remotely Configure Hibernation and Page File Using PsExecDownload and install (copy to c:\windows) PSExec from <a href="http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx">http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx</a><br />
<br />Open a command prompt on your local computer, then enter<br /><span style="font-family: "Courier New",Courier,monospace;">psexec \\<remote_computer_name> -u <username> -p <password> cmd</span><br />This should will give you cmd access to the remote computer<br /><br />
From there enter<br /><span style="font-family: "Courier New",Courier,monospace;">powercfg /hibernate off</span><br />to disable Hibernation<br /><br />
then<br /><span style="font-family: "Courier New",Courier,monospace;">wmic computersystem where name="%computername%" set AutomaticManagedPagefile=False</span><br />to disable the system managed page file<br /><br />
and<br /><span style="font-family: "Courier New",Courier,monospace;">wmic pagefileset where name="C:\\pagefile.sys" set InitialSize=4096,MaximumSize=4096</span><br />To set the pagefile to a fixed size of 4096 MB Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-4426444820191902572012-09-27T14:18:00.003+02:002012-09-27T14:18:46.653+02:00Kill a VM via SSH on ESXi5<span style="font-family: "Courier New",Courier,monospace;">esxcli vm process list</span><br />
<br />
note the <b>World ID</b> number then<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">esxcli vm process kill --type hard --world-id </span>xxxxx<br />
<br />
where xxxxx is the <b>World ID</b> numberPaulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-82316221138797516772012-09-11T09:28:00.004+02:002012-09-11T09:28:52.699+02:00Open Administrative Command Prompt with right clickTaken from<br />
<br />
Works on Windows 8 too<br />
<br />
Code for backup purposes, just paste into a new text document and change the extension to .reg<br />
Double click to import<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">Windows Registry Editor Version 5.00<br /><br />; Created by: Shawn Brink<br />; http://www.sevenforums.com<br />; Tutorial: http://www.sevenforums.com/tutorials/47415-open-command-window-here-administrator.html<br /><br /><br /><br />[-HKEY_CLASSES_ROOT\Directory\shell\runas]<br /><br />[HKEY_CLASSES_ROOT\Directory\shell\runas]<br />@="Open command window here as Administrator"<br />"HasLUAShield"=""<br /><br />[HKEY_CLASSES_ROOT\Directory\shell\runas\command]<br />@="cmd.exe /s /k pushd \"%V\""<br /><br />[-HKEY_CLASSES_ROOT\Directory\Background\shell\runas]<br /><br />[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]<br />@="Open command window here as Administrator"<br />"HasLUAShield"=""<br /><br />[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]<br />@="cmd.exe /s /k pushd \"%V\""<br /><br />[-HKEY_CLASSES_ROOT\Drive\shell\runas]<br /><br />[HKEY_CLASSES_ROOT\Drive\shell\runas]<br />@="Open command window here as Administrator"<br />"HasLUAShield"=""<br /><br />[HKEY_CLASSES_ROOT\Drive\shell\runas\command]<br />@="cmd.exe /s /k pushd \"%V\""</span></span>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-77345658138762287532012-09-03T12:28:00.001+02:002012-09-04T09:16:04.838+02:00Script to remove all Java pluginsOriginal script was found in the comments section at <a href="http://www.itninja.com/question/silent-uninstall-java-all-versions">http://www.itninja.com/question/silent-uninstall-java-all-versions</a><br />
<br />
You can run this on a computer manually, or deploy using GPO or <a href="http://www.adminarsenal.com/home" target="_blank">PDQ Deploy</a><br />
<br />
Create a empty .vbs file, eg <b>purge_java.vbs</b> and paste the code at the bottom of this post.<br />
<br />
Run it using:<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">cscript "\\mynetworklocation\purge_java.vbs" /logfilepath:"%userprofile%"</span></span><br />
<br />
You could also pipe the output to a log file on a network share so you can keep a track of the progress throughout your network. It creates a seperate log file per computer. This also checks for the presence of an existing logfile to stop the script running multiple times. Put this into a BAT file. The commands I am using keeps the recent Java 7 Update 7. This will preserve both the 64 and 32bit plugins.<br />
<br />
<span style="font-size: xx-small;"><span style="font-family: "Courier New",Courier,monospace;">@ECHO OFF </span></span><br />
<span style="font-size: xx-small;"><span style="font-family: "Courier New",Courier,monospace;">REM Logs purge_java.vbs output<br />REM Checks for previous output and wont run if found</span></span><br />
<span style="font-size: xx-small;"><span style="font-family: "Courier New",Courier,monospace;">SET LOGFILE="\\mynetworklocation\log\java_purge_%computername%.log"<br />IF EXIST %LOGFILE% GOTO END<br />cscript "\\mynetworklocation\purge_java.vbs" /keeponly /versions:"Java 7 Update 7" /logfilepath:"%userprofile%" >> %LOGFILE%<br />:END</span></span><br />
<br />
The purge_java.vbs code is below:<br />
<br />
<span style="font-size: xx-small;"><span style="font-family: "Courier New",Courier,monospace;">'***************************************************************************************<br />'Java removal script.<br />'Version: 3.0<br />'Description: Removes specified Java versions based on command line parameters.<br />' !!!!!!USE AT YOUR OWN RISK!!!!!!!<br />'2011.03.09 - 2.0 - First version. Assumes %SYSTEMDRIVE%\Logs exists.<br />'2011.03.23 - 2.1 - Fixes issue running in 32bit SCCM under 64bit Windows.<br />'2011.03.30 - 2.2 - Adds array of versions to keep.<br />'2011.04.24 - 3.0 - Added command line parameters. Still doesn't make the log directory!<br />'***************************************************************************************<br />'-----------------------------Begin Main Script--------------------------------<br />Option Explicit<br /><br />'If help is specified on the command line, show it and quit.<br />If WScript.Arguments.Named.Count < 1 Or WScript.Arguments.Named.Exists("help") Or WScript.Arguments.Named.Exists("?") Then<br /> PrintHelp()<br /> WScript.Quit(0)<br />End If<br /><br />Dim aryVersions, aryVersionsx86Onx64<br />Dim bolKeepJava<br />Dim colNamedArguments, colProcesses<br />Dim objWMIService, objProcessor, objProcess<br />Dim strArgument, strLogFilePath<br /><br />'Set default command line parameters.<br />'The script defaults to removing all versions of Java without leaving uninstall logs.<br />bolKeepJava = 1<br />strLogFilePath = ""<br />aryVersions = Array()<br />aryVersionsx86Onx64 = Array()<br /><br />'Start script logging.<br />WScript.Echo "**********************************"<br />WScript.Echo "Java uninstall script started at " & Now()<br /><br />'Parse command line parameters.<br />If WScript.Arguments.Named.Count > 0 Then<br /> Set colNamedArguments = WScript.Arguments.Named<br /><br /> For Each strArgument in colNamedArguments<br /> Select Case LCase(strArgument)<br /> Case "keeponly"<br /> Case "removeonly"<br /> bolKeepJava = 0<br /> Case "logfilepath"<br /> strLogFilePath = colNamedArguments.Item(strArgument)<br /> Case "versions"<br /> aryVersions = Split(colNamedArguments.Item(strArgument), ";", -1, 1)<br /> Case "versionsx86onx64"<br /> aryVersionsx86Onx64 = Split(colNamedArguments.Item(strArgument), ";", -1, 1)<br /> Case Else<br /> WScript.Echo vbCrLf & "Unknown switch: " & strArgument & "."<br /> WScript.Echo vbCrLf & "Java uninstall script finished at " & Now()<br /> WScript.Echo "**********************************" & vbCrLf<br /> PrintHelp()<br /> WScript.Quit(2)<br /> End Select<br /> Next<br />End If<br /><br />'Output the parameters the script was run with.<br />WScript.Echo vbCrLf & "----------------------------------"<br />WScript.Echo "Script parameters:"<br /> If bolKeepJava Then<br /> WScript.Echo "Specified Java versions found will be kept. Other versions will be removed."<br /> Else<br /> WScript.Echo "Specified Java versions found will be removed. Other versions will be kept."<br /> End If<br /><br /> 'This check is important. It will default the versions array if no versions were specified. Without this the whole thing falls apart.<br /> If (Ubound(aryVersions) < 0 ) Then<br /> aryVersions = Array("FooBar")<br /> WScript.Echo "No native Java versions specified on the command line."<br /> Else<br /> WScript.Echo "Native Java versions specified on the command line."<br /> End If<br /><br /> 'If no non-native versions are specified set the non-native array to the native array.<br /> If (Ubound(aryVersionsx86Onx64) < 0) Then<br /> aryVersionsx86Onx64 = aryVersions<br /> WScript.Echo "No x86 Java versions for x64 systems specified on the command line." & vbCrLf & "Using specified native verions for x86 also."<br /> Else<br /> WScript.Echo "x86 Java versions for x64 systems specified on the command line."<br /> End If<br /><br /> If strLogFilePath = "" Or IsNull(strLogFilePath) Then<br /> WScript.Echo "Uninstall logfile path is empty. Uninstall logs will not be created."<br /> Else<br /> 'If the log file path does not end in a \ put one on there!<br /> If (StrComp(Right(strLogFilePath,1), "\") <> 0) Then<br /> strLogFilePath = strLogFilePath & "\"<br /> End If<br /> WScript.Echo "Uninstall log file path: " & strLogFilePath & "."<br /> End If<br />WScript.Echo "----------------------------------"<br /><br />'Get a WMI Service object.<br />Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate, (Debug)}\\.\root\cimv2")<br /><br />'Get processor object. objProcessor.AddressWidth will give us bitness. Check objProcessor.AddressWidth = "32" or "64"<br />Set objProcessor = GetObject("winmgmts:\\.\root\cimv2:Win32_Processor='cpu0'")<br /><br />'Kill processes that might prevent installs or uninstalls.<br />Set colProcesses = objWMIService.ExecQuery("Select Name from Win32_Process Where Name = 'jqs.exe' OR Name = 'jusched.exe' OR Name = 'jucheck.exe' OR Name = 'jp2launcher.exe' OR Name = 'java.exe' OR Name = 'javaws.exe' OR Name = 'javaw.exe'", "WQL", 48)<br /><br />WScript.Echo vbCrLf & "----------------------------------"<br />WScript.Echo "Checking for problematic processes."<br /><br />'Set this to look for errors that aren't fatal when killing processes.<br />On Error Resume Next<br /><br />'Cycle through found problematic processes and kill them.<br />For Each objProcess in colProcesses<br /><br /> WScript.Echo "Found process " & objProcess.Name & "."<br /><br /> objProcess.Terminate()<br /><br /> Select Case Err.Number<br /> Case 0<br /> WScript.Echo "Killed process " & objProcess.Name & "."<br /> Err.Clear<br /> Case -2147217406<br /> WScript.Echo "Process " & objProcess.Name & " already closed."<br /> Err.Clear<br /> Case Else<br /> WScript.Echo "Could not kill process " & objProcess.Name & "! Aborting Script!"<br /> WScript.Echo "Error Number: " & Err.Number<br /> WScript.Echo "Error Description: " & Err.Description<br /> WScript.Echo "Finished problematic process check."<br /> WScript.Echo "----------------------------------"<br /> WScript.Echo vbCrLf & "Java uninstall script finished at " & Now()<br /> WScript.Echo "**********************************" & vbCrLf<br /> WScript.Quit(1)<br /> End Select<br /><br />Next<br /><br />'Resume normal error handling.<br />On Error Goto 0<br /><br />WScript.Echo "Finished problematic process check."<br />WScript.Echo "----------------------------------"<br /><br />'This call will remove x64 versions on a x64 system and x86 versions on a x86 system.<br />RemoveJava "Software\Microsoft\Windows\CurrentVersion\Uninstall\", aryVersions, strLogFilePath, objProcessor<br /><br />'This call will remove x86 versions on a x64 system.<br />If (objProcessor.AddressWidth = "64") Then<br /> RemoveJava "Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\", aryVersionsx86Onx64, strLogFilePath, objProcessor<br />End If<br /><br />WScript.Echo vbCrLf & "Java uninstall script finished at " & Now()<br />WScript.Echo "**********************************" & vbCrLf<br />'-------------------------------End Main Script--------------------------------<br /><br />'---------------------------------Functions------------------------------------<br />Function RemoveJava(strRegistryPath, aryVersions, strLogFilePath, objProcessor)<br /><br /> Dim objWSHShell, objRegistry, objWbemContext, objSWbemLocator, objSWbemServices<br /> Dim aryUninstallKeys<br /> Dim strUninstallKey, strDisplayName, strUninstallString, strVersion<br /> Dim intUninstallReturnCode<br /><br /> Set objWSHShell = CreateObject("WScript.Shell")<br /><br /> 'The following SWbem setup allows a script running in a x86 context, such as under the SCCM client, on a x64 system<br /> 'to access the full x64 registry. Without this the actual registry paths will be transparently redirected to the<br /> 'Wow6432Node branch for every registry call to HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall.<br /> 'Essentially this transparent redirection would hide 64bit Java runtimes from a script running in 32bit mode on a 64bit OS.<br /><br /> 'Provides the bitness context parameters for registry calls.<br /> Set objWbemContext = CreateObject("WbemScripting.SWbemNamedValueSet")<br /> objWbemContext.Add "__ProviderArchitecture", objProcessor.AddressWidth<br /> objWbemContext.Add "__RequiredArchitecture", true<br /><br /> 'Create SWbemLocator to connect to WMI<br /> Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")<br /><br /> 'Actually connect to the WMI service using the SWbemLocator and the SWbemContext parameters.<br /> Set objSWbemServices = objSWbemLocator.ConnectServer(".","root\default","","",,,,objWbemContext)<br /><br /> 'Get the Standard Registry Provider from WMI... finally.<br /> Set objRegistry = objSWbemServices.Get("StdRegProv")<br /><br /> 'Find the Java uninstallers hiding in the uninstall key. &H80000002 = HKEY_LOCAL_MACHINE for this function call.<br /> objRegistry.EnumKey &H80000002, strRegistryPath, aryUninstallKeys<br /><br /> 'Enable VBS' poor excuse for error handling...<br /> On Error Resume Next<br /><br /> For Each strUninstallKey In aryUninstallKeys<br /><br /> 'These must be reset in case the GetStringValue fails to return a value. This way we don't keep values for other pieces of software.<br /> strDisplayName = ""<br /> strUninstallString = ""<br /> intUninstallReturnCode = ""<br /><br /> 'DisplayName should always be a REG_SZ<br /> objRegistry.GetStringValue &H80000002, strRegistryPath & strUninstallKey, "DisplayName", strDisplayName<br /><br /> 'Just in case GetStringValue doesn't retrieve what we want.<br /> If Err.Number <> 0 Then<br /> Wscript.Echo vbCrLf & "----------------------------------"<br /> WScript.Echo "Could not retrieve DisplayName at " & strRegistryPath & strUninstallKey & "!"<br /> WScript.Echo "Error Number: " & Err.Number<br /> WScript.Echo "Error Description: " & Err.Description<br /> Wscript.Echo "----------------------------------"<br /> strDisplayName = ""<br /> Err.Clear<br /> End If<br /><br /> 'In English: If the DisplayName contains either Java OR the DisplayName contains J2SE Runtime Environment<br /> 'AND if the DisplayName does not contain Development AND if the DisplayName does not contain JavaDB<br /> 'AND if the DisplayName does not contain Web Start<br /> 'AND if the DisplayName does not contain SAS<br /> 'AND if the DisplayName does not contain Java Auto Update then do the if block.<br /> 'Fun, eh?<br /> 'You could remove the Web Start line to get rid of JWS but the uninstall string If block would have to account for that. It currently doesn't.<br /><br /> If ((Instr(1, strDisplayName, "Java", 1) OR (Instr(1, strDisplayName, "J2SE Runtime Environment", 1))) _<br /> AND ((Instr(1, strDisplayName, "Development", 1) + Instr(1, strDisplayName, "JavaDB", 1)) < 1) _<br /> AND (Instr(1, strDisplayName, "Web Start", 1) < 1) _<br /> AND (Instr(1, strDisplayName, "SAS", 1) < 1) _<br /> AND (Instr(1, strDisplayName, "Java Auto Update", 1) < 1)) Then<br /><br /> Wscript.Echo vbCrLf & "----------------------------------"<br /> WScript.Echo "Found version: " & strDisplayName<br /> WScript.Echo "Found at: HKEY_LOCAL_MACHINE\" & strRegistryPath & strUninstallKey<br /><br /> 'UninstallString might be a REG_EXPAND_SZ but GetStringValue should retrieve what we want.<br /> objRegistry.GetStringValue &H80000002, strRegistryPath & strUninstallKey, "UninstallString", strUninstallString<br /><br /> 'Just in case GetStringValue doesn't retrieve what we want.<br /> If Err.Number <> 0 Then<br /> Wscript.Echo vbCrLf & "----------------------------------"<br /> WScript.Echo "Could not retrieve uninstall information for " & strDisplayName & "!"<br /> WScript.Echo "Error Number: " & Err.Number<br /> WScript.Echo "Error Description: " & Err.Description<br /> Wscript.Echo "----------------------------------"<br /> strUninstallString = ""<br /> Err.Clear<br /> End If<br /><br /> 'Slightly convoluted logic that determines if we're keeping or removing specific versions.<br /> For Each strVersion In aryVersions<br /> If (bolKeepJava) Then<br /> If (Instr(1, strDisplayName, strVersion, 1) > 0) Then<br /> strUninstallString = ""<br /> End If<br /> Else<br /> If (Instr(1, strDisplayName, strVersion, 1) < 1) Then<br /> strUninstallString = ""<br /> End If<br /> End If<br /> Next<br /><br /> If (strUninstallString <> "") Then<br /> 'Look for very old JRE 1.1, 1.2.x, or 1.3.0 to 1.3.0_04 and 1.3.1 to 1.3.1_04 InstallShield installs.<br /> If (Instr(1, strUninstallKey, "JRE 1", 1)) Then<br /> strUninstallString = Replace(strUninstallString, "-f", "-a -x -y -f")<br /> 'Look for 1.3.0_05 and 1.3.1_05 to 1.3.1_20 InstallShield based installs.<br /> ElseIf (Instr(1, strUninstallString, "-uninst", 1)) Then<br /> strUninstallString = ""<br /> WScript.Echo "Java versions 1.3.0_05 and 1.3.1_05 through 1.3.1_20 cannot be silently uninstalled."<br /> 'Look for a 1.4.0 to 1.4.1_07 InstallShield installation.<br /> ElseIf (Instr(1, strUninstallString, "Anytext", 1)) Then<br /> 'Create ISS script for this install and fix the uninstall string.<br /> If (CreateISSFile(strUninstallKey, objWSHShell.ExpandEnvironmentStrings("%TEMP%"))) Then<br /> strUninstallString = Replace(strUninstallString, "Anytext", "/s /SMS /w /f1""" & objWSHShell.ExpandEnvironmentStrings("%TEMP%") _<br /> & "\" & strUninstallKey & ".iss""")<br /> 'Check and add the logfile to the uninstaller string.<br /> If (strLogFilePath <> "") Then<br /> strUninstallString = strUninstallString & " /f2""" & strLogFilePath & strDisplayName & "_Uninstall.txt"""<br /> End If<br /> Else<br /> strUninstallString = ""<br /> End If<br /> 'Look for 1.4.2 and up MSI based InstallShield installs.<br /> ElseIf (Instr(1, strUninstallString, "msiexec.exe", 1)) Then<br /> 'Create MSIEXEC uninstall string.<br /> strUninstallString = "MSIEXEC.EXE /X " & strUninstallKey & " /qn /norestart"<br /> 'Check and add the logfile to the uninstaller string.<br /> If (strLogFilePath <> "") Then<br /> strUninstallString = strUninstallString & " /l*v """ & strLogFilePath & strDisplayName & "_Uninstall.txt"""<br /> End If<br /> Else<br /> strUninstallString = ""<br /> End If<br /> Else<br /> strUninstallString = ""<br /> End If<br /><br /> WScript.Echo "Uninstall string: " & strUninstallString<br /><br /> If (strUninstallString = "") Then<br /> WScript.Echo strDisplayName & " was not uninstalled."<br /> Else<br /> 'Run the uninstaller.<br /> intUninstallReturnCode = objWSHShell.Run(strUninstallString, 0, true)<br /> WScript.Echo "Uninstall return code was: " & intUninstallReturnCode & "."<br /> End If<br /><br /> WScript.Echo "----------------------------------"<br /><br /> End If<br /><br /> Next<br /><br /> 'Resume normal quit on error behavior.<br /> On Error GoTo 0<br /><br />End Function<br /><br />Function CreateISSFile(strUninstallKey, strTempPath)<br /> On Error Resume Next<br /><br /> Dim objFileSystem, objUninstallScript<br /><br /> Set objFileSystem = CreateObject("Scripting.FileSystemObject")<br /><br /> 'Create InstallShield ISS script file for the uninstallation.<br /> Set objUninstallScript = objFileSystem.OpenTextFile(strTempPath & "\" & strUninstallKey & ".iss", 2, True)<br /><br /> If (Err.Number <> 0) Then<br /> WScript.Echo "Could not create uninstall file at " & strTempPath & "\" & strUninstallKey & ".iss!"<br /> WScript.Echo "Error Number: " & Err.Number<br /> WScript.Echo "Error Description: " & Err.Description<br /> Err.Clear<br /> CreateISSFile = 0<br /> End If<br /><br /> 'One ugly write statement to cut down on the ammount of error checking that has to be done.<br /> 'That SharedFile=YesToAll creates problems with multiple versions of 1.4.0 to 1.4.1_07 installed.<br /> objUninstallScript.Write "[InstallShield Silent]" & vbCrLf & "Version=v6.00.000" & vbCrLf & "File=Response File" & vbCrLf & "[File Transfer]" & _<br /> vbCrLf & "OverwrittenReadOnly=NoToAll" & vbCrLf & "[" & strUninstallKey & "-DlgOrder]" & vbCrLf & "Dlg0=" & strUninstallKey & "-SprintfBox-0" & _<br /> vbCrLf & "Count=2" & vbCrLf & "Dlg1=" & strUninstallKey & "-File Transfer" & vbCrLf & "[" & strUninstallKey & "-SprintfBox-0]" & vbCrLf & "Result=1" & _<br /> vbCrLf & "[Application]" & vbCrLf & "Name=Java 2 Runtime Environment, SE v1.4.0" & vbCrLf & "Version=1.4.0" & vbCrLf & "Company=JavaSoft" & _<br /> vbCrLf & "Lang=0009" & vbCrLf & "[" & strUninstallKey & "-File Transfer]" & vbCrLf & "SharedFile=NoToAll"<br /><br /> If (Err.Number <> 0) Then<br /> WScript.Echo "Could not create uninstall file at " & strTempPath & "\" & strUninstallKey & ".iss!"<br /> WScript.Echo "Error Number: " & Err.Number<br /> WScript.Echo "Error Description: " & Err.Description <br /> Err.Clear<br /> CreateISSFile = 0<br /> End If<br /><br /> objUninstallScript.Close<br /><br /> If (Err.Number <> 0) Then<br /> WScript.Echo "Could not create uninstall file at " & strTempPath & "\" & strUninstallKey & ".iss!"<br /> WScript.Echo "Error Number: " & Err.Number<br /> WScript.Echo "Error Description: " & Err.Description<br /> Err.Clear<br /> CreateISSFile = 0<br /> End If<br /><br /><br /> CreateISSFile = 1<br /><br />End Function<br /><br />Function PrintHelp()<br /> 'Just prints out the help when run with /help /? or no arguments.<br /> WScript.Echo vbCrLf & "Java Runtime Environment Removal Script v3.0" & vbCrLf<br /> WScript.Echo "Removes Java runtimes based on command line parameters." & vbCrLf & "Default parameters removes all Java versions without creating logs."<br /> WScript.Echo "Does not uninstall Java versions 1.3.0_05 and 1.3.1_05 through 1.3.1_20." & vbCrLf & "They do not uninstall silently." & vbCrLf<br /> WScript.Echo "Command line switches:" & vbCrLf<br /> WScript.Echo "/keeponly" & vbTab & vbTab & "Script keeps only versions specified." & vbCrLf & vbTab & vbTab & vbTab & "If no versions are specified no versions are kept." & vbCrLf<br /> WScript.Echo "/removeonly" & vbTab & vbTab & "Script removes only versions specified." & vbCrLf & vbTab & vbTab & vbTab & "If no versions are specified no versions are removed." & vbCrLf<br /> WScript.Echo "/versions:" & vbTab & vbTab & "Specifies verions to act on." & vbCrLf & vbTab & vbTab & vbTab & "Versions are seperated by semicolons." & vbCrLf & vbTab & vbTab & vbTab & _<br /> "By default specified versions are kept." & vbCrLf & vbTab & vbTab & vbTab & "MUST MATCH THE DISPLAY NAME IN ADD/REMOVE PROGRAMS" & vbCrLf<br /> WScript.Echo "/versionsx86onx64:" & vbTab & "Specifies x86 runtime versions to keep on a x64 system." & vbCrLf & vbTab & vbTab & vbTab & _<br /> "Versions are seperated by semicolon." & vbCrLf & vbTab & vbTab & vbTab & _<br /> "If no x86 versions are specified script uses versions" & vbCrLf & vbTab & vbTab & vbTab & "specified by /versions for both x64 and x86 runtimes." _<br /> & vbCrLf & vbTab & vbTab & vbTab & "MUST MATCH THE DISPLAY NAME IN ADD/REMOVE PROGRAMS" & vbCrLf<br /> Wscript.Echo "/logfilepath:" & vbTab & vbTab & "Sets path for uninstall log file from Java runtimes." & vbCrLf & vbTab & vbTab & vbTab & _<br /> "If path does not exist uninstallers will fail." & vbCrLf<br /> WScript.Echo "Examples:" & vbCrLf<br /> WScript.Echo "cscript /nologo JavaUninstallScript.vbs /keeponly /versions:""Java(TM) 6 Update 24;J2SE Runtime Environment 5.0 Update 16"" /logfilepath:""C:\Temp"""<br /> WScript.Echo "Removes all Java Runtimes found except Java 6 Update 24 and J2SE 5 Update 16 and places the uninstall logs in C:\Temp." & vbCrLf<br /> WScript.Echo "cscript /nologo JavaUninstallScript.vbs /keeponly /versions:""Java(TM) 6 Update 24"" /versionsx86onx64:""J2SE Runtime Environment 5.0 Update 16"" /logfilepath:""C:\Temp"""<br /> WScript.Echo "Removes all Java Runtimes found except x64 Java 6 Update 24 and x86 J2SE 5 Update 16 on a x64 system and places the uninstall logs in C:\Temp." & vbCrLf<br /> WScript.Echo "cscript /nologo JavaUninstallScript.vbs /keeponly"<br /> WScript.Echo "Removes all Java Runtimes without creating logs." & vbCrLf<br /> WScript.Echo "cscript /nologo JavaUninstallScript.vbs /removeonly"<br /> WScript.Echo "Keeps all Java Runtimes. Only useful for making a list of installed runtimes." & vbCrLf<br />End Function</span></span>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-22557821139849963042012-08-28T14:04:00.001+02:002012-08-28T14:04:24.352+02:00Basic ICACLS UsageThis command will prevent a user group creating additional folders in the main folder, but allow creation of files and folders in the existing subfolders<br />
<br />
ro = read only<br />
rwm = read, write and modify<br />
<ul>
<li style="font-family: "Courier New",Courier,monospace;">Main_Folder\ (ro)</li>
<ul><ul><ul>
<li style="font-family: "Courier New",Courier,monospace;">sub_folder_1\ (rwm)</li>
<ul>
<li style="font-family: "Courier New",Courier,monospace;">folder_1.1\ (rwm)</li>
</ul>
<li style="font-family: "Courier New",Courier,monospace;">sub_folder_2\ (rwm)</li>
<li><span style="font-family: "Courier New",Courier,monospace;">sub_folder_3\ (rwm)</span></li>
</ul>
</ul>
</ul>
</ul>
<div style="font-family: "Courier New",Courier,monospace;">
<br /></div>
<div style="font-family: "Courier New",Courier,monospace;">
cd main_folder</div>
<span style="font-family: "Courier New",Courier,monospace;">icacls * /grant "domain\user_group":(OI)(CI)(M)</span>Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-45924665375601367812012-08-21T11:03:00.000+02:002012-08-21T11:03:28.088+02:00NPS Wireless Auth Stops Working: Code 65If you use group membership as part of the Network Policy conditions for authenticating, make sure to use a <b>Security Group</b> and not a <b>Distribution Group</b>. Also make sure no one has changed it from a security group to distribution group!<br />
<br />
Next check the user's account on AD has the <b>Control access through NPS Network Policy</b> selected in the <b>Dial-in</b> properties.<br />
<br />
If that doesn't work, check the domain certificate hasn't expired and auto-renewed. <span style="clear: both;"></span>If it has, request a new certificate on the NPS server, switch to the new cert, then back to the auto-renewed one.Paulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0tag:blogger.com,1999:blog-6242921264374137596.post-50921877020761461472012-08-17T16:25:00.003+02:002012-08-17T16:28:45.185+02:00Back up Windows 8 Jump ListsBack up the files in the following folder. Do this for each user account on the computer.<br />
<br />
%appdata%\Microsoft\Windows\Recent\AutomaticDestinations<br />
%appdata%\Microsoft\Windows\Recent\CustomDestinations<br />
<br />
This will only preserve the pinned documents/shortcuts for the programs you have pinned to the task bar. You will need to re-pin the programs to the task bar first, for this to workPaulhttp://www.blogger.com/profile/10989835184354506612noreply@blogger.com0