J'ai récemment créé cette solution PowerShell qui peut être utilisée lorsqu'il est nécessaire d'ouvrir une session d'assistance à distance et de saisir les informations d'identification UAC élevées qui ne peuvent être partagées avec l'utilisateur final assisté.
Techniquement, vous pouvez exécuter seulement le Invoke-Command
et le faire pointer vers l'ordinateur distant, puis s'assurer que l'option Set-ItemProperty
a les compétences appropriées 1
o 0
pour " PromptOnSecureDesktop
"pour activer ou désactiver.
Je voulais m'assurer que lorsque j'aurais besoin d'exécuter msra
dans une session élevée, je peux simplement exécuter le script et être assuré que la sécurité de bureau sécurisée UAC est réactivée automatiquement après l'exécution de l'opération. msra
la session est terminée.
Essentiellement, il s'agira...
-
vous demander le nom de l'ordinateur
-
Désactiver l'option "UAC secure desktop" via la modification du registre et les commandes à distance.
-
commencer un msra
session qui fonctionne de la même façon qu'elle fonctionne toujours d'ici
-
activer le "bureau sécurisé UAC" via le changement de registre à distance et les commandes une fois la corrélation établie. msra
fin de l'instance
Pour l'utiliser, il vous suffit de...
- Enregistrez le script PowerShell en tant que document texte avec une balise
.ps1
extension de nom de fichier
- Ouvrez une invite de commande PowerShell et tapez (ou collez) le chemin et le nom de fichier complets du script, puis appuyez sur <code>Enter</code>
- Saisissez le nom de l'ordinateur auquel vous vous connectez avec l'assistance à distance et appuyez sur <code>Enter</code> .
- Lorsque vous avez terminé la session d'assistance à distance, fermez l'application
mrsa
s'il est toujours en cours d'exécution
Conseil : Utilisez la méthode "autre/standard" non surélevée de msra
la plupart du temps, et ne l'utiliser qu'en cas de besoin.
PowerShell script
$pc = Read-Host "Enter the remote computer name to disable secure desktop";
Invoke-Command -ComputerName $pc -Scriptblock {
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Value 0 -Force;
};
$remoteAssist = "$Env:windir\system32\msra.exe";
Start-Process $remoteAssist "/offerra" -Wait;
Write-Host "Your Remote assist session has ended" -ForegroundColor Red;
Invoke-Command -ComputerName $pc -Scriptblock {
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Value 1 -Force;
};
Exemple d'exécution
Note : Il suffit de coller le nom complet du chemin script et d'appuyer sur entrée.
PS C:\Users\User> \\myserver.domain.com\sharename\folder\script\Elevate-RemoteAssist.ps1
Ressources d'appui
-
Le bureau sécurisé présente l'interface de connexion et limite les fonctionnalités. et l'accès au système jusqu'à ce que les conditions de connexion soient remplies.
La principale différence entre le bureau sécurisé et le bureau de l'utilisateur est que seuls les processus de confiance s'exécutant en tant que SYSTEM
sont autorisés à fonctionner ici (c'est-à-dire que rien ne s'exécute au niveau de privilège de l'utilisateur). Le chemin pour accéder au bureau sécurisé à partir du bureau de l'utilisateur doit également être être fiable tout au long de la chaîne.
Valeurs possibles
-
Activé
- Par défaut, toutes les demandes d'élévation vont vers le bureau sécurisé.
-
Handicapés
- Toutes les demandes d'élévation vont au bureau de l'utilisateur interactif.
source
-
Invoke-Command
-
Set-ItemProperty
-
Processus de démarrage
-Wait
Wait for the specified process to complete before accepting more input.
This parameter suppresses the command prompt or retains the window
until the process completes