Odstranění uzamčených souborů „The action cannot be completed because the file is open in another program“

V případě kdy nelze odstranit nebo aktualizovat soubor a Windows ve svém dialogu nespecifikují proces, který daný soubor má exkluzivně zamknutý:

Pro zjištění zdroje zámku je asi nejjednodušší využít aplikaci Process Explorer (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) a pomocí funkce vyhledání na toolbaru a následně proces ukončit:

Nastavení oprávnění pro sdílení uživatelských kalendářů v Exchange Online/Office 365

$credentials = Get-Credential -Credential pnovotny@lotraco.cz
Write-Output "Getting the Exchange Online cmdlets"

$Session = New-PSSession -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
    -ConfigurationName Microsoft.Exchange -Credential $credentials `
    -Authentication Basic -AllowRedirection

Import-PSSession $Session

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Foreach-Object{

    $mbx = $_ | Select ExchangeGuid, UserPrincipalName, DataBase

    $userFolder = $_.alias +":\Kalendář"
    Set-MailboxFolderPermission -Identity $userFolder -User Default -AccessRights Reviewer
}

 

Odstranění akcí z kontextového menu souboru/složky ve Windows

Na správu všech možných nastavení Windows existující spousty specializovaných nástrojů, které však často před samotným vyřešením problému přinesou hromadu dalších, virů nevyjímaje. Tak se mi podařilo úspěšně si nainstalovat virus, respektive těžící aplikaci nějaké krypto měny, odstranění nebylo zrovna triviální, obzvláště pokud si myslíte, že nejste BFU a vypnete si UAC 🙁 Po odstranění viru mi ale zůstalo spousta zajímavých nastavení, včetně nových kontextových menu v exploreru Windows, vtipně nazvaných Compress File nebo DeCompress File, což samozřejmě neudělalo nic jiného, než že nainstalovalo znovu svůj vir do startup aplikací, Windows scheduleru atd…

Odstranění kontextových menu je možné prostým Registry editorem (regedit,exe) a odstraněním celých nechtěných klíčů v následujících umístěních:

HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers
HKEY_CLASSES_ROOT\*\shell

Ukázka umístění:

Okamžitě po odstranění položka z kontextové menu zmizí, není tedy nutný ani restart PC.

Enumerace všech kolekcí webů a vypsání stavu zámku (site collection lock)

Vstupní parametry:

  • nejsou

 

Příklad:

.\CheckSiteCollectionsLock.ps1

 

<#
   .Synopsis
	Enumerate all site collections and write out lock status
   .Example
   .\CheckSiteCollectionsLock.ps1
   .Notes
	NAME: .\CheckSiteCollectionsLock.ps1
	AUTHOR: novotny@devit.cz
   .Link
	http://www.devit.cz
#>

Add-pssnapin Microsoft.SharePoint.Powershell -ErrorAction silentlycontinue

$webApps = Get-SPWebApplication | foreach {
	write-host "Web App: " $_.Url
	
	$sites = $_.Sites | foreach {
		write-host "   $($_.RootWeb.Url) ($($_.RootWeb.Title)): " -foregroundcolor Green -NoNewline
		
		if ($_.ReadOnly -eq $false -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $false) { 
			write-host "Unlocked" -foregroundcolor Green
		}
		else {
			if ($_.ReadOnly -eq $false -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $true) { 
				write-host "Adding Content Prevented" -foregroundcolor Red
			}
		    elseif ($_.ReadOnly -eq $true -and $_.ReadLocked -eq $false -and $_.WriteLocked -eq $true) { 
				write-host "Read-only" -foregroundcolor Red
			}
		    elseif ($_.ReadOnly -eq $null -and $_.ReadLocked -eq $null -and $_.WriteLocked -eq $null) { 
				write-host "No Access" -foregroundcolor Red
			}
			
			if ($_.lockissue -ne $null) {
		          write-host "      Message: $($_.LockIssue)" -BackgroundColor Red
			}
		}
	 }
 }

 

CheckSiteCollectionsLock.ps1 (1,27 kb)

CRM 2011: vypnutí kontrol “System Checks” při instalaci

Nejčastější problém při instalaci CRM 2011 jsou kontroly systémových komponent, stačí se jenom trošku odchýlit od doporučených postupů a problémy při deploy organizací jsou na snadě.

image

Vypnutím kontrol lze obejít nejčastější chyby jako:

[more]

  • A Microsoft Dynamics CRM Server 2011 component is installed on the computer where Microsoft Dynamics CRM Connector for SQL Server Reporting Services Setup is being run.
  • The SQL Server Reporting Services account is a member of the Active Directory SQLAccessGroup security group. This can occur when the Reporting Services is running under the same account as another Microsoft Dynamics CRM component.
  • All Microsoft Dynamics CRM Server 2011 components, SQL Server, and Reporting Services are installed on a computer that is running Microsoft Windows Server Small Business Edition where Microsoft Dynamics CRM Connector for SQL Server Reporting Services Setup is being run.
  • The SQL Server Reporting Services account is set as „Local Service.“

Systémové kontroly lze vypnout úpravou registrů:

  • spusťte regedit.exe
  • najděte klíč HKLM\SOFTWARE\MICROSOFT\MSCRM
  • přidejte klíč IgnoreChecks s DWORD typem a hodnotou nastavenou na 1

CRM 2011: User does not have send-as privilege. (ErrorCode: -2147203059) exception.

V CRM 2011 je defaultně zakázáno odesílání emailů, kde zvolený odesílatel je jiný uživatel než aktuálně přihlášený. To samo o sobě je logické, pokud však potřebujete udělat pracovní proces, který generuje emaily a automaticky je rovnou I odesílá, narazíte hned na tento problém, kdy uvnitř workflow vznikne výjimka s chybovým hlášením User does not have send-as privilege. (ErrorCode: -2147203059).

Cesty jak z toho ven jsou dvě:

[more]

    • přihlásit se jako uživatel, pomocí kterého se snažíte emaily odesílat a v jeho osobním nastavení povolit volbu Allow other Microsoft Dynamics CRM users to send E-mail on your behalf:
      image
    • nebo spustit SQL proceduru, která to stejné nastaví přímo v obsahové databázi CRM:

      UPDATE UserSettings
      SET IsSendAsAllowed = 1
      WHERE IsSendAsAllowed = 0

      !!! Zde je ukázka, která toto oprávnění nastaví u všech uživatelů, pokud potřebujete toto nastavení pouze pro vybrané uživatele, je potřeba přidat podmínku ještě podle UserId

Druhý krok má ještě jednu vadu na kráse, nefunguje pokud daný uživatel ještě nikdy neuložil svoje osobní nastavení. Pokud tedy máte nového uživatele, nebo čistě systémového, který se ještě nikdy nepoužil pro přihlášení a uložení nastavení, v této tabulce neexistuje a není možné tak ani nastavit hodnotu IsSendAsAllowed.