How to Create a Link to a SharePoint Library opening with Explorer

Open your SharePoint library with IE (otherwise the button “Open with Explorer” is disabled) and open it with Explorer using the button on Ribbon:


Within Windows Explorer, right-click on a folder of your Library and select “Create Shortcut”.

Right click on the new shortcut and select “properties”.

Copy the URL you find on “Target”; Should be something like this:



Now on a SharePoint page or in any HTML page, create a link with this URL:



<a href="file://">My Library Shortcut</a>

In case your URL contains any spaces you need to encode them as “%20”. For other encodings see:

How to Run OSX on Gnome Boxes (KVM)


First, create an empty hard drive image:

qemu-img create -f qcow2 OSX.img 64G

Copy the BIOS enoch_rev2848_boot on the same folder where you created the HD.

Change QEMU parameters adding the OSK key on “-device isa-applesmc,osk=”add your osk1 and osk2” (The AppleSMC device needs a valid OSK key to function).
Change also the path of MacHDD and MacDVD.

Install OSX running QEMU:

qemu-system-x86_64 -enable-kvm -m 8192 -cpu Penryn,vendor=GenuineIntel \
-machine pc-q35-2.4 \
-smp 4,cores=2 \
-usb -device usb-kbd -device usb-mouse \
-device isa-applesmc,osk="add your osk1 and osk2" \
-kernel ./enoch_rev2848_boot \
-smbios type=2 \
-device ide-drive,bus=ide.2,drive=MacHDD \
-drive id=MacHDD,if=none,file=./OSX.img \
-monitor stdio \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16 \
-spice port=5930,disable-ticketing
-device ide-drive,bus=ide.0,drive=MacDVD \
-drive id=MacDVD,if=none,snapshot=on,file=./'MacOSX_Mavericks.iso'

Warning: Mouse is not working fine. Be patient, we will install the driver at the end!

When you have the OSX installed and running, create the libvirt xml file called OSX.xml. Remember again to change path and OSK string.

<domain type='kvm' xmlns:qemu=''>
  <description># echo 1 &gt; /sys/module/kvm/parameters/ignore_msrs</description>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
    <type arch='x86_64' machine='pc-q35-2.4'>hvm</type>
      <hidden state='on'/>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Penryn</model>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='home/public/VMs/OSX/OSX.img'/>
      <target dev='sda' bus='sata'/>
      <boot order='1'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
    <interface type='bridge'>
      <source bridge='virbr0'/>
      <target dev='tap0'/>
      <model type='e1000-82545em'/>
<address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    <input type='mouse' bus='usb'/>
    <input type='keyboard' bus='usb'/>
    <graphics type='spice' autoport='yes' listen=''>
      		<listen type='address' address=''/>
      <clipboard copypaste='yes'/>
    <sound model='ich6'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    <memballoon model='none'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=add your OSK1 and OSK2'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-k'/>
    <qemu:arg value='en-us'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel'/>

Import VM to Gnome Boxes:

virsh create OSX.xml


You can now run your OSX from Gnome Boxes and install QemuUSBTablet for mouse and VoodooHDA for audio.

After installed QemuUSBTablet, change VM setting like this:

    <input type='tablet' bus='usb'/>


Inside the VM create a file named org.chameleon.boot.plist with the chameleon conf.:

sudo pico /Extra/org.chameleon.boot.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">
<key>Graphics Mode</key>

If APP store is not working and you are able to browse on internet, probably the reason is that your ethernet device is not called “en0”.

Delete all network devices you have:


then delete these files:

cd /Library/Preferences/SystemConfiguration/
sudo rm preferences.plist
sudo rm NetworkInterfaces.plist

reboot and check if your ethernet device is now “en0”:



ERROR: dcdiag warning on userAccountControl

On a new build-up DC, running dcdiag I found this problem:

Starting test: MachineAccount
Warning:  Attribute userAccountControl of myDC is:
Typical setting for a DC is
This may be affecting replication?

