Skip to content

Commit 902ab0e

Browse files
authored
merge version 1.1
merge version 1.1
2 parents 49c6e3f + afe05dc commit 902ab0e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+133
-6541
lines changed

README.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,84 @@ A simple and fast GUI for Microsoft LAPS (legacy) and Windows LAPS. With this to
2222
## Download and Usage
2323

2424
1. Download the archive from [here](http://github.com/htcfreek/SimpleLapsGui/releases).
25+
- 'SimpleLapsGui_v<Version>_Exe.zip' Exe wrapper version. (False-positive virus alerts are possible.)
26+
- 'SimpleLapsGui_v<Version>_PowerShell.zip' PowerShell script only version.
2527
2. Extract the downloaded archive to your preferred place.
26-
3. Run the tool using the executable file.
28+
3. Run the tool using the executable or the PowerShell file.
2729

2830
### System requirements
2931
- PowerShell 5.1
3032
- Windows LAPS PowerShell module
3133
- Optional for changing the timestamp of Microsoft LAPS (legacy) passwords:
3234
- Microsoft LAPS PowerShell module (AdmPwd module)
3335

36+
### Permissions
37+
The user who uses the tool needs the following permissions:
38+
- Read LAPS password attribute(s).
39+
- Decrypt the Windows LAPS password.
40+
- [Optional:] Change expiration time attribute.
41+
42+
> **Warning**
43+
> As always when granting permissions, you should be careful who you grant them to. You should grant permissions only to those who need them (e.g., use administration tiering).
44+
45+
> **Information**
46+
> For more information please read the docs provided by Microsoft:
47+
> - [Windows LAPS permission concept](https://learn.microsoft.com/en-us/windows-server/identity/laps/laps-concepts#user-group-permissions)
48+
> - [Windows LAPS attributes and rights](https://learn.microsoft.com/en-us/windows-server/identity/laps/laps-technical-reference#extended-rights)
49+
> - [Windows LAPS decryption principal](https://learn.microsoft.com/en-us/windows-server/identity/laps/laps-management-policy-settings#adpasswordencryptionprincipal)
50+
> - [Microsoft LAPS attribute permissions](https://techcommunity.microsoft.com/t5/itops-talk-blog/step-by-step-guide-how-to-configure-microsoft-local/ba-p/2806185)
51+
3452
### Limitations
3553
- Requires an Active Directory joined machine to work properly.
3654
- Currently Azure AD is not supported.
3755

56+
## FAQ
57+
58+
**Why did you create another LAPS (G)UI?**
59+
60+
1. The existing standalone LAPS UI doesn't support Windows LAPS and the Windows LAPS password history.
61+
2. There is a built-in Windows LAPS tab in the RSAT (Active Directory Users and Computers). But to use this you have to install the RSAT for everyone who should use it. My GUI is small and portable.
62+
3. The LAPS tab in the RSAT (Active Directory Users and Computers) doesn't show the Windows LAPS password history.
63+
4. When using my GUI you don't have to learn the PowerShell modules.
64+
65+
**Does the exe version contains viruses? It is reported on "virustotal.com".**
66+
67+
No it doesn't. This happens because of the AutoIT v3 executable used as wrapper. You can download the PowerShell version instead. (Please note that the PowerShell script doesn't hide its window.)
68+
69+
**Can you support Windows Server 2016?**
70+
71+
No. As long as Microsoft doesn't provide the PowerShell cmdlets on Server 2016, I can't support this OS.
72+
73+
> **Warning**
74+
> You can find instructions on how to change my script to run on Windows Server 2016. But this is not supported by me. All manipulations of the script happens at your own risk!!!
75+
76+
**Why don't you allow side-loading the LAPS module?**
77+
78+
I know that such a feature would make my script usable on Windows Server 2016. But loading PowerShell modules form unknown locations is a potential security risk. And it requires to lower the execution policy level which is a security risk too.
79+
80+
**What notations are supported for the computer name?**
81+
82+
All notations that are supported by the PowerShell module:
83+
84+
- Distinguished Name (begins with a CN=)
85+
- Sam Account Name (begins with a '$")
86+
- DNS Hostname (contains at least one '.' character)
87+
- Name (for all other inputs)
88+
89+
<!--Source: https://learn.microsoft.com/de-de/powershell/module/laps/get-lapsadpassword?view=windowsserver2022-ps#-identity -->
90+
91+
**Why are no passwords found?**
92+
93+
Either you don't have the permission to read them or there are no passwords stored for this computer.
94+
95+
**Why do some computers have no history?**
96+
97+
To have a history it must be enabled and the computer must use Windows LAPS.
98+
99+
**Why is the password not decrypted?**
100+
101+
This happens if you don't have the required permission.
102+
38103
## Support
39104

40105
If you have any problems or want to suggest a new feature please [fill a bug in this repository](https://github.com/htcfreek/SimpleLapsGui/issues/new).

repoTools/CreateReleaseFile.ps1

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# See the LICENSE file in the project root for more information.
33

44
# Name: CreateReleaseFile.ps1
5-
# Version: 1.1
5+
# Version: 1.2 for SimpleLapsGui-Repo
66
# Description: Script to create the release file.
77
# Author: htcfreek (Heiko) - https://github.com/htcfreek
88
# Parameter: [String]$ReleaseName, [String]$ReleaseVersion, [[Switch]$NoHashCalculation=$False]
@@ -20,39 +20,51 @@ Param(
2020

2121
# Settings
2222
[String]$RepoDir=Resolve-Path -LiteralPath "..\"
23-
[String]$SrcDir="\Release\compiled"
2423
[String]$ReleaseDir="\Release\zip"
25-
[String]$OutFileName="$($ReleaseName)_v$($ReleaseVersion).zip"
26-
[String[]]$CompressFiles = @(
27-
"$($RepoDir)$($SrcDir)\*",
24+
25+
[String[]]$CompressFiles1 = @(
26+
"$($RepoDir)\release\SimpleLapsGui.exe",
2827
"$($RepoDir)\LICENSE.md"
2928
)
30-
[String]$HashFile="$($RepoDir)$($ReleaseDir)\$($OutFileName).sha256"
29+
[String]$OutFileName1="$($ReleaseName)_v$($ReleaseVersion)_Exe.zip"
30+
[String]$HashFile1="$($RepoDir)$($ReleaseDir)\$($OutFileName1).sha256"
3131

32+
[String[]]$CompressFiles2 = @(
33+
"$($RepoDir)\src\SimpleLapsGui.ps1",
34+
"$($RepoDir)\LICENSE.md"
35+
)
36+
[String]$OutFileName2="$($ReleaseName)_v$($ReleaseVersion)_PowerShell.zip"
37+
[String]$HashFile2="$($RepoDir)$($ReleaseDir)\$($OutFileName2).sha256"
3238

33-
# Create Zip
34-
if (-Not (Test-Path -Path "$($RepoDir)$($SrcDir)" -ErrorAction SilentlyContinue)) {
35-
Write-Error "Source path not available."
36-
Break
37-
}
3839

40+
41+
42+
# Create Zip
3943
if (-Not (Test-Path -Path "$($RepoDir)$($ReleaseDir)" -ErrorAction SilentlyContinue)) {
4044
Write-Host "Creating release dir..."
4145
New-Item -Path "$($RepoDir)$($ReleaseDir)" -Type Directory | Out-Null
4246
}
4347

44-
if (Test-Path -Path "$($RepoDir)$($ReleaseDir)\$($OutFileName)" -ErrorAction SilentlyContinue) {
45-
Write-Error "Release-File already existing."
48+
if (Test-Path -Path "$($RepoDir)$($ReleaseDir)\$($OutFileName1)" -ErrorAction SilentlyContinue) {
49+
Write-Error "Release-File 1 already existing."
50+
Break
51+
}
52+
if (Test-Path -Path "$($RepoDir)$($ReleaseDir)\$($OutFileName2)" -ErrorAction SilentlyContinue) {
53+
Write-Error "Release-File 2 already existing."
4654
Break
4755
}
4856

4957
Write-Host "Creating zip file..."
50-
Compress-Archive -Path $CompressFiles -DestinationPath "$($RepoDir)$($ReleaseDir)\$($OutFileName)"
58+
Compress-Archive -Path $CompressFiles1 -DestinationPath "$($RepoDir)$($ReleaseDir)\$($OutFileName1)"
59+
Compress-Archive -Path $CompressFiles2 -DestinationPath "$($RepoDir)$($ReleaseDir)\$($OutFileName2)"
5160

5261

5362
# Calc. Hash
5463
if (-Not $NoHashCalculation) {
55-
Write-Host "Calculating hash..."
56-
[String]$hash = (Get-FileHash -Path "$($RepoDir)$($ReleaseDir)\$($OutFileName)" -Algorithm SHA256).Hash
57-
"$hash *$OutFileName" | Out-File -FilePath $HashFile -Append
64+
Write-Host "Calculating hash 1..."
65+
[String]$hash = (Get-FileHash -Path "$($RepoDir)$($ReleaseDir)\$($OutFileName1)" -Algorithm SHA256).Hash
66+
"$hash *$OutFileName" | Out-File -FilePath $HashFile1 -Append
67+
Write-Host "Calculating hash 2..."
68+
[String]$hash = (Get-FileHash -Path "$($RepoDir)$($ReleaseDir)\$($OutFileName2)" -Algorithm SHA256).Hash
69+
"$hash *$OutFileName" | Out-File -FilePath $HashFile2 -Append
5870
}

repoTools/PS2EXE-GUI/BuildExamples.bat

Lines changed: 0 additions & 2 deletions
This file was deleted.

repoTools/PS2EXE-GUI/BuildExamples.ps1

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)