By default calling a URL via urllib2 will follow any 30X responses returned, often not what you want.
We can correct this behavior by adding a custom "opener" class to the urllib2 module like so:
import urllib
import urllib2By default calling a URL via urllib2 will follow any 30X responses returned, often not what you want.
We can correct this behavior by adding a custom "opener" class to the urllib2 module like so:
import urllib
import urllib2Without the need for Xcode bloat (yay!).
What is tig?: https://github.com/jonas/tig
# install gcc/make/etc.
# note: this will *not* install Xcode - don't be fooled by xcode in CLI command name
$ xcode-select --installTip
Microsoft active directory servers by default provide LDAP connections over unencrypted connections (boo!).
The steps below will create a new self signed certificate appropriate for use with and thus enabling LDAPS for an AD server. Of course the "self-signed" portion of this guide can be swapped out with a real vendor purchased certificate if required.
Steps have been tested successfully with Windows Server 2012R2, but should work with Windows Server 2008 without modification. Requires a working OpenSSL install (ideally Linux/OSX) and (obviously) a Windows Active Directory server.
In my opinion this is the best way for executing external commands from PowerShell with arguments in a safe manner - via the use of an array to hold the arguments.
Consider this one a PowerShell gem to keep in the toolbox.
Note
The example below makes use of EchoArgs.exe - a small utility that simply echoes back arguments passed to it. Utility is part of the PowerShell Community Extensions, or the exe alone can be downloaded at https://ss64.com/ps/EchoArgs.exe.
A PowerShell script which provides the following:
$SourcePath files to target share ($TargetServer / $TargetShare) recursively../remotecopy.ps1 `
-SourcePath "." `
Well, not so much a quirk - but an interesting anti-pattern I found in some (poor quality) PowerShell. Documenting the "how and why" so I can refer to it again if needed!
~/.kodi/userdata/Database/MyVideosXX.db, where XX is the version number. You will most likely want the highest number available for edit.$ sudo apt-get install libsqlite3-dev sqlite3
$ sqlite3 MyVideosXX.dbPython parser class for CloudTrail event archives, previously dumped to an S3 bucket. Class provides an iterator which will:
Parser contained in cloudtrailparser.py, with timezone.py used as a simple datetime.tzinfo concrete class implement to provide UTC timezone.