Using ADUC with “Advanced Features” enabled, on “Attributes Editor” you can change userAccountControl for your DC’s Computer Object

UserAccountControl values:
Typical user : 0x200 (512)
Domain controller : 0x82000 (532480)
Workstation/server: 0x1000 (4096)


How to connect Remotely to SQL Express using SSMS

If you have SQL Sever Browser stopped (as generally is using SQL Express), to connect remotely using “Microsoft SQL Server Management Studio” you should specify the port on server/instance string.

First check if SQL Server Browser is stopped with “SQL Server Configuration Manager”


Then check the TCP Port of your SQL Express Instance (in this case is a Dynamic Port):


Then you can connect to your SQL Express instance specifying as “Server Name” this string (pay attention to the comma after SQL instance name):




How to Find which DC is pruning your printer queues

When you publishing printer queues on Active Directory, by default the printer spooler save the shared printers info as object inside the printserver computer object.

On DC (generally the site DC of the printserver) by default is running a printers pruning; this job check if the printserver is reachable and if the printer is still shared and if not, delete the printQueue object from AD.

  • Printserver publish by default the printers only at startup (if you what to force the printer publishing just restart the printspooler service)
    This Setting is managed by “Computer Configuration / Administrative Templates / Printers / Check Published State”
  • Dc try to contact the prinserver/printer for 3 time every 8 hours. If for 3 time the prinserver/printer is not reachable then will be unpublished.
    This Setting is managed by “Computer Configuration / Administrative Templates / Printers / Allow Pruning of Published Printers”, “Directory Pruning Interval”, “Directory Pruning Retry”
“The Print Pruner is a thread that runs under the spooler context on all DCs. It
uses ADSI calls ( ADsGetObject, IID_IDirectorySearch->ExecuteSearch) to get the
list of all the printQueue servers in the AD.
To check whether the server is in same site it uses Winsock call (gethostbyname)
and other net APIs (DsAddressToSiteNames,DsGetDcSiteCoverage).
To check if the print queue\print server availability it uses OS APIs
(NetServerGetInfo, OpenPrinter,GetPrinter).
So all the work by pruner is done using ADSI, WinSock and OS functions.”


Can happen that for some firewall/network misconfiguration, a DC start to pruning some/every published print queues on regular basis. To find which DC is making too much cleaning, we first try to find the deleted printQueue object:

Find deleted Object

  1. Run ldp.exe as Domain Admin.
  2. On “Connection” menu click “Connect”. You can leave the server name black to connect to the DC on your site.
  3. On “Connection” menu click “Bind”
  4. On “Browse” menu click “Search”. Select the “Base DN” of the domain where you want to retrive tombstones. In “Filter” box use filter “(objectclass=printQueue)”. Under “Scope” select “Subtree”. Click “Options” and under “Search Call Type” select “Extended”. Then add “1.2.840.113556.1.4.417” on “Active Controls” using “Check in”.
  5. Close “Search Options” and on “Search” dialog box, click “Run”
  6. On results, find your deleted printer and copy the CN of the deleted printQueue:



Find origin of change

Then using repadmin you can find from where this object was updated:

repadmin /showobjmeta [myDC] [CN of object]




How to Delete/Rename files with Path Too Long

The maximum length of a path according to the Windows API, is defined as 260 characters. A subset of Win32 APIs allow you to work around the MAX_PATH restriction by adding the “\?\” prefix. This support up to 32K characters in length but application support is also required (File Explorer do not support it :-))

Windows 10 AU add a “Win32 long Path Support” but not enabled by default and Powershell has finally built-in support for that.

As workaround you can try to use short filename notation:

cmd /c for %A in ("C:\Documents and Settings\User\NTUSER.DAT") do @echo %~sA

or use subst to map a drive letter to a folder:

subst x: "C:\Very long directory\that exceed\length limit\"

To remove the temporary drive letter:

subst x: /d