Flash info

"La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. "

Albert Einstein (1879-1955)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
Alexis
Utilisateur

PowerShelleur Débutant
Messages: 47
graphgraph
Karma: 0  
WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 14/03/17 08:58 Bonjour à toutes et tous,

En plein changement de parc machine on installe comme tlm des WINDOWS 10 par centaines .... avec leurs lots de problèmes ;oD je ne m'etalerai pas sur tous les sujets, ça serait long ;D Mais sur un en particulier.

L'execution de scripts powershell poussés par des GPO ORDINATEURS, en script de démarrage.

Windows 10 pose un gros probleme avec son TOKEN admin,

On ne peut pas desactiver l'UAC de windows, sinon toutes les applis MICROSOFT liées au STORE MICROSOFT ne fonctionnent plus. Genre IE, EDGE, LA CALCULATRICE et bien d'autre !!! Elles ne s'executent plus du tout.

On est donc obligé de laisser l'UAC au minimum sur les WIN 10.

Le probleme de l'UAC, est qu'elle nous oblige à utiliser le TOKEN admin, même depuis une session administrateur.

Si je lance mon Package de puis ma session administrateur du domaine et administrateur local de la machine, le package ne s'installe pas. il faut que je fasse un clic droit " executer en tant qu'admin" pour que cela fonctionne.

Mon probleme est là je n'arrive pas à executer mes script avec le token admin. Et uniquement sur les windows 10.

Les runas n'y font rien.

J'ai un package qui check un produit. si la version n'est pas la bonne, il doit le mettre à jour, et je n'y arrive pas via GPO alors que tout fonctionne sur les autres OS. J'ai baissé les niveaux de secu au max pour les tests.

Je manque de formation sur le sujet! j’étudierai toutes pistes serieuses !!

Info:
qd on passe le registre sur EnableLUA 0 , cela fonctionne. mais bcp de choses ne fonctionnent plus apres.

avec set-executionpolicy sur unrestrcited ou remotesigned c'est pareil.

Avec le script copié localement sur le poste et éxécuté localement c'est pareil.

Tout ça que sur les win 10.

Merci pour votre lecture ! bonne journée.

Message édité par: Alexis, à: 14/03/17 13:56
  | | L'administrateur a désactivé l'accés public en écriture.
Alexis
Utilisateur

PowerShelleur Débutant
Messages: 47
graphgraph
Karma: 0  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 16/05/17 14:47 Bonjour à toutes et tous,

Je UP le sujet car je suis toujours bloqué.

voilà mon dernier test réalisé sur ces PUT**** de windows 10 !!


Voilà le block nécessaire.

