...
Install GYTPOL dsRequester Server with a regular user account (do not use the gMSA for initial installation).
If the server is yet installed, please refer to this guide to setup and install dsRequester.
Create a security group that will be allowed to retrieve the managed password for the gMSA.
Create and install the gMSA account.
Reconfigure key GYTPOL componentsTasks to use the gMSA account.
Create the gMSA
Identify the name of the gMSA you want to create. For example,
gytGMSA
.Determine the group or computer accounts that will have access to use this gMSA.
Open PowerShell as an Administrator on a Domain Controller.
Run the following
...
command to create the gMSA:
Code Block | ||
---|---|---|
| ||
New-ADServiceAccount gytgmsa -DNSHostName demosrv1.demo.comName "gytGMSA" -PrincipalsAllowedToRetrieveManagedPassword 'Gytpol Servers' -ManagedPasswordIntervalInDays 1 | ||
Info | ||
'Gytpol Servers' refers to a pre-created Active Directory group containing the computer account(s) of the GYTPOL server(s) where the gMSA will be installed"GroupName" |
Info |
---|
|
Verify the creation of the gMSA account with:
Code Block | ||
---|---|---|
| ||
Get-ADServiceAccount "gytgmsagytGMSA" |
Install the gMSA on the GYTPOL Server
Log in to the GYTPOL dsRequester Windows server.
Run the following PowerShell commandOpen PowerShell as an Administrator.
Install the gMSA using:
Code Block language powershell Install-ADServiceAccount -Identity "gytgmsagytGMSA"
Test the gMSA installation:
Code Block language powershell Test-ADServiceAccount "gytgmsa"
Assign Permissions for gMSA
...
gytGMSA"
Info |
---|
A |
Use the gMSA for Local Administrators and Batch Privileges
Granting gMSA Local Administrator Privileges
Add the gMSA to the local Administrators group on the GYTPOL server.Grant the using Powershell as Administrator. Replace
Domain\gytGMSA$
with the gMSA's name and domain.Code Block language powershell Add-LocalGroupMember -Group "Administrators" -Member "Domain\gytGMSA$"
Info |
---|
The |
Adding the gMSA to "Log on as a Batch Job" Policy
The "Log on as a batch job"
...
privilege allows the gMSA to execute tasks such as scheduled tasks or batch processes. Here's how to grant this privilege:
Open Local Security Policy
...
Log in to the target machine as an administrator.
Press
).Go toWin + R
, typesecpol.msc
, and press Enter to open the Local Security Policy console.
Locate the Policy
In the left pane, navigate to: Security Settings > Local Policies > User Rights Assignment
.Find "In the right pane, double-click Log on as a batch job
", right-click, and select Properties.Click.
Add the gMSA
In the Properties window, click Add User or Group
, enter the gMSA, and confirm.
In the dialog box, click Advanced, then click Find Now.
Search for the gMSA account. The account will appear as
Domain\MyGMSA$
.Select the gMSA and click OK.
Apply and Close
Click Apply and then OK to save the changes.
Close the Local Security Policy console.
Domain Permissions:
Add the gMSA to the "Performance Log Users" group in the domain.
Reconfigure GYTPOL
...
Tasks to
...
use the gMSA
Update Scheduled Tasks:
Modify all gytpolServer scheduled tasks (3 in total) to run under the gMSA
...
Set the task to use the gMSA username (
gytgmsa$
) with an empty password.
...
Execute the tasks manually:
Right click and run all three tasks.
Monitor the tasks to ensure they are running without failures.
Script example:.
...
Follow these steps to use the script (be sure to modify the gMSA name as needed):
Open PowerShell ISE as an Administrator.
Copy and paste the script into the editor.
Run the script and verify the results.
Code Block | ||
---|---|---|
| ||
# Define the gMSA Name (Hardcoded)
$gMSAName = "gytgMSA$" # Include the $ suffix for the gMSA
# Set the Run Level
$runLevel = "Highest" # Options: Highest, Limited, etc.
# Array of Task Names
$taskNames = @("gytpolServer", "gytpolServerDaily", "gytpolServerWeekly")
# Loop through each task and update the principal
foreach ($taskName in $taskNames) {
# Create the Scheduled Task Principal
$principal = New-ScheduledTaskPrincipal -UserID $gMSAName -LogonType Password -RunLevel $runLevel
# Update the Scheduled Task with the new Principal
Set-ScheduledTask -TaskName $taskName -Principal $principal
Write-Host "Updated task: $taskName with gMSA: $gMSAName"
}
|
After the script runs successfully, the following output should appear on your screen:
...
Manually execute the tasks by right-clicking on them and selecting Run.
Verify that they remain in the "Running" status and do not terminate immediately.
...