Compress-Zip Cmdlet
Parameters Output Objects Config Settings
The Compress-ZIP component implements a compressor for ZIP, GZIP, JAR, TAR, and ZIP SFX.
Syntax
Compress-Zip [parameters]
Remarks
The format for compression is specified by the Format parameter.
The Input parameter should be set to the list of files/folders to include in the archive. The Output parameter should be set to the name and file path of the resulting archive.
For Zip, the cmdlet uses the Deflate algorithm specified in RFC 1951 for compression, and writes output compatible with PKZip, WinZip, etc.
The gzip Format is used only to archive a single file. Accordingly, the operation of the cmdlet for this format is simpler than that of the other formats.
For Jar files, the operation of the cmdlet is similar to that of the Zip Format. .class and other files may be added into a .jar file, and then may be imported into Java code or executed by a JVM.
When compressing Tar files, the interface is identical to that of the Zip format and is the same whether gzip compression is used or not.
The ZipSFX Format implements a PKZip-compatible Zip compressor to create a self-extracting archive which will run natively on Windows platforms.
The cmdlets support pipeline input for some of their parameters. Prebuilding an object and piping it to the cmdlet is very useful, but should be used with caution to prevent security conflicts. Steps have been taken to decrease the risk of a possibly accidental pipe to the cmdlet, for instance, the Credential parameter cannot be piped to the cmdlet and must be specified manually.
# compress the contents of a folder into a zip file and password protect the file
Compress-Zip -Input C:\temp\* -Output C:\tesmpzip34.zip -Password mypassword
# archive the contents of a folder to a tar archive
Compress-Zip -Input C:\temp\* -Output C:\temptar.tar -Format tar
# create a gzipped tar of a specific file
Compress-Zip -Input C:\temptar.tar -Output C:\temptar.tar.gz -Format gzip
Parameter List
The following is the full list of the parameters of the cmdlet with short descriptions. Click on the links for further details.
LogFile | The location of a file to which debug information is written. |
BannerText | Optional banner text to show before the self-extraction starts. |
CompressionLevel | The compression level. |
Config | Specifies one or more configuration settings. |
EncryptionAlgorithm | The algorithm used to encrypt files written to the archive. |
FileCompressedName | Specifies the path and filename of the file in the archive. |
Format | The format of the compression used. |
Input | The files to be included in the archive. |
LogFile | The location of a file to which debug information is written. |
Output | The archive file. |
Overwrite | Whether or not to overwrite the archive. |
Password | The password for the zip archive. |
Recurse | Whether or not to recurse into subdirectories. |
ZipComment | The archive comment. |
Output Objects
The following is the full list of the output objects returned by the cmdlet with short descriptions. Click on the links for further details.
ZipFile | Returned after creation of a zip file. |
Config Settings
The following is a list of config settings for the cmdlet with short descriptions. Click on the links for further details.
BuildInfo | Information about the product's build. |
CodePage | The system code page used for Unicode to Multibyte translations. |
LicenseInfo | Information about the current license. |
MaskSensitive | Whether sensitive data is masked in log messages. |
UseInternalSecurityAPI | Tells the component whether or not to use the system security libraries or an internal implementation. |
LogFile Parameter (Compress-Zip Cmdlet)
The location of a file to which debug information is written.
Syntax
Compress-Zip -LogFile string
Remarks
When specified, the cmdlet will log debug information to the file. If the file exists, the information will be appended.Default Value
null
BannerText Property (Compress-Zip Cmdlet)
Optional banner text to show before the self-extraction starts.
Syntax
Compress-Zip -BannerText string
Remarks
If this property is set, a dialog box will pop up displaying the contents of this property as soon as the SFX executable is run. If this property is set to an empty string (default) no banner dialog will be displayed. This parameter is only valid if Format is set to ZipSFX.
Default Value
""
CompressionLevel Property (Compress-Zip Cmdlet)
The compression level.
Syntax
Compress-Zip -CompressionLevel int
Remarks
This parameter specifies the level of compression to be used, between 0 and 6. Higher values will cause the cmdlet to compress better; lower values will cause the cmdlet to compress faster. A value of 0 will store the file without compression.
This parameter is only applicable when Format is set to "Zip", "Jar", "GZip", or "ZipSFX".
Default Value
4
Config Property (Compress-Zip Cmdlet)
Specifies one or more configuration settings.
Syntax
Compress-Zip -Config string[]
Remarks
The Config parameter takes one or more name-value pairs that represent the name of the configuration setting and value, i.e.: -config "Name=Value"
Default Value
null
EncryptionAlgorithm Property (Compress-Zip Cmdlet)
The algorithm used to encrypt files written to the archive.
Syntax
Compress-Zip -EncryptionAlgorithm string
Remarks
The algorithm used to encrypt files written to the archive.
Note that files will only be encrypted if Password is set. By default the cmdlet will use standard zip encryption if Password is set, and will not encrypt data otherwise.
The cmdlet supports the use of AES, the Advanced Encryption Standard, as well as standard Zip encryption. The default encryption algorithm is the algorithm introduced in version 2.0 of the Zip specification, and is compatible with virtually all other zip utilities. However, this algorithm is considered weak and should not be used to protect sensitive data.
AES is a U.S. government standard cleared to protect even the most sensitive data. The file format used to create AES-encrypted files is designed to be compatible with WinZip 9.0. AES-encrypted files created by the cmdlet may or may not be compatible with other Zip utilities.
The cmdlet supports the use of AES with key lengths of 128, 192, or 256 bits. Note that even with the weakest (128-bit) keys AES is much more secure than standard Zip encryption.
If you use strong or maximum AES encryption the cmdlet will generate a unique salt value and cryptographic key for each file encrypted. If you use weak encryption the cmdlet will use the same salt for each file in the archive. If you are encrypting a large number of files this will have a substantial effect on performance. Set the AESGenerateUniqueKeys configuration setting to configure the salt generation independent of the key length.
If using AES encryption it is important to choose a good Password. For 128-bit keys it is recommended that your password be 32 characters long, and for 256-bit keys, 64 characters.
Important: Note that AES encryption only encrypts the contents of encrypted files within the Zip archive; it does not prevent an attacker from reading the names of files in the archive, or from adding or deleting files to or from the archive. To prevent this consider first storing your files in an unencrypted zip file, and then storing this zip file in another, AES-encrypted zip file.
Possible values:
- Default
- Weak
- Strong
- Maximum
Default Value
0
Parameter Alias
Algorithm
FileCompressedName Property (Compress-Zip Cmdlet)
Specifies the path and filename of the file in the archive.
Syntax
Compress-Zip -FileCompressedName string
Remarks
This parameter is optional and may be set to specify the path and name of the file as it exists in the archive. By default the cmdlet will automatically determine this value. If path information is specified it must be specified in a Unix style format. For instance "myfolder/myfile.txt".
This parameter is only applicable when adding a single file to the archive. If multiple files are added this parameter is ignored.
Default Value
""
Format Property (Compress-Zip Cmdlet)
The format of the compression used.
Syntax
Compress-Zip -Format string
Remarks
Possible values for the compression used include: Zip, Gzip, Jar, Tar, ZipSFX.
Default Value
0
Input Property (Compress-Zip Cmdlet)
The files to be included in the archive.
Syntax
Compress-Zip -Input string[]
Remarks
The parameter can contain directory paths as well, where everything in the directory needs to be included in the compressed file.
Default Value
null
Parameter Position
0
Parameter Alias
files
This is a required parameter.
LogFile Property (Compress-Zip Cmdlet)
The location of a file to which debug information is written.
Syntax
Compress-Zip -LogFile string
Remarks
When specified, the cmdlet will log debug information to the file. If the file exists, the information will be appended.
Default Value
""
Output Property (Compress-Zip Cmdlet)
The archive file.
Syntax
Compress-Zip -Output string
Remarks
Specifies the name of compressed file to be created.
Default Value
""
Parameter Position
1
Parameter Alias
out
Overwrite Property (Compress-Zip Cmdlet)
Whether or not to overwrite the archive.
Syntax
Compress-Zip -Overwrite SwitchParameter
Remarks
If this flag is set, the user is not queried for overwrite confirmation when the file exists.
Default Value
false
Password Property (Compress-Zip Cmdlet)
The password for the zip archive.
Syntax
Compress-Zip -Password string
Remarks
EncryptionAlgorithm allows for modification to the security algorithm used together with Password for the compressed file.
Default Value
""
Recurse Property (Compress-Zip Cmdlet)
Whether or not to recurse into subdirectories.
Syntax
Compress-Zip -Recurse SwitchParameter
Remarks
If Input includes directory paths, this setting indicates whether a recursive search for files should be done by the cmdlet.
Default Value
false
ZipComment Property (Compress-Zip Cmdlet)
The archive comment.
Syntax
Compress-Zip -ZipComment string
Remarks
This parameter specifies a global comment for the zip file. Set this parameter to include a comment in the zip file.
This parameter is only applicable when Format is set to "Zip", "Jar", or "ZipSFX".
Default Value
""
ZipFile Output Object (Compress-Zip Cmdlet)
Returned after creation of a zip file.
Syntax
Object ZipFile {string File;
long Size;
bool Secure;
}
Remarks
After constructing a zip file successfully, the ZipFile object is returned.
File contains the full path of the compressed file.
Size contains the file size of the compressed file.
Secure indicates whether or not the file was password protected.
Config Settings (Compress-Zip Cmdlet)
The cmdlet accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the cmdlet, access to these internal properties is provided through the Config method.
Base Config Settings
The following is a list of valid code page identifiers:
Identifier | Name |
037 | IBM EBCDIC - U.S./Canada |
437 | OEM - United States |
500 | IBM EBCDIC - International |
708 | Arabic - ASMO 708 |
709 | Arabic - ASMO 449+, BCON V4 |
710 | Arabic - Transparent Arabic |
720 | Arabic - Transparent ASMO |
737 | OEM - Greek (formerly 437G) |
775 | OEM - Baltic |
850 | OEM - Multilingual Latin I |
852 | OEM - Latin II |
855 | OEM - Cyrillic (primarily Russian) |
857 | OEM - Turkish |
858 | OEM - Multilingual Latin I + Euro symbol |
860 | OEM - Portuguese |
861 | OEM - Icelandic |
862 | OEM - Hebrew |
863 | OEM - Canadian-French |
864 | OEM - Arabic |
865 | OEM - Nordic |
866 | OEM - Russian |
869 | OEM - Modern Greek |
870 | IBM EBCDIC - Multilingual/ROECE (Latin-2) |
874 | ANSI/OEM - Thai (same as 28605, ISO 8859-15) |
875 | IBM EBCDIC - Modern Greek |
932 | ANSI/OEM - Japanese, Shift-JIS |
936 | ANSI/OEM - Simplified Chinese (PRC, Singapore) |
949 | ANSI/OEM - Korean (Unified Hangul Code) |
950 | ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC) |
1026 | IBM EBCDIC - Turkish (Latin-5) |
1047 | IBM EBCDIC - Latin 1/Open System |
1140 | IBM EBCDIC - U.S./Canada (037 + Euro symbol) |
1141 | IBM EBCDIC - Germany (20273 + Euro symbol) |
1142 | IBM EBCDIC - Denmark/Norway (20277 + Euro symbol) |
1143 | IBM EBCDIC - Finland/Sweden (20278 + Euro symbol) |
1144 | IBM EBCDIC - Italy (20280 + Euro symbol) |
1145 | IBM EBCDIC - Latin America/Spain (20284 + Euro symbol) |
1146 | IBM EBCDIC - United Kingdom (20285 + Euro symbol) |
1147 | IBM EBCDIC - France (20297 + Euro symbol) |
1148 | IBM EBCDIC - International (500 + Euro symbol) |
1149 | IBM EBCDIC - Icelandic (20871 + Euro symbol) |
1200 | Unicode UCS-2 Little-Endian (BMP of ISO 10646) |
1201 | Unicode UCS-2 Big-Endian |
1250 | ANSI - Central European |
1251 | ANSI - Cyrillic |
1252 | ANSI - Latin I |
1253 | ANSI - Greek |
1254 | ANSI - Turkish |
1255 | ANSI - Hebrew |
1256 | ANSI - Arabic |
1257 | ANSI - Baltic |
1258 | ANSI/OEM - Vietnamese |
1361 | Korean (Johab) |
10000 | MAC - Roman |
10001 | MAC - Japanese |
10002 | MAC - Traditional Chinese (Big5) |
10003 | MAC - Korean |
10004 | MAC - Arabic |
10005 | MAC - Hebrew |
10006 | MAC - Greek I |
10007 | MAC - Cyrillic |
10008 | MAC - Simplified Chinese (GB 2312) |
10010 | MAC - Romania |
10017 | MAC - Ukraine |
10021 | MAC - Thai |
10029 | MAC - Latin II |
10079 | MAC - Icelandic |
10081 | MAC - Turkish |
10082 | MAC - Croatia |
12000 | Unicode UCS-4 Little-Endian |
12001 | Unicode UCS-4 Big-Endian |
20000 | CNS - Taiwan |
20001 | TCA - Taiwan |
20002 | Eten - Taiwan |
20003 | IBM5550 - Taiwan |
20004 | TeleText - Taiwan |
20005 | Wang - Taiwan |
20105 | IA5 IRV International Alphabet No. 5 (7-bit) |
20106 | IA5 German (7-bit) |
20107 | IA5 Swedish (7-bit) |
20108 | IA5 Norwegian (7-bit) |
20127 | US-ASCII (7-bit) |
20261 | T.61 |
20269 | ISO 6937 Non-Spacing Accent |
20273 | IBM EBCDIC - Germany |
20277 | IBM EBCDIC - Denmark/Norway |
20278 | IBM EBCDIC - Finland/Sweden |
20280 | IBM EBCDIC - Italy |
20284 | IBM EBCDIC - Latin America/Spain |
20285 | IBM EBCDIC - United Kingdom |
20290 | IBM EBCDIC - Japanese Katakana Extended |
20297 | IBM EBCDIC - France |
20420 | IBM EBCDIC - Arabic |
20423 | IBM EBCDIC - Greek |
20424 | IBM EBCDIC - Hebrew |
20833 | IBM EBCDIC - Korean Extended |
20838 | IBM EBCDIC - Thai |
20866 | Russian - KOI8-R |
20871 | IBM EBCDIC - Icelandic |
20880 | IBM EBCDIC - Cyrillic (Russian) |
20905 | IBM EBCDIC - Turkish |
20924 | IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol) |
20932 | JIS X 0208-1990 & 0121-1990 |
20936 | Simplified Chinese (GB2312) |
21025 | IBM EBCDIC - Cyrillic (Serbian, Bulgarian) |
21027 | Extended Alpha Lowercase |
21866 | Ukrainian (KOI8-U) |
28591 | ISO 8859-1 Latin I |
28592 | ISO 8859-2 Central Europe |
28593 | ISO 8859-3 Latin 3 |
28594 | ISO 8859-4 Baltic |
28595 | ISO 8859-5 Cyrillic |
28596 | ISO 8859-6 Arabic |
28597 | ISO 8859-7 Greek |
28598 | ISO 8859-8 Hebrew |
28599 | ISO 8859-9 Latin 5 |
28605 | ISO 8859-15 Latin 9 |
29001 | Europa 3 |
38598 | ISO 8859-8 Hebrew |
50220 | ISO 2022 Japanese with no halfwidth Katakana |
50221 | ISO 2022 Japanese with halfwidth Katakana |
50222 | ISO 2022 Japanese JIS X 0201-1989 |
50225 | ISO 2022 Korean |
50227 | ISO 2022 Simplified Chinese |
50229 | ISO 2022 Traditional Chinese |
50930 | Japanese (Katakana) Extended |
50931 | US/Canada and Japanese |
50933 | Korean Extended and Korean |
50935 | Simplified Chinese Extended and Simplified Chinese |
50936 | Simplified Chinese |
50937 | US/Canada and Traditional Chinese |
50939 | Japanese (Latin) Extended and Japanese |
51932 | EUC - Japanese |
51936 | EUC - Simplified Chinese |
51949 | EUC - Korean |
51950 | EUC - Traditional Chinese |
52936 | HZ-GB2312 Simplified Chinese |
54936 | Windows XP: GB18030 Simplified Chinese (4 Byte) |
57002 | ISCII Devanagari |
57003 | ISCII Bengali |
57004 | ISCII Tamil |
57005 | ISCII Telugu |
57006 | ISCII Assamese |
57007 | ISCII Oriya |
57008 | ISCII Kannada |
57009 | ISCII Malayalam |
57010 | ISCII Gujarati |
57011 | ISCII Punjabi |
65000 | Unicode UTF-7 |
65001 | Unicode UTF-8 |
Identifier | Name |
1 | ASCII |
2 | NEXTSTEP |
3 | JapaneseEUC |
4 | UTF8 |
5 | ISOLatin1 |
6 | Symbol |
7 | NonLossyASCII |
8 | ShiftJIS |
9 | ISOLatin2 |
10 | Unicode |
11 | WindowsCP1251 |
12 | WindowsCP1252 |
13 | WindowsCP1253 |
14 | WindowsCP1254 |
15 | WindowsCP1250 |
21 | ISO2022JP |
30 | MacOSRoman |
10 | UTF16String |
0x90000100 | UTF16BigEndian |
0x94000100 | UTF16LittleEndian |
0x8c000100 | UTF32String |
0x98000100 | UTF32BigEndian |
0x9c000100 | UTF32LittleEndian |
65536 | Proprietary |
- Product: The product the license is for.
- Product Key: The key the license was generated from.
- License Source: Where the license was found (e.g., RuntimeLicense, License File).
- License Type: The type of license installed (e.g., Royalty Free, Single Server).
- Last Valid Build: The last valid build number for which the license will work.
This setting only works on these cmdlets: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.
Setting this configuration setting to true tells the cmdlet to use the internal implementation instead of using the system security libraries.
On Windows, this setting is set to false by default. On Linux/macOS, this setting is set to true by default.
If using the .NET Standard Library, this setting will be true on all platforms. The .NET Standard library does not support using the system security libraries.
Note: This setting is static. The value set is applicable to all cmdlets used in the application.
When this value is set, the product's system dynamic link library (DLL) is no longer required as a reference, as all unmanaged code is stored in that file.