none
Иисключение каталогов (Power Shell). Help my!!! RRS feed

  • Вопрос

  • Добрый вечер, пршу помочь с решение одной задачи.
    Есть скрипт который собирает информацию с ПК по сети и создает конфигурационные файлы для пргграммы бекапирования. 

    Все вроде работает за исключением одного,  мне нужно в конфигурационный файл записывать все локальные пути в папке C:\Users\,  кроме домашней папки пользователя который вошел в систему или входил в последний раз, если в системе икого нет. (Это нужно для создания исключения локальных путей)

    Я пробывал следующие:

    Get-WmiObject win32_userprofile -ComputerName ws036 | Sort-Object LastUseTime | Select-Object LocalPath -SkipLast 1 | ForEach-Object  {'File = "' + ($_.LocalPath -replace "\\|'",'/') + '"'}

    и

    Get-ChildItem C:\Users -Force -Directory | Sort-Object LastWriteTime | Select-Object -SkipLast 1 | ForEach-Object  {'File = "' + ($_.FullName -replace "\\|'",'/') + '"'} 

    Но это не дает нужного мне результата. На некотрых ПК он исключает не ту папку. Я понимаю что это самое простое и кастьльное решение, опыта мало на Power Shell, поэтому прошу помощи у вас. 

    Есть у кого какие идеи или предложения?



    • Изменено SmolMax 2 мая 2017 г. 14:19

Ответы

  • http://mctexpert.blogspot.ru/2015/04/pulling-last-logged-on-user-from-your.html

    For the last local account, we extracted the name from:
    
    HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUsername
    
    For the last domain user:
    
    HKLM:\Software\Microsoft\windows\currentVersion\Authentication\LogonUI\LastLoggedOnUser
    
    Just to add a little, and since it was right there, here is the last SID:
    
    HKLM:\Software\Microsoft\windows\currentVersion\Authentication\LogonUI\LastLoggedOnUserSid

    Любой метод для получения с удаленного ПК, по ссылке выше через PSSession:

    $sid = (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI -Name LastLoggedOnUserSID).LastLoggedOnUserSID
    
    
    PS (STA) > Get-WmiObject Win32_UserProfile -Filter "SID != '$sid' and Special='$false'" | ForEach {'File = "' + ($_.LocalPath -replace "\\|'",'/') + '"'}
    File = "C:/Users/ABVG"
    File = "C:/Users/User"
    
    

    • Предложено в качестве ответа Антон В АнтоновModerator 2 мая 2017 г. 19:51
    • Помечено в качестве ответа KazunEditor 10 мая 2017 г. 6:38
    • Снята пометка об ответе SmolMax 12 мая 2017 г. 12:29
    • Помечено в качестве ответа SmolMax 12 мая 2017 г. 12:31
    Отвечающий