-------------------------
Code:

 $Command C:\test\test.ps1 $cmd 'powershell.exe -noprofile -ExecutionPolicy unrestricted Start-Process "' $psHome '\powershell.exe" -Verb Runas -ArgumentList ' '''-command "' $command +"`"'" Invoke-Expression $cmd 


-------------------------


Dans mon fichier c:testtest.ps1 j'ai ça :

------------------------
Code:

  get-content "c:\test2"  remove-item 


------------------------



Et quand j'execute le script que tu m'as envoyé, j'obtiens ça :

------------------------
get-content : L'accès au chemin d'accès 'C:test2' est refusé.
Au caractère C:testtest.ps1:1 : 1
+ get-content "c:test2" | remove-item
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:test2tring) [Get-Content], UnauthorizedAccessException
+ FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
------------------------

Donc il appelle bien le script dans test.ps1, le lance aec tous les parametres necessaires, et ploum ploum ! je ne suis pas admin !! j'ai pas le droit d'entrer dans un repertoire ! Alors que le compte machine est autorisé en modification et que le script est lancé depuis une session administrateur local ! Ca fonctionne si je lance la console powershell avec un clic droit executer en tant qu'admin !!!! C'est fou

Message édité par: Alexis, à: 16/05/17 15:49

Message édité par: Alexis, à: 16/05/17 15:50

Message édité par: Alexis, à: 16/05/17 15:50
  | | L'administrateur a désactivé l'accés public en écriture.
Matthew BETTON
Utilisateur

PowerShelleur Platinum
Messages: 968
graphgraph
Karma: 60  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 16/05/17 15:08 Bonjour,

Tu obtiendras toujours un message d'erreur du type "accés refusé" lorsque tu utilises la Cmdlets Get-Content sur un chemin/dossier/répertoire ... (sinon "Get-Content : Impossible de trouver une partie du chemin d'accès 'D:TEMP'.").

Get-Content sert à récupérer/lire le contenu d'un fichier de type texte, pas à lister le contenu d'un répertoire.

Si c'est bien cette dernière action que tu cherches à faire, commences par utiliser 'Get-Childitem'.


PS>Get-Help Get-Content

NOM
Get-Content

RÉSUMÉ
Obtient le contenu de l'élément à l'emplacement spécifié.


SYNTAXE
Get-Content [-Path] <String[]> [-Credential <PSCredential>] [-Exclude <String[]>] [-Filter <String>] [-Force]
[-Include <String[]>] [-ReadCount <Int64>] [-Tail <Int32>] [-TotalCount <Int64>] [-UseTransaction
[<SwitchParameter>]] [<CommonParameters>]

Get-Content [-Credential <PSCredential>] [-Exclude <String[]>] [-Filter <String>] [-Force] [-Include <String[]>]
[-ReadCount <Int64>] [-Tail <Int32>] [-TotalCount <Int64>] -LiteralPath <String[]> [-UseTransaction
[<SwitchParameter>]] [<CommonParameters>]


DESCRIPTION
L'applet de commande Get-Content obtient le contenu de l'élément à l'emplacement spécifié par le chemin d'accès,
par exemple le texte d'un fichier. Elle lit le contenu ligne par ligne et retourne une collection d'objets, chacun
représentant une ligne de contenu.

À compter de Windows PowerShell3.0, Get-Content peut également obtenir un nombre spécifique de lignes à partir du
début ou de la fin d'un élément.


LIENS CONNEXES
Online Version: http://go.microsoft.com/fwlink/p/?linkid=290491
Add-Content
Clear-Content
Set-Content
about_Providers

REMARQUES
Pour consulter les exemples, tapez : "get-help Get-Content -examples".
Pour plus d'informations, tapez : "get-help Get-Content -detailed".
Pour obtenir des informations techniques, tapez : "get-help Get-Content -full".
Pour l'aide en ligne, tapez : "get-help Get-Content -online"


Message édité par: Matthew BETTON, à: 16/05/17 16:10
  | | L'administrateur a désactivé l'accés public en écriture.
Alexis
Utilisateur

PowerShelleur Débutant
Messages: 47
graphgraph
Karma: 0  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 16/05/17 15:22 L'erreur de boulet ;oD j'ai tapé ça pour l'exemple ;oD

Mais cela ne fonctionne tjs pas en GPO ;oD

merci pour cette remarque qui tombe à point nommé ! ;oD

Ne pas confondre vitesse et précipitation !!!!
  | | L'administrateur a désactivé l'accés public en écriture.
Matthew BETTON
Utilisateur

PowerShelleur Platinum
Messages: 968
graphgraph
Karma: 60  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 16/05/17 15:39 Alexis écrit:

Mais cela ne fonctionne tjs pas en GPO ;oD


... Cela ressemble beaucoup à ça :

http://stackoverflow.com/questions/33351002/application-deployment-through-gpo-fails-on-windows-10
  | | L'administrateur a désactivé l'accés public en écriture.
Alexis
Utilisateur

PowerShelleur Débutant
Messages: 47
graphgraph
Karma: 0  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 17/05/17 12:24 Bonjour Matthew ! Merci pour ta réponse, mais ce n'est pas là mon probleme, j'avais renconté ce souci déjà avec windows 7, et j'avais apporté cette solution sur l'ensemble du parc... J'ai vérifié à nouveau !

Je vais donner un exemple plus précis.

Voici un script qui supprime et recréé un compte local et le met administrateur avec un mot de passe qui n'expire pas. avec un mot de passe crypté.

Code:

  $Key = [byte]85,40,32,13,44,11,09,98,11,34,12,99,52,11,09,98 $password Get-Content \\xxxxx\xxxxo$\Scripts\LocalADMmig\cred.pwd Convertto-SecureString -Key $key $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password) $PlainPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)                                                                                                                 $compname $env:computername                                                         $cn = [ADSI]"WinNT://$env:computername"                                                         $cn.Delete("user","CompteAdmin")                                                                                                                 $compname $env:computername                                                         $cn = [ADSI]"WinNT://$env:computername"                                                         $user $cn.Create("User","CompteAdmin")                                                         $user.SetPassword($Plainpassword)                                                         $user.setinfo()                                                         $user.description "Admin Local"                                                         $user.SetInfo()                                                         $user.UserFlags 65536                                                         $user.SetInfo()                                                         $UserName "CompteAdmin"                                                         $AdminGroup = [ADSI]"WinNT://$env:computername/Administrateurs,group"                                                         $Usere = [ADSI]"WinNT://$env:computername/$UserName,user"                                                         $AdminGroup.Add($Usere.Path)                                                         




Sur windows 7 si j'execute ce script depuis une session administrateur local. Ou via GPO, il fonctionne.


Sur Windows 10 j'ai des erreurs d'elevation.
Il faut que je lance la console powershell depuis une session admin(logique jusque là) mais que dans la session admin je fasse clic droit, puis executer en tant qu'administrateur. Alors que je suis admin du poste.. Mais sans le Token ADMIN fournit par le clic droit, mon script ne s'execute pas. Enfin il se lance mais n'a pas les droits pour créer le user.

;oD



edit : Et j'ai toutes les POLICY qui gerent le comportement de l'elevation des administrateurs de configurées en ma faveur .... (J'ai peut être oublié qqch de ce coté là) Mais j'ai l'impression d'être le seul à être confronté à ces problèmes !

J'ai même pensé que cela pouvait provenir de nos masters. Avec les dernieres Build de W10 vierge je rencontre les soucis aussi ... et j'ai check toute la DEFAUTLDOMAINPOLICY, je n'ai rien de configuré à l'intérieur concernant les elevations ! Ca doit être un truc bête et je passe à coté ! A force d'avoir la tête dans le guidon comme on dit ! ;OD

Message édité par: Alexis, à: 17/05/17 13:29
  | | L'administrateur a désactivé l'accés public en écriture.
Alexis
Utilisateur

PowerShelleur Débutant
Messages: 47
graphgraph
Karma: 0  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 17/05/17 13:13 J'ai bien compris ça :





Edit: Apparently some people failed to fully understand the implications of the OP's request.

The sole purpose of UAC is to allow users to be members of the Administrators group without running with admin privileges all of the time. On login they receive two security tokens, one (inactive) with admin privileges, and the other (active) with normal user permissions. That way it takes a conscious decision of the user to activate the admin token for a program and have it run with admin privileges.

Now, if you enable a shell (i.e. a program designed to run arbitrary commands) to run with admin privileges all of the time, you remove this protection. From that point on, anything running in the user's context can run arbitrary code with admin privileges. With a configuration like that, any further thought about security would be mere self-delusion, so you can just as well stop bothering.




Mais justement ça me prend la tête !!!! je code en autoIt aussi, J'avais fait des petites GUI avec des runas derriere, suite à une migration Activedirectory, pour permettre à des users de lancer leurs navigateurs dans un autre contexte et accéder grace à la SSO à d'anciennes ressources , sans changer de profil. Tout cela ne fonctionne plus ! La réponse à ma question est peut être que ce n'est plus possible du tout ! Ou comme il le dit, faut désactiver toute la secu ... et cela n'a plus de sens ...


Un autre exemple, sur les sessions admin des postes déployés, on pose des scripts, des .reg, des combobox, comme ça lors de la maintenance, on clique dessus et ça fait le taf... tout cela passerait du coup à la trappe !

Message édité par: Alexis, à: 17/05/17 14:14
  | | L'administrateur a désactivé l'accés public en écriture.
Alexis
Utilisateur

PowerShelleur Débutant
Messages: 47
graphgraph
Karma: 0  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 17/05/17 13:36 J'ai trouvé la solution ... A la noix ;oD

En lisant ça , j'ai compris !!




In modern days Windows operating systems, User Account Control (UAC) is enabled by default. There are some considerations when using PowerShell and running a script in elevated or non-elevated context. This and some of the issues that can occur because of UAC will be addressed in this article.

UAC is configured in Admin Approval Mode by default. In this Mode, when an administrator logs on to a system, two tokens are assigned to the user — a normal full control token and a special filtered access token. This helps prevent an administrator from making an accidental change that might have system wide consequences or prevent the accidental installation of a malicious program. The filtered access token is created during the logon process and is used to start explorer.exe process. Any application that is started from this moment on will by default be launched using this filtered access token.

There are some slight differences to the configuration of Admin Approval Mode on client systems and server systems. The most notable one is that on Windows Server the default administrator account is enabled and is the only account for which Admin Approval Mode is disabled by default. This allows for an easy bypass on Windows Server systems. On Windows Client systems, the administrator account is disabled by default. However, once this administrator account is enabled, Admin Approval Mode is disabled by default on client systems too.

To show how Admin Approval Mode is relevant in PowerShell context, the next demonstration will show what happens when a drive mapping is created in both an elevated and non-elevated PowerShell console. The impact that this has for PowerShell can be demonstrated by opening two consoles, one regular console using the filtered access token and one elevated console, started using Run as Administrator. In both consoles, a drive mapping will be created by typing the following commands:




le seul compte qui n'est pas protégé par l'UAC est le compte administrateur intégré. La seul façon de passer des RUNAS sur windows 10 est d'utiliser ce compte pour les executer si vous souhaitez conserver l'UAC pour éxécuter les appli récentes qui le nécessitent.


Du coup ! Un utilisateur membre du groupe administrateur peut éxécuter en utilisant le TOKEN admin des programmes avec élévation en spécifiant l'élévation à l'éxécution.

L'administrateur local intégré de base, lui peut sans.

Je n'ai plus qu'à réactiver le compte sur toutes les bécanes !
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5724
graph
Karma: 209  
Re:WIN 10 , TOKEN ADMIN , REMOTE SCRIPTS - 17/05/17 17:42 Bravo !!! Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
© 2020 PowerShell-Scripting.com